Commit 7c72363c authored by Cédric OLIVIER's avatar Cédric OLIVIER
Browse files

feat: Change boolean variable behaviour



BREAKING CHANGE: boolean variable now triggered on explicit 'true' value

Signed-off-by: default avatarCédric OLIVIER <cedric3.olivier@orange.com>
parent 259c6d6b
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ Here are variables supported to configure review environments:

| Name                     | description                            | default value     |
| ------------------------ | -------------------------------------- | ----------------- |
| `HELM_REVIEW_DISABLED`   | Set to disable `review` env            | _none_ (enabled) |
| `HELM_REVIEW_DISABLED`   | Set to `true` to disable `review` env            | _none_ (enabled) |
| `HELM_REVIEW_APP_NAME`   | Application name for `review` env      | `"${HELM_BASE_APP_NAME}-${CI_ENVIRONMENT_SLUG}"` (ex: `myproject-review-fix-bug-12`) |
| `HELM_REVIEW_NAMESPACE`  | The Kubernetes namespace to use for `review` env _(only define to override default)_ | `$KUBE_NAMESPACE` |
| :lock: `HELM_REVIEW_KUBE_CONFIG` | kubeconfig content used for `review` env _(only define to override default)_ | `$HELM_DEFAULT_KUBE_CONFIG` |
@@ -144,7 +144,7 @@ Here are variables supported to configure the integration environment:

| Name                     | description                            | default value     |
| ------------------------ | -------------------------------------- | ----------------- |
| `HELM_INTEG_DISABLED`    | Set to disable `integration` env       | _none_ (enabled) |
| `HELM_INTEG_DISABLED`    | Set to `true` to disable `integration` env       | _none_ (enabled) |
| `HELM_INTEG_APP_NAME`    | Application name for `integration` env | `$HELM_BASE_APP_NAME-integration` |
| `HELM_INTEG_NAMESPACE`   | The Kubernetes namespace to use for `integration` env _(only define to override default)_ | `$KUBE_NAMESPACE` |
| :lock: `HELM_INTEG_KUBE_CONFIG` | kubeconfig content used for `integration` env _(only define to override default)_ | `$HELM_DEFAULT_KUBE_CONFIG` |
@@ -161,7 +161,7 @@ Here are variables supported to configure the staging environment:

| Name                     | description                            | default value     |
| ------------------------ | -------------------------------------- | ----------------- |
| `HELM_STAGING_DISABLED`  | Set to disable `staging` env           | _none_ (enabled) |
| `HELM_STAGING_DISABLED`  | Set to `true` to disable `staging` env           | _none_ (enabled) |
| `HELM_STAGING_APP_NAME`  | Application name for `staging` env     | `$HELM_BASE_APP_NAME-staging` |
| `HELM_STAGING_NAMESPACE` | The Kubernetes namespace to use for `staging` env _(only define to override default)_ | `$KUBE_NAMESPACE` |
| :lock: `HELM_STAGING_KUBE_CONFIG` | kubeconfig content used for `staging` env _(only define to override default)_ | `$HELM_DEFAULT_KUBE_CONFIG` |
@@ -178,7 +178,7 @@ Here are variables supported to configure the production environment:

