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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm Standalone Package - Infrastructure as Code (Argo CD) #2181

Open
AlissonRS opened this issue May 8, 2024 · 5 comments
Open

Helm Standalone Package - Infrastructure as Code (Argo CD) #2181

AlissonRS opened this issue May 8, 2024 · 5 comments
Assignees

Comments

@AlissonRS
Copy link

First of all, thanks for such an amazing tool 馃殌

I use Argo CD to provision several components to Kubernetes (e.g. Grafana, Robusta, Nginx Ingress, Keda, RabbitMQ).

Argo CD can provision kubernetes resources either by leveraging Helm, Jsonnet or Kustomize.

The current process requires cloning git repo, which cannot be natively done via Argo.

I read in #320 that this was in the roadmap. Since it's been 2 years I was wondering if this has been implemented, or at least is part of the roadmap, as I'd be keen on contributing to this feature somehow.

Thanks again!!!

@rjshrjndrn
Copy link
Contributor

Hi I'm no expert in Argo. But, for Argo, you can directly point the path to the hem chart, right?

The only concern will be to store the vars.yaml file to your private repo and using that whole installation

@AlissonRS
Copy link
Author

AlissonRS commented May 14, 2024

@rjshrjndrn that might be possible, but a bit inconvenient as:

  • I'd need to disable auto-sync otherwise as changes are made to the external repo it'd be auto-deployed to my cluster and that's risky (meaning I lose the best of ArgoCD which is make sure the cluster looks like the repo), which is not a problem if you're using a standalone package since you can pin the chart version.
  • When upgrading to newer versions I cannot easily see what changed between versions and know what to fix in my setup
  • It'd be the only k8s component in my cluster running with a different setup, as my Argo setup looks for a single private infrastructure git repo, in which every k8s component/operator (Grafana, RabbitMQ, MongoDB, and potentially OpenReplay) is a subchart, as per screenshot below:

image

This is very convenient, as I just define the chart, pin the version, configure values.yaml and optionally my own templates folder in case I want to have some custom components running alongside OpenReplay (e.g. sidecars).

@AlissonRS
Copy link
Author

AlissonRS commented Jun 3, 2024

@rjshrjndrn I managed to work around this for the time being.

I forked the repo so I can have some control over pulling new changes and deploying to my cluster, so Argo is looking at my own repo.

I still think it'd be very beneficial to have a standalone chart for this.

I can open a pull request for this if you'd like.

@estradino
Copy link
Contributor

Please do and we'll review it.

@rjshrjndrn
Copy link
Contributor

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: openreplay
  namespace: argocd
spec:
  project: application
  syncPolicy:
    syncOptions:
      - CreateNamespace=true
    automated:
      selfHeal: true
  destination:
    server: https://kubernetes.default.svc/
    namespace: openreplay
  sources:
    - repoURL: https://gitlab.com/.../applications-manifests
      targetRevision: main
      ref: values
    - repoURL: https://gitlab.com/.../applications-manifests
      targetRevision: main
      path: openreplay
      helm:
        releaseName: openreplay-chart
    - repoURL: https://github.com/openreplay/openreplay.git
      targetRevision: main
      path: scripts/helmcharts/databases
      helm:
        releaseName: openreplay-databases
        valueFiles:
          - $values/openreplay/values.yaml
    - repoURL: https://github.com/openreplay/openreplay.git
      targetRevision: main
      path: scripts/helmcharts/openreplay
      helm:
        releaseName: openreplay
        valueFiles:
          - $values/openreplay/values.yaml
          ```
          what do you think about this config @AlissonRS 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants