devstream icon indicating copy to clipboard operation
devstream copied to clipboard

:four_leaf_clover: `Proposal`: argo Support kustomize

Open huang12zheng opened this issue 3 years ago • 3 comments

What Would You Like to Add? Why Is This Needed?

  • dtm only supports Helm repo. Here's what I found: https://github.com/devstream-io/devstream/blob/main/internal/pkg/plugin/argocdapp/argocdapp.go#L49-L53
res["src"] = map[string]interface{}{
		"repoURL":   opts.Source.RepoURL,
		"path":      opts.Source.Path,
		"valueFile": opts.Source.Valuefile,
	}
  • We can find in the Argo documentation: https://argo-cd.readthedocs.io/en/stable/user-guide/helm/ https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
spec:
  source:
    repoURL: https://github.com/argoproj/argocd-example-apps.git
    targetRevision: HEAD
    path: guestbook-kustomize

    kustomize:
      version: v3.5.4
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: sealed-secrets
  namespace: argocd
spec:
  project: default
  source:
    chart: sealed-secrets
    repoURL: https://bitnami-labs.github.io/sealed-secrets
    targetRevision: 1.16.1
    helm:
      releaseName: sealed-secrets
  destination:
    server: "https://kubernetes.default.svc"
    namespace: kubeseal

Maybe there's something I don't know, or maybe this isn't a good time to support this

Design

none

Anything else

none

huang12zheng avatar Jun 15 '22 00:06 huang12zheng

I always think that multiple installation methods should be provided, such as in kubernetes (helm, yaml), in containers (docker, podman), in Linux bare metal.

There is a common plugin for each way, like I want to install GitLab,The configuration of each installation method can be quickly obtained by the show command.

dtm show config --plugin=helm --app=gitlab
dtm show config --plugin=docker --app=gitlab
dtm show config --plugin=linux --app=gitlab

Each application has a plug-in corresponding to the installation method, which is the way of the dashboard, not the way of the tool.

prodanlabs avatar Jun 17 '22 06:06 prodanlabs

@prodanlabs, thank you for your suggestion; indeed, gitlab such plugins should support multiple installation methods, for example, the first version we currently support is the docker way of installation, maybe the next version will go to support the vm way. #692


@huang12zheng Good thinking; first helm is positioned to manage the various "software" deployed on k8s, while kustomize is used more to solve the "multi-environment configuration problem". In other words, we can install it by kustomize, but there is no fundamental difference with the yaml way to apply. And helm can be used to "manage" an application, such as uninstall and upgrade operations. Of course, it's perfectly fine to support kustomize or yaml, if there is a clear need for it.

/cc @IronCore864 @aFlyBird0

daniel-hutao avatar Jun 20 '22 03:06 daniel-hutao

Great proposal. Will support in the next minor release!

IronCore864 avatar Jul 08 '22 02:07 IronCore864