application icon indicating copy to clipboard operation
application copied to clipboard

Is there a way to add support for multiple deployments per application?

Open luciano-buono opened this issue 1 year ago • 3 comments

Is your feature request related to a problem? Please describe. I need to deploy an app that uses 2 deployments. For now I did a multicontainer deployment but it would be cleaner to be able to specify to separate ones

Describe the solution you'd like deploy an app that uses 2 deployments

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.

luciano-buono avatar Mar 08 '25 14:03 luciano-buono

Another workaround to your double container would be to use this chart as a dependency chart and separate it for multiple deployments with an alias.

For example:

# Chart.yaml
apiVersion: v2
type: application

name: your-application
description: A Helm chart for multiple deployment of your application
version: 0.1.0
appVersion: "latest"

dependencies:
  - name: application
    alias: app1
    version: 6.0.2
    repository: https://stakater.github.io/stakater-charts
  - name: application
    alias: app2
    version: 6.0.2
    repository: https://stakater.github.io/stakater-charts

Your values.yaml would be for example:

app1:
  applicationName: app1
  deployment:
    image:
      repository: "app1"
      tag: "latest"

app2:
  applicationName: app2
  deployment:
    image:
      repository: "app2"
      tag: "latest"

For the duplicate fields you can even use anchors and aliases to reduce duplicates:

common:
  namespaceOverride: &namespaceOverride "dev"
  labels: &commonLabels
    group: your.group

app1:
  applicationName: app1
  namespaceOverride: *namespaceOverride
  labels: *commonLabels
  deployment:
    image:
      repository: "app1"
      tag: "latest"

app2:
  applicationName: app2
  namespaceOverride: *namespaceOverride
  labels: *commonLabels
  deployment:
    image:
      repository: "app2"
      tag: "latest"

zioCristia avatar Apr 17 '25 15:04 zioCristia

I'm open to review a pull request that implements the same pattern than jobs and cronjobs for deployments.

aslafy-z avatar May 15 '25 08:05 aslafy-z

@aslafy-z I will try to find a time and make an implementation, but I suspect it will be harder that the cronjobs/jobs map because deployments are used in multiple other templates like services/hpa/sa/etc. So we would need to make a major modification of the whole structure, for example creating multiple SA based on each deployment, multiple services, etc

luciano-buono avatar May 15 '25 15:05 luciano-buono