-1

We would like to have some recommendations, since we want to integrate helmfile in our deployment process...

Our infrastructure has following details:

  • we have many customers
  • all customers have the same installed services (each customer get's it's own services, no sharing between customers)
  • credentials are different for each customer
  • we prefer a seperate deployment process (we dont want to upgrade all customers at the same time)
  • all customer-config data is seperated into seperate config files, like:
    • config/customer1.yaml
    • config/customer2.yaml
    • config/customer3.yaml

So I'm wondering, if we should use "Environment" with the customer name, to upgrade it.. or would you recommend another variable? And do you think it's better to create multiple helmfiles for this process, or just one?

Thank you!

BvuRVKyUVlViVIc7
  • 11,641
  • 9
  • 59
  • 111

1 Answers1

0

do you think it's better to create multiple helmfiles for this process, or just one?

Using one helmfile for multiple environemnts is quite practical and it saves you writing multiple helmfiles.

we should use "Environment" with the customer name?

For a similar setup (deploying to multiple environements with different values and configurations), I have in Helmfile:

 - name: my-app
    namespace: "{{ .Namespace }}"
    chart: k4r-distance-matrix-api
    values:
      - my-app/values.yaml  ## here go the common values if any exists
      - my-app/values.{{ .Environment.Name }}.yaml  ## here goes the environment specific values

In the deploy step in my CI I have:

.deploy:
  stage: deploy
  variables:
    ENVIRONMENT: ""
    CONTEXT: ""
    NAMESPACE: ""
  before_script:
    - kubectl config use-context $CONTEXT
  script:
    - helmfile -e "$ENVIRONMENT" --namespace "$NAMESPACE" sync
InProgress
  • 41
  • 1
  • 5