cnoe-io / backstage-app

9 stars 17 forks source link

Feature: `createArgoApplication` does not support destination server. #42

Open elamaran11 opened 4 weeks ago

elamaran11 commented 4 weeks ago

Have you searched for this feature request?

Problem Statement

Currently Backstage uses roadie's ArgoCD plugin which supports Destination Server. But createArgoApplication does not support destination server. This is required for multi cluster deployments. This code which invokes this plugin does not support Destination.

Possible Solution

Currently Backstage uses roadie's ArgoCD plugin which supports Destination Server. But createArgoApplication does not support destination server. This is required for multi cluster deployments. This code which invokes this plugin does not support Destination. Appreciate if you can support this feature asap to multi cluster deployments from Backstage to Child clusters.

Alternatives Considered

None.

nabuskey commented 4 weeks ago

I am all for this. One limitation we need to be clear is that the roadie backend plugin does not allow specifying deployment cluster by name. i.e. it expects a URL. We can expand our spec but if we truly want to support ArgoCD deployment target, we really should allow for names.

elamaran11 commented 4 weeks ago

@nabuskey At this point we are expecting to support only Deployment Target by name. We are going by the assumption that target clusters are all configured and can be specified by name

nabuskey commented 4 weeks ago

@nabuskey At this point we are expecting to support only Deployment Target by name. We are going by the assumption that target clusters are all configured and can be specified by name

Hmmm in that case, we can't fix it here. We'll have to ask in the roadie repo. We should verify first though. Last I checked, it wasn't possible to specify by name.

elamaran11 commented 4 weeks ago

What i mean is it should support something like below if we can add that support in this repo. Let me try out, create an image and test.

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: argorollouts-dev
  namespace: argocd
spec:
  project: default
  source:
    chart: argo-rollouts
    repoURL: https://argoproj.github.io/argo-helm
    targetRevision: 2.37.7
    helm:
      releaseName: argorollouts-dev
  destination:
    name: 'dev-cluster'
    namespace: argo-rollouts
  syncPolicy:
    automated:
      selfHeal: true
    syncOptions:
    - CreateNamespace=true
nabuskey commented 3 weeks ago

The name part probably won't work. As far as I know, the roadie backend plugin we use does not support it. It's a great contribution opportunity imo.

elamaran11 commented 3 weeks ago

Thanks for the insights Manabu, I agree its a great contrib opp. I will see what i can do and i will also take your help.