app-registry / appr

Apache License 2.0
56 stars 18 forks source link

Failures in helm execution are not reflected in appr exit code #73

Closed cehoffman closed 7 years ago

cehoffman commented 7 years ago

Native Helm execution

$ helm upgrade --namespace logging --tiller-namespace logging -f ../values.yaml monitoring .
Error: UPGRADE FAILED: Deployment.apps "monitoring-elasticsearch-kibana" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"chart":"elasticsearch-0.1.2", "heritage":"Tiller", "release":"monitoring", "role":"kibana", "app":"monitoring-elasticsearch-kibana"}: `selector` does not match template `labels` && StatefulSet.apps "monitoring-elasticsearch-master" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden. && StatefulSet.apps "monitoring-elasticsearch-client-2" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden. && StatefulSet.apps "monitoring-elasticsearch-ext4-data" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden. && StatefulSet.apps "monitoring-elasticsearch-data-gen2" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden.
$ echo $?
1

vs. through appr

$ appr helm upgrade cr.vertiv.life/devops/elasticsearch@0.1.2 --namespace logging --tiller-namespace logging -f values.yaml monitoring
Error: UPGRADE FAILED: Deployment.apps "monitoring-elasticsearch-kibana" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"release":"monitoring", "role":"kibana", "app":"monitoring-elasticsearch-kibana", "chart":"elasticsearch-0.1.2", "heritage":"Tiller"}: `selector` does not match template `labels` && StatefulSet.apps "monitoring-elasticsearch-master" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden. && StatefulSet.apps "monitoring-elasticsearch-client-2" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden. && StatefulSet.apps "monitoring-elasticsearch-data-gen2" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden. && StatefulSet.apps "monitoring-elasticsearch-ext4-data" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden.

$ echo $?
0

In order to script around this, the exit code of helm execution needs to be reflected in the exit code of appr.