From 53371045cd1835848ef5e8536e9ff04a5a6af547 Mon Sep 17 00:00:00 2001 From: David Gageot Date: Sat, 19 May 2018 21:26:45 +0200 Subject: [PATCH] Adding a skaffold:true label Signed-off-by: David Gageot --- pkg/skaffold/deploy/kubectl.go | 16 +++++++++++ pkg/skaffold/deploy/kubectl_test.go | 42 ++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/pkg/skaffold/deploy/kubectl.go b/pkg/skaffold/deploy/kubectl.go index b2756986471..b3467eeb4ea 100644 --- a/pkg/skaffold/deploy/kubectl.go +++ b/pkg/skaffold/deploy/kubectl.go @@ -300,6 +300,7 @@ func (l *manifestList) replaceImages(builds []build.Build) (manifestList, error) } recursiveReplaceImage(m, replacements) + addSkaffoldLabels(m) updatedManifest, err := yaml.Marshal(m) if err != nil { @@ -320,6 +321,21 @@ func (l *manifestList) replaceImages(builds []build.Build) (manifestList, error) return updatedManifests, nil } +func addSkaffoldLabels(m map[interface{}]interface{}) { + metadata, ok := m["metadata"].(map[interface{}]interface{}) + if !ok { + return + } + + if metadata["labels"] == nil { + metadata["labels"] = make(map[interface{}]interface{}) + } + + if labels, ok := metadata["labels"].(map[interface{}]interface{}); ok { + labels["skaffold"] = "true" + } +} + func recursiveReplaceImage(i interface{}, replacements map[string]*replacement) { switch t := i.(type) { case []interface{}: diff --git a/pkg/skaffold/deploy/kubectl_test.go b/pkg/skaffold/deploy/kubectl_test.go index 1c48a4bb80c..d162fa90107 100644 --- a/pkg/skaffold/deploy/kubectl_test.go +++ b/pkg/skaffold/deploy/kubectl_test.go @@ -214,6 +214,8 @@ func TestReplaceImages(t *testing.T) { apiVersion: v1 kind: Pod metadata: + labels: + key: value name: getting-started spec: containers: @@ -222,11 +224,18 @@ spec: - image: gcr.io/k8s-skaffold/example:latest name: latest - image: gcr.io/k8s-skaffold/example:v1 - name: fully-qualified - - image: skaffold/other - name: other - - image: gcr.io/k8s-skaffold/example@sha256:81daf011d63b68cfa514ddab7741a1adddd59d3264118dfb0fd9266328bb8883 - name: digest + name: fully-qualified`), []byte(` +apiVersion: v1 +kind: Deployment +metadata: + name: deployment +template: + spec: + containers: + - image: skaffold/other + name: other + - image: gcr.io/k8s-skaffold/example@sha256:81daf011d63b68cfa514ddab7741a1adddd59d3264118dfb0fd9266328bb8883 + name: digest `)} builds := []build.Build{{ @@ -241,6 +250,9 @@ spec: apiVersion: v1 kind: Pod metadata: + labels: + key: value + skaffold: "true" name: getting-started spec: containers: @@ -249,11 +261,20 @@ spec: - image: gcr.io/k8s-skaffold/example:TAG name: latest - image: gcr.io/k8s-skaffold/example:v1 - name: fully-qualified - - image: skaffold/other:OTHER_TAG - name: other - - image: gcr.io/k8s-skaffold/example@sha256:81daf011d63b68cfa514ddab7741a1adddd59d3264118dfb0fd9266328bb8883 - name: digest + name: fully-qualified`), []byte(` +apiVersion: v1 +kind: Deployment +metadata: + labels: + skaffold: "true" + name: deployment +template: + spec: + containers: + - image: skaffold/other:OTHER_TAG + name: other + - image: gcr.io/k8s-skaffold/example@sha256:81daf011d63b68cfa514ddab7741a1adddd59d3264118dfb0fd9266328bb8883 + name: digest `)} resultManifest, err := manifests.replaceImages(builds) @@ -312,6 +333,7 @@ kind: Deployment metadata: labels: run: skaffold + skaffold: "true" name: skaffold spec: replicas: 1