Skip to content

Commit 973e579

Browse files
committed
chore: support artifactOverrides schema functionality from v2beta* in v3alpha*
1 parent 2fafb24 commit 973e579

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

examples/templated-fields/charts/values.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
# This is a YAML-formatted file.
33
# Declare variables to be passed into your templates.
44
replicaCount: 2
5+
image: skaffold-templated

examples/templated-fields/skaffold.yaml

-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ deploy:
1616
releases:
1717
- name: skaffold-templated
1818
chartPath: charts
19-
artifactOverrides:
20-
image: skaffold-templated
2119
setValueTemplates:
2220
imageRepo: "{{.IMAGE_REPO}}"
2321
imageTag: "{{.IMAGE_TAG}}"

pkg/skaffold/schema/v2beta29/upgrade.go

+27
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package v2beta29
1818

1919
import (
2020
"encoding/json"
21+
"fmt"
2122

2223
"github.com/pkg/errors"
2324

@@ -87,6 +88,32 @@ func upgradeOnePipeline(oldPipeline, newPipeline interface{}) error {
8788
newPL.Render.Helm.Releases = newHelm.Releases
8889
newPL.Render.Helm.Flags = newHelm.Flags
8990

91+
// Copy over removed artifactOverrides & imageStrategy field as identical setValues fields
92+
for i := 0; i < len(newPL.Render.Helm.Releases); i++ {
93+
// need to append, not override
94+
svs := map[string]string(oldPL.Deploy.HelmDeploy.Releases[i].SetValues)
95+
aos := map[string]string(oldPL.Deploy.HelmDeploy.Releases[i].ArtifactOverrides)
96+
if aos != nil && svs == nil {
97+
svs = map[string]string{}
98+
}
99+
// TODO(aaron-prindle) - upgrade currently only supports FQN image strategy, need to add: helm & helm+explicitRegistry
100+
if oldPL.Deploy.HelmDeploy.Releases[i].ImageStrategy.HelmFQNConfig != nil {
101+
// is 'fqn'
102+
for k, v := range aos {
103+
svs[k] = v
104+
}
105+
}
106+
if oldPL.Deploy.HelmDeploy.Releases[i].ImageStrategy.HelmConventionConfig != nil {
107+
// is 'helm'
108+
if oldPL.Deploy.HelmDeploy.Releases[i].ImageStrategy.HelmConventionConfig.ExplicitRegistry {
109+
// is 'helm' + explicitRegistry
110+
return fmt.Errorf("skaffold v3alpha does not support ")
111+
}
112+
return fmt.Errorf("skaffold v3alpha does not support imageStrategy.helm")
113+
}
114+
newPL.Render.Helm.Releases[i].SetValues = svs
115+
}
116+
90117
// Copy over lifecyle hooks for helm deployer
91118
newPL.Deploy.LegacyHelmDeploy = &next.LegacyHelmDeploy{}
92119
newPL.Deploy.LegacyHelmDeploy.LifecycleHooks = newHelm.LifecycleHooks

0 commit comments

Comments
 (0)