Skip to content
Snippets Groups Projects
Commit 420b2e92 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

Merge branch 'common-values' into 'master'

feat: add support for a common value file

Closes #15

See merge request to-be-continuous/helm!19
parents 11e6a226 53c02104
No related branches found
No related tags found
No related merge requests found
......@@ -62,6 +62,7 @@ The Helm template uses some global configuration used throughout all jobs.
| --------------------- | -------------------------------------- | ----------------- |
| `HELM_CLI_IMAGE` | The Docker image used to run Helm <br/>:warning: **set the version required by your Kubernetes server** | `alpine/helm:latest` |
| `HELM_CHART_DIR` | The folder in which is stored the Helm chart | `.` |
| `HELM_COMMON_VALUES` | Common values file (used for all environments, overridden by specific per-env values files) | undefined (none) |
| `HELM_ENV_VALUE_NAME` | The environment type variable set to helm | `env` |
| `HELM_HOSTNAME_VALUE_NAME` | The hostname variable set to helm | `hostname` |
......
......@@ -14,6 +14,10 @@
"description": "The folder in which is stored the Helm chart",
"default": "."
},
{
"name": "HELM_COMMON_VALUES",
"description": "Common values file (used for all environments, overridden by specific per-env values files)"
},
{
"name": "HELM_DEPLOY_CHART",
"description": "The Helm [chart](https://helm.sh/docs/topics/charts/) to deploy. _Only required if you want to deploy an **external** chart._"
......
......@@ -40,6 +40,8 @@ variables:
# KUBE_NAMESPACE: "default"
# KUBECONFIG: ""
# HELM_COMMON_VALUES: "values-common.yml"
# HELM_REVIEW_DISABLED: "true"
# HELM_REVIEW_VALUES: "values-review.yml"
# HELM_REVIEW_NAMESPACE: ""
......@@ -351,10 +353,16 @@ stages:
helm_opts=$(get_helm_config_opt)
if [ -n "$HELM_COMMON_VALUES" ]; then
log_info "--- using \\e[32mcommon values\\e[0m file: \\e[33;1m${HELM_COMMON_VALUES}\\e[0m"
awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
helm_values_opt="--values generated-values-common.yml"
fi
if [ -n "$values_files" ]; then
log_info "--- using \\e[32mvalues\\e[0m file: \\e[33;1m${values_files}\\e[0m"
awkenvsubst < "$values_files" > generated-values.yml
helm_values_opt="--values generated-values.yml"
helm_values_opt="$helm_values_opt --values generated-values.yml"
fi
if [ -f "$CI_PROJECT_DIR/.kubeconfig" ]; then
......@@ -529,6 +537,17 @@ helm-lint:
- "**/Chart.yaml"
# yamllint-job is used to check the syntax of the values files.
helm-values-common-lint:
extends: .helm-values-lint
script:
- awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
- yamllint -d "$HELM_YAMLLINT_CONFIG" $HELM_YAMLLINT_ARGS generated-values-common.yml
rules:
- if: '$CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED == "true"'
when: never
- if: '$HELM_COMMON_VALUES'
helm-values-review-lint:
extends: .helm-values-lint
script:
......@@ -576,8 +595,10 @@ helm-values-prod-lint:
helm-review-score:
extends: .helm-score
script:
- if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
- awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
- awkenvsubst < "$HELM_REVIEW_VALUES" > generated-values-review.yml
- helm template $HELM_CHART_DIR --values generated-values-review.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
- helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-review.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
rules:
# exclude merge requests
- if: $CI_MERGE_REQUEST_ID
......@@ -594,8 +615,10 @@ helm-review-score:
helm-integration-score:
extends: .helm-score
script:
- if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
- awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
- awkenvsubst < "$HELM_INTEG_VALUES" > generated-values-integration.yml
- helm template $HELM_CHART_DIR --values generated-values-integration.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
- helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-integration.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
rules:
# exclude merge requests
- if: $CI_MERGE_REQUEST_ID
......@@ -612,8 +635,10 @@ helm-integration-score:
helm-staging-score:
extends: .helm-score
script:
- if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
- awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
- awkenvsubst < "$HELM_STAGING_VALUES" > generated-values-staging.yml
- helm template $HELM_CHART_DIR --values generated-values-staging.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
- helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-staging.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
rules:
# exclude merge requests
- if: $CI_MERGE_REQUEST_ID
......@@ -630,8 +655,10 @@ helm-staging-score:
helm-prod-score:
extends: .helm-score
script:
- if [ -z "$HELM_COMMON_VALUES" ]; then HELM_COMMON_VALUES=/dev/null; fi
- awkenvsubst < "$HELM_COMMON_VALUES" > generated-values-common.yml
- awkenvsubst < "$HELM_PROD_VALUES" > generated-values-prod.yml
- helm template $HELM_CHART_DIR --values generated-values-prod.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
- helm template $HELM_CHART_DIR --values generated-values-common.yml --values generated-values-prod.yml | kube-score score ${HELM_KUBE_SCORE_ARGS} -
rules:
# exclude merge requests
- if: $CI_MERGE_REQUEST_ID
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment