Fix set flag are ignored when used in conjunction with jsonPatches (#867)
* Fix set flag are ignored when used in conjunction with jsonPatches Signed-off-by: xiaomudk <xiaomudk@gmail.com>
This commit is contained in:
parent
8b3ad5b793
commit
c498af3f52
|
|
@ -251,6 +251,7 @@ func (a *App) Template(c TemplateConfigProvider) error {
|
||||||
Validate: c.Validate(),
|
Validate: c.Validate(),
|
||||||
Concurrency: c.Concurrency(),
|
Concurrency: c.Concurrency(),
|
||||||
IncludeTransitiveNeeds: c.IncludeNeeds(),
|
IncludeTransitiveNeeds: c.IncludeNeeds(),
|
||||||
|
Set: c.Set(),
|
||||||
}, func() {
|
}, func() {
|
||||||
ok, errs = a.template(run, c)
|
ok, errs = a.template(run, c)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1052,6 +1052,7 @@ type ChartPrepareOptions struct {
|
||||||
IncludeTransitiveNeeds bool
|
IncludeTransitiveNeeds bool
|
||||||
Concurrency int
|
Concurrency int
|
||||||
KubeVersion string
|
KubeVersion string
|
||||||
|
Set []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type chartPrepareResult struct {
|
type chartPrepareResult struct {
|
||||||
|
|
@ -1225,6 +1226,11 @@ func (st *HelmState) PrepareCharts(helm helmexec.Interface, dir string, concurre
|
||||||
|
|
||||||
chartifyOpts.KubeVersion = release.KubeVersion
|
chartifyOpts.KubeVersion = release.KubeVersion
|
||||||
chartifyOpts.ApiVersions = release.ApiVersions
|
chartifyOpts.ApiVersions = release.ApiVersions
|
||||||
|
var flags []string
|
||||||
|
for _, s := range opts.Set {
|
||||||
|
flags = append(flags, "--set", s)
|
||||||
|
}
|
||||||
|
chartifyOpts.SetFlags = flags
|
||||||
|
|
||||||
out, err := c.Chartify(release.Name, chartPath, chartify.WithChartifyOpts(chartifyOpts))
|
out, err := c.Chartify(release.Name, chartPath, chartify.WithChartifyOpts(chartifyOpts))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ ${kubectl} create namespace ${test_ns} || fail "Could not create namespace ${tes
|
||||||
. ${dir}/test-cases/yaml-overwrite.sh
|
. ${dir}/test-cases/yaml-overwrite.sh
|
||||||
. ${dir}/test-cases/chart-needs.sh
|
. ${dir}/test-cases/chart-needs.sh
|
||||||
. ${dir}/test-cases/postrender.sh
|
. ${dir}/test-cases/postrender.sh
|
||||||
|
. ${dir}/test-cases/chartify.sh
|
||||||
|
|
||||||
# ALL DONE -----------------------------------------------------------------------------------------------------------
|
# ALL DONE -----------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
chartify_case_input_dir="${cases_dir}/chartify/input"
|
||||||
|
chartify_case_output_dir="${cases_dir}/chartify/output"
|
||||||
|
|
||||||
|
config_file="helmfile.yaml"
|
||||||
|
if [[ ${HELMFILE_V1MODE} = true ]]; then
|
||||||
|
pushd "${chartify_case_input_dir}"
|
||||||
|
mv "${config_file}" "${config_file}.gotmpl"
|
||||||
|
config_file="${config_file}.gotmpl"
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
chartify_tmp=$(mktemp -d)
|
||||||
|
chartify_template_reverse=${chartify_tmp}/chartify.template.log
|
||||||
|
|
||||||
|
|
||||||
|
test_start "helmfile template with chartify"
|
||||||
|
|
||||||
|
info "Comparing template/chartify"
|
||||||
|
${helmfile} -f ${chartify_case_input_dir}/${config_file} template > ${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail"
|
||||||
|
./dyff between -bs ${chartify_case_output_dir}/template ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent"
|
||||||
|
|
||||||
|
info "Comparing template/chartify with set"
|
||||||
|
${helmfile} -f ${chartify_case_input_dir}/${config_file} template --set image.tag=v2 > ${chartify_template_reverse} || fail "\"helmfile template\" shouldn't fail"
|
||||||
|
./dyff between -bs ${chartify_case_output_dir}/template-set ${chartify_template_reverse} || fail "\"helmfile template\" should be consistent"
|
||||||
|
|
||||||
|
|
||||||
|
test_pass "helmfile template with chartify"
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
releases:
|
||||||
|
- name: httpbin
|
||||||
|
chart: ../../../charts/httpbin
|
||||||
|
jsonPatches:
|
||||||
|
- target:
|
||||||
|
group: apps
|
||||||
|
version: v1
|
||||||
|
kind: Deployment
|
||||||
|
name: httpbin-httpbin
|
||||||
|
patch:
|
||||||
|
- path: "/spec/strategy/type"
|
||||||
|
op: replace
|
||||||
|
value: Recreate
|
||||||
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
# Source: httpbin/templates/patched_resources.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
chart: httpbin-0.1.0
|
||||||
|
heritage: Helm
|
||||||
|
release: httpbin
|
||||||
|
name: httpbin-httpbin
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: httpbin
|
||||||
|
port: 8000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8000
|
||||||
|
selector:
|
||||||
|
app: httpbin
|
||||||
|
release: httpbin
|
||||||
|
type: LoadBalancer
|
||||||
|
---
|
||||||
|
# Source: httpbin/templates/patched_resources.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
chart: httpbin-0.1.0
|
||||||
|
heritage: Helm
|
||||||
|
release: httpbin
|
||||||
|
name: httpbin-httpbin
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: httpbin
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
release: httpbin
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: docker.io/citizenstig/httpbin:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8000
|
||||||
|
name: httpbin
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8000
|
||||||
|
resources: {}
|
||||||
|
status: {}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
# Source: httpbin/templates/patched_resources.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
chart: httpbin-0.1.0
|
||||||
|
heritage: Helm
|
||||||
|
release: httpbin
|
||||||
|
name: httpbin-httpbin
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: httpbin
|
||||||
|
port: 8000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8000
|
||||||
|
selector:
|
||||||
|
app: httpbin
|
||||||
|
release: httpbin
|
||||||
|
type: LoadBalancer
|
||||||
|
---
|
||||||
|
# Source: httpbin/templates/patched_resources.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
chart: httpbin-0.1.0
|
||||||
|
heritage: Helm
|
||||||
|
release: httpbin
|
||||||
|
name: httpbin-httpbin
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: httpbin
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: httpbin
|
||||||
|
release: httpbin
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: docker.io/citizenstig/httpbin:v2
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8000
|
||||||
|
name: httpbin
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8000
|
||||||
|
resources: {}
|
||||||
|
status: {}
|
||||||
Loading…
Reference in New Issue