| Name                     | description                            | default value     |
| ------------------------ | -------------------------------------- | ----------------- |
| `HELM_PROD_DISABLED`     | Set to disable `production` env        | _none_ (enabled)  |
| `HELM_PROD_DISABLED`     | Set to `true` to disable `production` env        | _none_ (enabled)  |
| `HELM_PROD_APP_NAME`     | Application name for `production` env  | `$HELM_BASE_APP_NAME` |
| `HELM_PROD_NAMESPACE`    | The Kubernetes namespace to use for `production` env _(only define to override default)_ | `$KUBE_NAMESPACE` |
| :lock: `HELM_PROD_KUBE_CONFIG` | kubeconfig content used for `production` env _(only define to override default)_ | `$HELM_DEFAULT_KUBE_CONFIG` |
@@ -223,7 +223,7 @@ This job [examines your chart for possible issues](https://helm.sh/docs/helm/hel

| Name                  | description                              | default value     |
| --------------------- | ---------------------------------------- | ----------------- |
| `HELM_LINT_DISABLED`  | Set to disable Helm lint                 | _none_ (enabled) |
| `HELM_LINT_DISABLED`  | Set to `true` to disable Helm lint                 | _none_ (enabled) |
| `HELM_LINT_ARGS`      | The Helm [command with options](https://helm.sh/docs/helm/helm_lint/) to trigger the analysis (_without dynamic arguments such as the chart path_) | `lint --strict` |
| `HELM_DEPENDENCY_ARGS` | The Helm [command with options](https://helm.sh/docs/helm/helm_dependency_update/) to update on-disk the chart dependencies (_without dynamic arguments such as the chart path_) | `dependency update` |

@@ -234,7 +234,7 @@ These jobs perform a [Yaml Lint](https://github.com/adrienverge/yamllint) of you
| Name                     | description                           | default value     |
| ------------------------ | ------------------------------------- | ----------------- |
| `HELM_YAMLLINT_IMAGE`    | The Docker image used to run YamlLint test | `cytopia/yamllint` |
| `HELM_YAMLLINT_DISABLED` | Set to disable Yaml lint              | _none_ (enabled) |
| `HELM_YAMLLINT_DISABLED` | Set to `true` to disable Yaml lint              | _none_ (enabled) |
| `HELM_YAMLLINT_CONFIG`   | Config used with the yamllint tool    | `{extends: relaxed, rules: {line-length: {max: 160}}}` |
| `HELM_YAMLLINT_ARGS`     | Arguments used by the lint job        | `-f colored --strict` |

@@ -244,7 +244,7 @@ This job runs [Kube-Score](https://kube-score.com/) on the resources to be creat

| Name                  | description                              | default value     |
| --------------------- | ---------------------------------------- | ----------------- |
| `HELM_KUBE_SCORE_DISABLED`   | Set to disable [Kube-Score](https://kube-score.com/)   | _none_ (enabled) |
| `HELM_KUBE_SCORE_DISABLED`   | Set to `true` to disable [Kube-Score](https://kube-score.com/)   | _none_ (enabled) |
| `HELM_KUBE_SCORE_IMAGE`   | The Docker image used to run [Kube-Score](https://kube-score.com/)   | `zegl/kube-score:latest-helm3` |
| `HELM_KUBE_SCORE_ARGS`   | Arguments used by the helm-score job   | _none_ |

@@ -256,7 +256,7 @@ This job [packages your chart into an archive](https://helm.sh/docs/helm/helm_pa
| --------------------- | ---------------------------------------- | ----------------- |
| `HELM_PACKAGE_ARGS`   | The Helm [command with options](https://helm.sh/docs/helm/helm_package/) to perform the packaging (_without dynamic arguments such as the chart path_)   | `package --dependency-update` |

| `HELM_SEMREL_RELEASE_DISABLED`   | Set to disable usage of semrel release info for helm package  | _none_ (enabled) |
| `HELM_SEMREL_RELEASE_DISABLED`   | Set to `true` to disable usage of semrel release info for helm package  | _none_ (enabled) |

#### `semantic-release` integration

@@ -287,7 +287,7 @@ It uses the following variables:

| Name                  | description                              | default value     |
| --------------------- | ---------------------------------------- | ----------------- |
| `HELM_TEST_ENABLED`  | Set to enable Helm test                 | _none_ (disabled) |
| `HELM_TEST_ENABLED`  | Set to `true` to enable Helm test                 | _none_ (disabled) |
| `HELM_TEST_ARGS`      | The Helm [command with options](https://helm.sh/docs/helm/helm_test/) to perform acceptance test (_without dynamic arguments such as the chart path_) | `test`        |

## Variants
+29 −29
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@ variables:
  # Docker Image with Helm CLI tool (can be overridden)
  HELM_CLI_IMAGE: "alpine/helm"
  HELM_YAMLLINT_IMAGE: "cytopia/yamllint"
#  HELM_LINT_DISABLED: "True"
#  HELM_YAMLLINT_DISABLED: "True"
#  HELM_LINT_DISABLED: "true"
#  HELM_YAMLLINT_DISABLED: "true"
  HELM_YAMLLINT_CONFIG: "{extends: relaxed, rules: {line-length: {max: 160}}}"
  HELM_YAMLLINT_ARGS: "-f colored --strict"
  HELM_LINT_ARGS: "lint --strict"
@@ -40,17 +40,17 @@ variables:
#  KUBE_NAMESPACE: "default"
#  KUBECONFIG: ""

#  HELM_REVIEW_DISABLED: "True"
#  HELM_REVIEW_DISABLED: "true"
#  HELM_REVIEW_VALUES: "values-review.yml"
#  HELM_REVIEW_NAMESPACE: ""
#  HELM_REVIEW_KUBE_CONFIG: ""

#  HELM_INTEG_DISABLED: "True"
#  HELM_INTEG_DISABLED: "true"
#  HELM_INTEG_VALUES: "values-review.yml"
#  HELM_INTEG_NAMESPACE: ""
#  HELM_INTEG_KUBE_CONFIG: ""

#  HELM_STAGING_DISABLED: "True"
#  HELM_STAGING_DISABLED: "true"
#  HELM_STAGING_VALUES: "values-staging.yml"
#  HELM_STAGING_NAMESPACE: ""
#  HELM_STAGING_KUBE_CONFIG: ""
@@ -456,7 +456,7 @@ stages:
    fi
  }

  if [[ -z "$TEMPLATE_CHECK_UPDATE_DISABLED" ]]; then check_for_update helm "1.4.2"; fi
  if [[ "$TEMPLATE_CHECK_UPDATE_DISABLED" != "true" ]]; then check_for_update helm "1.4.2"; fi
  unscope_variables
  eval_all_secrets

@@ -513,7 +513,7 @@ helm-lint:
    - helm $HELM_DEPENDENCY_ARGS $HELM_CHART_DIR
    - helm ${TRACE+--debug} $HELM_LINT_ARGS $HELM_CHART_DIR
  rules:
    - if: $CI_MERGE_REQUEST_ID || $HELM_LINT_DISABLED
    - if: '$CI_MERGE_REQUEST_ID || $HELM_LINT_DISABLED == "true"'
      when: never
    - exists:
        - "**/Chart.yaml"
@@ -525,7 +525,7 @@ helm-values-review-lint:
    - awkenvsubst < "$HELM_REVIEW_VALUES" > generated-values-review.yml
    - yamllint -d "$HELM_YAMLLINT_CONFIG" $HELM_YAMLLINT_ARGS generated-values-review.yml
  rules:
    - if: $CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED
    - if: '$CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED == "true"'
      when: never
    - if: $HELM_REVIEW_VALUES

@@ -535,7 +535,7 @@ helm-values-integration-lint:
    - awkenvsubst < "$HELM_INTEG_VALUES" > generated-values-integration.yml
    - yamllint -d "$HELM_YAMLLINT_CONFIG" $HELM_YAMLLINT_ARGS generated-values-integration.yml
  rules:
    - if: $CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED
    - if: '$CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED == "true"'
      when: never
    - if: $HELM_INTEG_VALUES

@@ -545,7 +545,7 @@ helm-values-staging-lint:
    - awkenvsubst < "$HELM_STAGING_VALUES" > generated-values-staging.yml
    - yamllint -d "$HELM_YAMLLINT_CONFIG" $HELM_YAMLLINT_ARGS generated-values-staging.yml
  rules:
    - if: $CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED
    - if: '$CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED == "true"'
      when: never
    - if: $HELM_STAGING_VALUES

@@ -555,7 +555,7 @@ helm-values-prod-lint:
    - awkenvsubst < "$HELM_PROD_VALUES" > generated-values-prod.yml
    - yamllint -d "$HELM_YAMLLINT_CONFIG" $HELM_YAMLLINT_ARGS generated-values-prod.yml
  rules:
    - if: $CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED
    - if: '$CI_MERGE_REQUEST_ID || $HELM_YAMLLINT_DISABLED == "true"'
      when: never
    - if: $HELM_PROD_VALUES

@@ -569,7 +569,7 @@ helm-review-score:
    - if: $CI_MERGE_REQUEST_ID
      when: never
    # exclude when $HELM_KUBE_SCORE_DISABLED is set
    - if: $HELM_KUBE_SCORE_DISABLED
    - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
      when: never
    # else: allow failure
    - if: $HELM_REVIEW_VALUES
@@ -587,7 +587,7 @@ helm-integration-score:
    - if: $CI_MERGE_REQUEST_ID
      when: never
    # exclude when $K8S_SCORE_DISABLED is set
    - if: $HELM_KUBE_SCORE_DISABLED
    - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
      when: never
    # else: allow failure
    - if: $HELM_INTEG_VALUES
@@ -605,7 +605,7 @@ helm-staging-score:
    - if: $CI_MERGE_REQUEST_ID
      when: never
    # exclude when $K8S_SCORE_DISABLED is set
    - if: $HELM_KUBE_SCORE_DISABLED
    - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
      when: never
    # else: allow failure
    - if: $HELM_STAGING_VALUES
@@ -623,7 +623,7 @@ helm-prod-score:
    - if: $CI_MERGE_REQUEST_ID
      when: never
    # exclude when $K8S_SCORE_DISABLED is set
    - if: $HELM_KUBE_SCORE_DISABLED
    - if: '$HELM_KUBE_SCORE_DISABLED == "true"'
      when: never
    # else: allow failure
    - if: $HELM_PROD_VALUES
@@ -643,7 +643,7 @@ helm-package:
    - add_helm_repositories
  script:
    - |
      if [[ "$SEMREL_INFO_ON" ]] && [[ "$SEMREL_INFO_NEXT_VERSION" ]] && [[ -z "$HELM_SEMREL_RELEASE_DISABLED" ]]
      if [[ "$SEMREL_INFO_ON" ]] && [[ "$SEMREL_INFO_NEXT_VERSION" ]] && [[ "$HELM_SEMREL_RELEASE_DISABLED" != "true" ]]
      then
        log_info "semantic-release info is activated, using computed next version for release: \\e[1;94m${SEMREL_INFO_NEXT_VERSION}\\e[0m"
        helm_version_opts="--app-version ${SEMREL_INFO_NEXT_VERSION} --version ${SEMREL_INFO_NEXT_VERSION}"
@@ -773,7 +773,7 @@ helm-review:
  resource_group: review/$CI_COMMIT_REF_NAME
  rules:
    # exclude merge requests, tags and on $HELM_REVIEW_DISABLED set
    - if: '$HELM_REVIEW_DISABLED || $CI_MERGE_REQUEST_ID || $CI_COMMIT_TAG'
    - if: '$HELM_REVIEW_DISABLED == "true" || $CI_MERGE_REQUEST_ID || $CI_COMMIT_TAG'
      when: never
    # only on non-production, non-integration branches
    - if: '$CI_COMMIT_REF_NAME !~ $PROD_REF && $CI_COMMIT_REF_NAME !~ $INTEG_REF'
@@ -792,7 +792,7 @@ helm-cleanup-review:
  resource_group: review/$CI_COMMIT_REF_NAME
  rules:
    # exclude merge requests, tags and on $HELM_REVIEW_DISABLED set
    - if: '$HELM_REVIEW_DISABLED || $CI_MERGE_REQUEST_ID || $CI_COMMIT_TAG'
    - if: '$HELM_REVIEW_DISABLED == "true" || $CI_MERGE_REQUEST_ID || $CI_COMMIT_TAG'
      when: never
    # only on non-production, non-integration branches
    - if: '$CI_COMMIT_REF_NAME !~ $PROD_REF && $CI_COMMIT_REF_NAME !~ $INTEG_REF'
@@ -809,10 +809,10 @@ helm-test-review:
    ENV_NAMESPACE: "$HELM_REVIEW_NAMESPACE"
  rules:
    # exclude merge requests, tags and on $HELM_REVIEW_DISABLED set
    - if: '$HELM_REVIEW_DISABLED || $CI_MERGE_REQUEST_ID || $CI_COMMIT_TAG'
    - if: '$HELM_REVIEW_DISABLED == "true" || $CI_MERGE_REQUEST_ID || $CI_COMMIT_TAG'
      when: never
    # only on non-production, non-integration branches
    - if: '$CI_COMMIT_REF_NAME !~ $PROD_REF && $CI_COMMIT_REF_NAME !~ $INTEG_REF && $HELM_TEST_ENABLED'
    - if: '$CI_COMMIT_REF_NAME !~ $PROD_REF && $CI_COMMIT_REF_NAME !~ $INTEG_REF && $HELM_TEST_ENABLED == "true"'

# ==================================================
# Stage: integration
@@ -835,7 +835,7 @@ helm-integration:
  resource_group: integration
  rules:
    # exclude merge requests and on $HELM_INTEG_DISABLED set
    - if: '$HELM_INTEG_DISABLED || $CI_MERGE_REQUEST_ID'
    - if: '$HELM_INTEG_DISABLED == "true" || $CI_MERGE_REQUEST_ID'
      when: never
    # only on integration branch(es)
    - if: '$CI_COMMIT_REF_NAME =~ $INTEG_REF'
@@ -854,7 +854,7 @@ helm-cleanup-integration:
  resource_group: integration
  rules:
    # exclude merge requests and on $HELM_INTEG_DISABLED set
    - if: '$HELM_INTEG_DISABLED || $CI_MERGE_REQUEST_ID'
    - if: '$HELM_INTEG_DISABLED == "true" || $CI_MERGE_REQUEST_ID'
      when: never
    # only on integration branch(es)
    - if: '$CI_COMMIT_REF_NAME =~ $INTEG_REF'
@@ -872,10 +872,10 @@ helm-test-integration:
    ENV_VALUES: "$HELM_INTEG_VALUES"
  rules:
    # exclude merge requests and on $HELM_INTEG_DISABLED set
    - if: '$HELM_INTEG_DISABLED || $CI_MERGE_REQUEST_ID'
    - if: '$HELM_INTEG_DISABLED == "true" || $CI_MERGE_REQUEST_ID'
      when: never
    # only on integration branch(es)
    - if: '$CI_COMMIT_REF_NAME =~ $INTEG_REF && $HELM_TEST_ENABLED'
    - if: '$CI_COMMIT_REF_NAME =~ $INTEG_REF && $HELM_TEST_ENABLED == "true"'

# ==================================================
# Stage: staging
@@ -896,7 +896,7 @@ helm-staging:
  resource_group: staging
  rules:
    # exclude merge requests and on $HELM_STAGING_DISABLED set
    - if: '$HELM_STAGING_DISABLED || $CI_MERGE_REQUEST_ID'
    - if: '$HELM_STAGING_DISABLED == "true" || $CI_MERGE_REQUEST_ID'
      when: never
    # only on production branch(es)
    - if: '$CI_COMMIT_REF_NAME =~ $PROD_REF'
@@ -915,7 +915,7 @@ helm-cleanup-staging:
  resource_group: staging
  rules:
    # exclude merge requests and on $HELM_STAGING_DISABLED set
    - if: '$HELM_STAGING_DISABLED || $CI_MERGE_REQUEST_ID'
    - if: '$HELM_STAGING_DISABLED == "true" || $CI_MERGE_REQUEST_ID'
      when: never
    # only on production branch(es)
    - if: '$CI_COMMIT_REF_NAME =~ $PROD_REF'
@@ -932,10 +932,10 @@ helm-test-staging:
    ENV_VALUES: "$HELM_STAGING_VALUES"
  rules:
    # exclude merge requests and on $HELM_STAGING_DISABLED set
    - if: '$HELM_STAGING_DISABLED  || $CI_MERGE_REQUEST_ID'
    - if: '$HELM_STAGING_DISABLED == "true" || $CI_MERGE_REQUEST_ID'
      when: never
    # only on production branch(es)
    - if: '$CI_COMMIT_REF_NAME =~ $PROD_REF && $HELM_TEST_ENABLED'
    - if: '$CI_COMMIT_REF_NAME =~ $PROD_REF && $HELM_TEST_ENABLED == "true" '
# ==================================================
# Stage: production
# ==================================================
@@ -962,7 +962,7 @@ helm-production:
    - if: '$CI_COMMIT_REF_NAME !~ $PROD_REF'
      when: never
    # exclude if $HELM_PROD_DISABLED set
    - if: $HELM_PROD_DISABLED
    - if: '$HELM_PROD_DISABLED == "true"'
      when: never
    # if $AUTODEPLOY_TO_PROD: auto
    - if: $AUTODEPLOY_TO_PROD