Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi step/stage/source application? #7382

Open
garyy7811 opened this issue Oct 6, 2021 · 3 comments
Open

Multi step/stage/source application? #7382

garyy7811 opened this issue Oct 6, 2021 · 3 comments
Labels
enhancement New feature or request

Comments

@garyy7811
Copy link

Summary

Let user define multi step/stage/source for one application.

Motivation

there are certain situations that I want multi step/stage when setting up application, for example, generate secrets and then pass the secret name to the main Helm installation, the secret is part of the application, but it has to be deployed before the main Helm installation.

I understand it can be done with plugin in a degree, but the process cost too much and generating manifests not always working for Helm.

Proposal

Let use multi sources and declare dependon apply in DAG sequence on create/update:



apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: apply mult source in DAG
spec:

...

  source:
    helm:
      name: main-database
      dependon:
        - generate-db-secret
        - generate-sa-for-aws-roles
    kustomize:
      name: generate-db-secret
    kustomize:
      name: generate-sa-for-aws-roles


@garyy7811 garyy7811 added the enhancement New feature or request label Oct 6, 2021
@blakepettersson
Copy link
Member

This should be addressed with #10432, let me know if that's not the case.

@gczuczy
Copy link
Contributor

gczuczy commented Feb 15, 2023

@blakepettersson Could you please show us a reference syntax for this usecase because it's entirely missing from the docs, and #10432's examples don't cover it.

Illustration:

spec:
  sources:
    - repoURL: https://some-repo/with-envspecifics.git
      targetRevision: master
      ref: valuesRepo
    - repoUrl: https://some-helm/repo
      targetRevision: v0.0.1
      chart: somechart
      helm:
        valueFiles:
          - $valuesRepo/env/values.yaml
    - plugin:
        name: argocd-vault-plugin
        # now how do we tell it that it's input is the previous source's helm template's output?
        # so it can replace the <placeHolders> with our secrets from vault?

Could we please get some docs on how to do this, since you are saying this is covered by #10432?

@blakepettersson
Copy link
Member

Ah, sorry about that, I missed the part where one source should depend on another. In that case this is still valid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants