:four_leaf_clover: `Proposal`: argo Support kustomize
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
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, 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
Great proposal. Will support in the next minor release!