Skip to content

Commit

Permalink
Merge pull request #2270 from priyawadhwa/default-labeller
Browse files Browse the repository at this point in the history
Add K8sManagedBy function to labeller
  • Loading branch information
balopat committed Jun 19, 2019
2 parents 55bc233 + 7863159 commit 5820dee
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 13 deletions.
23 changes: 15 additions & 8 deletions pkg/skaffold/runner/labeller.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ import (
)

const (
K8ManagedByLabel = "app.kubernetes.io/managed-by"
UnknownVersion = "unknown"
Empty = ""
K8ManagedByLabelKey = "app.kubernetes.io/managed-by"
UnknownVersion = "unknown"
Empty = ""
)

// DefaultLabeller adds K9 style managed-by label
Expand All @@ -37,17 +37,24 @@ func NewLabeller(verStr string) *DefaultLabeller {
if verStr == Empty {
verStr = version.Get().Version
}
if verStr == Empty {
verStr = UnknownVersion
}
return &DefaultLabeller{
version: verStr,
}
}

func (d *DefaultLabeller) Labels() map[string]string {
version := d.version
if version == Empty {
version = UnknownVersion
}
return map[string]string{
K8ManagedByLabel: fmt.Sprintf("skaffold-%s", version),
K8ManagedByLabelKey: d.skaffoldVersion(),
}
}

func (d *DefaultLabeller) K8sManagedByLabelKeyValueString() string {
return fmt.Sprintf("%s=%s", K8ManagedByLabelKey, d.skaffoldVersion())
}

func (d *DefaultLabeller) skaffoldVersion() string {
return fmt.Sprintf("skaffold-%s", d.version)
}
18 changes: 13 additions & 5 deletions pkg/skaffold/runner/labeller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ limitations under the License.
package runner

import (
"fmt"
"testing"

"github.com/GoogleContainerTools/skaffold/testutil"
Expand All @@ -36,18 +35,27 @@ func TestDefaultLabeller(t *testing.T) {
},
{
description: "empty version should add postfix unknown",
expected: fmt.Sprintf("skaffold-unknown"),
expected: "skaffold-unknown",
},
}
for _, test := range tests {
testutil.Run(t, test.description, func(t *testutil.T) {
l := &DefaultLabeller{
version: test.version,
}
l := NewLabeller(test.version)
labels := l.Labels()

expected := map[string]string{"app.kubernetes.io/managed-by": test.expected}
t.CheckDeepEqual(expected, labels)
})
}
}

func TestK8sManagedByLabelKeyValueString(t *testing.T) {
defaultLabeller := &DefaultLabeller{
version: "version",
}
expected := "app.kubernetes.io/managed-by=skaffold-version"
actual := defaultLabeller.K8sManagedByLabelKeyValueString()
if actual != expected {
t.Fatalf("actual label not equal to expected label. Actual: \n %s \n Expected: \n %s", actual, expected)
}
}
2 changes: 2 additions & 0 deletions pkg/skaffold/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ type SkaffoldRunner struct {
cache *cache.Cache
runCtx *runcontext.RunContext
labellers []deploy.Labeller
defaultLabeller *DefaultLabeller
builds []build.Artifact
hasBuilt bool
hasDeployed bool
Expand Down Expand Up @@ -118,6 +119,7 @@ func NewForConfig(opts *config.SkaffoldOptions, cfg *latest.SkaffoldConfig) (*Sk
Syncer: kubectl.NewSyncer(runCtx.Namespaces),
Watcher: watch.NewWatcher(trigger),
labellers: labellers,
defaultLabeller: defaultLabeller,
imageList: kubernetes.NewImageList(),
cache: artifactCache,
runCtx: runCtx,
Expand Down

0 comments on commit 5820dee

Please sign in to comment.