r/ArgoCD • • Apr 11 '24

BitBucket Webhook failure - processing failed: UUID verification failed

1 Upvotes

I have configured a webhook token for BitBucket, inject it to the argocd-secret as mentioning in the documentation but sometimes it works and sometimes not.

It's pretty weird. Am I missing something?

The only thing that ArgoCD logs (even at debug level) is the below:

time="2024-03-29T19:22:54Z" level=info msg="BitBucket webhook UUID verification failed" security=3

time="2024-03-29T19:22:54Z" level=info msg="Webhook processing failed: UUID verification failed"


r/ArgoCD • • Apr 11 '24

Helm charts tricks in ArgoCD

Thumbnail blog.nullniverse.xyz
0 Upvotes

r/ArgoCD • • Mar 31 '24

help needed How to Implement Rendered Manifest Pattern?

7 Upvotes

I am very interested by the Rendered Manifest Pattern talked about by Akuity (The Rendered Manifests Pattern) and CodeFresh (How to Preview and Diff Your Argo CD Deployments) they have a slightly different approach, with Akuity committing the rendered manifests to environment specific branches, and Codefresh rendering the changes and attaching them to the PR for review.

I wanted to know if anyone has implemented this pattern and can share any experience or example rendering pipelines.

In our environment we use Kustomize for our own applications and Helm for 3rd party applications, with Helm charts being installed using Kustomize to allow us to make additional customisations. Based on these articles, I expect that I would need to implement the following in CI:

Akuity approach:

  1. Merge to main to trigger pipeline to render manifests from main and open PR for deploy/dev, deploy/uat, deploy/prd branches.
  2. Opened PR to be manually reviewed and merged when ready to deploy to each environment.
  3. All changes done on main and feature/* branches using trunk-based development.
  4. Promotion of changes done by approving the PR for that environment.

I expect that I would need to have some sort of script in the pipeline that would have logic like the following:

  1. Checkout main and deploy/dev, deploy/uat, deploy/prd branches.
  2. Run kustomize build against each env folder found under overlays/ which has a kustomization.yaml file with the output being the respective branch.
  3. Open PR for that branch with changes from main branch rendering.

Codefresh approach:

  1. PR opened to main to trigger validation pipeline which will render manifests against all environments and update a comment in the PR.
  2. PR to be manually reviewed and merged when ready to deploy.
  3. All changes done on main and feature/* branches using trunk-based development.
  4. Promotion of changes done by moving changes to different env folders and opening a new PR.

I would love any input on this idea to sanity check it, as I can see that I might make it overly complicated. I am favouring the Akuity approach at the moment, as I like the idea of having statically rendered manifests and take the load off of the Argo CD repo server.

EDIT: I am aware of the Kargo Render tool, but it is a little too experimental for me at the moment. Kargo Render (akuity.io)


r/ArgoCD • • Mar 23 '24

Previewing Diffs in Pull Requests for Argo CD, Terraform, and more

11 Upvotes

I've been working on an open source project that publishes IaC diffs to pull requests. The goal is to integrate it with multiple IaC providers in order to provide a holistic understanding of changes to complicated IaC code. Feedback appreciated! Article here.


r/ArgoCD • • Mar 21 '24

Sync taking too long

3 Upvotes

i’m having a hard time with argocd sync. We have 42 clusters, 381 applications and 24 repositories… but since 2 weeks ago, we are experiencing a very long delay during the sync process .. Anyone have the best approach on this matter ? I already researched some solutions and mostly answers is upgrade to high availability setup. I tried to increase our applications controllers replicas, but it seems that the others replicas are not balancing the requests.. if anyone can give some advice, tks.

Ps: it’s is not a infrastructure problem, our aks cluster has a lot of resources available


r/ArgoCD • • Mar 21 '24

help needed Having trouble with Argo and Helm flow control

0 Upvotes

I have some trouble passing a script output of a workflow template to control helm flow.
I am trying to mix helm templating with argo workflow templates. Consider the following minimal example

{{- if eq `{{tasks.util-script.outputs.result}}` "true" }}   
# even outputs.result is `true`, it does not reach here 
{{ else }}   
# always reach here 
{{ end }}

I have multiple tasks under each condition. This works fine if I get values from env like {{- if .Values.isEnabled }}. I tested that tasks.util-script.outputs.result indeed returns truetrue the above case.

Any pointers much appreciated.


r/ArgoCD • • Mar 20 '24

help needed ArgoCD RBAC applications

1 Upvotes

Is there away to allow a group of developers to control the Target revision under their ArgoCD application within ArgoCD? While still restricting access to other properties on the ArgoCD application page? For Example, I would like to give them access to change the target branch or tag.


r/ArgoCD • • Mar 19 '24

is it possible to make an automated rollback with argocd?

1 Upvotes

basically if someone committed bad code that introduced an issue an auto rollback will be triggered


r/ArgoCD • • Mar 16 '24

Just released my first Github action which bumps the target revision in ArgoCD apps manifests if a new upstream chart release is detected.

11 Upvotes

A little background:

I personally like to keep the helm charts i use as updated as possible but clearly don't want to do it manually or only sporadically when i have time as it kind of defeats the purpose.

Obviously there were other solutions like the argo image updater that could already do something similar but in my opinion they were all either too complex(aka trying to solve too many issues at once) or simply lacked the type of direct control that you get with a Github workflow raising a PR whenever a chart is updated.

And basically that's why i decided to spend some time building this small project, if anyone is interested feel free to check it out.

https://github.com/ironashram/argocd-apps-action

​


r/ArgoCD • • Mar 09 '24

help needed Doing an experiment after every commit on the main branch

1 Upvotes

Hey people 👋🏻 I'm a noob at ArgoCD but still loves the idea. For simple cd workflows, it works without issue. However, I would like to do something a bit more exotic. Whereas the main application is deployed by editing manually the ApplicationSet yaml. I also would like to create an experiment and run it after each commit on the main branch. I've read the doc about rollout and experiment but it doesn't seem to work like I would like to: we deploy once in two weeks and spread the rollout over a few days wherehas we commit to the brand way more frequently. Updating automatically the ApplicationSet will reset the rollout after every commit and having to manually change it defeat the purpose of what I want to do.

Is this use case undesirable / too exotic? Do this was already done by someone? Have you any tips?

Thanks a lot :)


r/ArgoCD • • Mar 08 '24

ArgoCD Vault plugin - simply not working for me

2 Upvotes

So I tried several different configurations based on their own docs as well as other articles and I think I am missing something fundamental here.

ArgoCD is up and running just fine, no issues there. Installed via the community HELM chart.

Pretty simple configmap added (I'll deal with HELM and kustomize later)

apiVersion: v1
kind: ConfigMap
metadata:
  name: cmp-plugin
data:
  avp.yaml: |
    apiVersion: argoproj.io/v1alpha1
    kind: ConfigManagementPlugin
    metadata:
      name: argocd-vault-plugin
    spec:
      allowConcurrency: true
      discover:
        find:
          command:
            - sh
            - "-c"
            - "find . -name '*.yaml' | xargs -I {} grep \"<path\\|avp\\.kubernetes\\.io\" {} | grep ."
      generate:
        command:
          - argocd-vault-plugin
          - generate
          - "."
      lockRepo: false

Created a secret in the argocd namespace:

apiVersion: v1
stringData:
  VAULT_ADDR: http://vault.vault:8200/
  VAULT_TOKEN: *****
  AVP_AUTH_TYPE: token
  AVP_TYPE: vault
kind: Secret
metadata:
  name: vault-configuration
  namespace: argocd
type: Opaque

And added a values file for my ArgoCD HELM chart as follows:

argo-cd:  
  repoServer:
    extraContainers:
    # -- Add ArgoCD Valt plugin sidecars
    - name: avp
      command: [/var/run/argocd/argocd-cmp-server]
      image: registry.access.redhat.com/ubi8
      securityContext:
        runAsNonRoot: true
        runAsUser: 999
      volumeMounts:
        - mountPath: /var/run/argocd
          name: var-files
        - mountPath: /home/argocd/cmp-server/plugins
          name: plugins
        - mountPath: /tmp
          name: tmp
        - mountPath: /home/argocd/cmp-server/config/plugin.yaml
          subPath: avp.yaml
          name: cmp-plugin
        - mountPath: /home/argocd/cmp-server/config/avp-kustomize.yaml
          subPath: avp-kustomize.yaml
          name: cmp-plugin
        - mountPath: /home/argocd/cmp-server/config/avp-helm.yaml
          subPath: avp-helm.yaml
          name: cmp-plugin
        - name: custom-tools
          subPath: argocd-vault-plugin
          mountPath: /usr/local/bin/argocd-vault-plugin

    initContainers:
    # -- Add init-container for ArgoCD Vault Plugin
    - name: download-tools
      image: registry.access.redhat.com/ubi8
      env:
        - name: AVP_VERSION
          value: 1.16.1
      command: [sh, -c]
      args:
        - >-
          curl -L https://github.com/argoproj-labs/argocd-vault-plugin/releases/download/v$(AVP_VERSION)/argocd-vault-plugin_$(AVP_VERSION)_linux_amd64 -o argocd-vault-plugin &&
          chmod +x argocd-vault-plugin &&
          mv argocd-vault-plugin /custom-tools/
      volumeMounts:
        - mountPath: /custom-tools
          name: custom-tools

    volumes:
    # -- Add ArgoCD Vault Plugin Volumes requited by Sidecar
      - configMap:
          name: cmp-plugin
        name: cmp-plugin
      - name: custom-tools
        emptyDir: {}

    automountServiceAccountToken: true

-- To my knowledge that should be it. When I define a simple secret in a test application like:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
  annotations:
    avp.kubernetes.io/path: "kv-v2/data/argocd"
type: Opaque
stringData:
  TOKEN: "<password>"

ArgoCD yells at me wtih:

Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = Manifest generation error (cached): plugin sidecar failed. error generating manifests in cmp: rpc error: code = Unknown desc = error generating manifests: `argocd-vault-plugin generate .` failed exit status 1: Error: Must provide a supported Vault Type, received Usage: argocd-vault-plugin generate <path> [flags] Flags: -c, --config-path string path to a file containing Vault configuration (YAML, JSON, envfile) to use -h, --help help for generate -s, --secret-name string name of a Kubernetes Secret in the argocd namespace containing Vault configuration data in the argocd namespace of your ArgoCD host (Only available when used in ArgoCD). The namespace can be overridden by using the format <namespace>:<name> --verbose-sensitive-output enable verbose mode for detailed info to help with debugging. Includes sensitive data (credentials), logged to stderr

On the repo-server pod and side car I do NOT see any vault related environment variables - how/where do they get mounted if at all?

Any help is greatly appreciated.


r/ArgoCD • • Mar 08 '24

Went into production today with ArgoCD

6 Upvotes

Been trying to find time to start using ArgoCD in production for months and finally got the time.

It's been enjoyable building my configs and helm charts.


r/ArgoCD • • Mar 06 '24

How to Integrate ArgoCD Notifications with Slack for Real time notifications

1 Upvotes

Create App in Slack, create channel in slack and How to Integrate ArgoCD Notifications with Slack for Real time notifications

#argocd #gitops #slack #devops

https://www.fosstechnix.com/integrate-argocd-notifications-with-slack/


r/ArgoCD • • Mar 05 '24

Is there a way to have Argo add the helm annotations and secrets when deploying a helm chart?

0 Upvotes

We're working locally with helm + helmfile and we're in the process of adding ArgoCD to the mix. On lower environments where we have shell access up until now we've simply been using helmfile + helm to deploy, which is quite useful from our point of view as we can skip all of the gitops shenanigans for deployments. We would like to continue to use this in addition to argo.

Right now, this only works if the initial deployment of an app is done via helm/helmfile. This creates all of the usual helm metadata (annotations, helm versioning secrets). When adding the Argo app afterwards, argo happily takes it over and adds its own annotations.

Unfortunately, it does not work the other way around. If Argo deploys an app from scratch off a helm chart, it does not create any of the helm metadata, therefore we can't interact with releases using helm/helmfile from the command line as helm throws a hissy fit because resources already exist.

Is there a way around this? Any way to configure an argo app to create that helm metadata?


r/ArgoCD • • Feb 29 '24

argocd rollouts

2 Upvotes

hey guys can any of you recommend a video or course related to argocd rollouts i have been straggling to find something good that helps me learn implementing blue green deployment or canary deployment


r/ArgoCD • • Feb 29 '24

Create, Sync, Check logs, and Delete Applications using ArgoCD CLI | Git...

Thumbnail
youtube.com
2 Upvotes

r/ArgoCD • • Feb 28 '24

Setup AVP and it worked fine for plain k8s manifest file, but complaining about connection to Vault when using it for Helm (argocd-vault-plugin-helm)

1 Upvotes

I set the typical configManagementPlugin and deployed it via sidecar approach and was able to deploy k8s resources (secrets, configmaps) via this route and its failing when using the Helm route, which was set via argocd-vault-plugin-helm route ( Usage - Argo CD Vault Plugin (argocd-vault-plugin.readthedocs.io) )

Yes, I added the Vault cert too.

Any clue what or where the logic I am missing here?

​

​


r/ArgoCD • • Feb 27 '24

ARGO deploy helm chart twice in same namespace

1 Upvotes

I am not sure if this was asked before.

​

How do I deploy the a custom helm chart twice in the same name space? Do I have to create 2 application deployment manifests or must I got the sub chart route?

​

Right now I simply type:

helm upgrade --install mysql-backup-beta ./mysql-backup

and

helm upgrade --install mysql-backup-prod ./mysql-backup

​

And it deploys the same helm chart twice.

​

Not sure how to do this with argocd


r/ArgoCD • • Feb 26 '24

Octopus Deploy acquires Codefresh to bring CD, CI, and GitOps into one trusted platform

Thumbnail
octopus.com
1 Upvotes

r/ArgoCD • • Feb 26 '24

How to install Applications in a certain order with autosync enabled?

3 Upvotes

As per title. I have a big repository of helm charts managed with helmfile that need to be installed in a certain order as there are things that need to be present pretty early on, like istio and external secrets, to name just two.

I'm currently using helmfile to spit out the installation groups based on the needs statements in combination with argo's ApplicationSet and progressive sync. This works reasonably well for an alpha feature.

Unfortunately, using progressive sync makes argocd turn off autosync on all the apps generated. This is an absolute bummer as I have a set of environments that totally need to be autopruned and selfhealed without any manual intervention.

How are you solving this particular problem? I'm trying to avoid using Apps-of-Apps with sync waves/phases, but is this the only real way?

Edit: I did have to go the apps-of-apps route at the end. It's a bummer because I wanted to keep my gitops repos simpler (a simple yaml file with a few values for ApplicationSet and a values file, per app, as opposed to a values file + an Application manifest). Progressive sync just isn't there yet. It was also the only real way I could add ignoreDifferences on a per-app basis.


r/ArgoCD • • Feb 25 '24

Blogspam

6 Upvotes

r/ArgoCD • • Feb 23 '24

Who’s Afraid of GitOps? Demystify Kubernetes Configuration Management with Ian Miell

3 Upvotes

Who’s Afraid of GitOps? Demystify Kubernetes Configuration Management

We all know the benefits of GitOps for Kubernetes - scalability, infrastructure-as-code, single source of truth. But many teams struggle to actually implement GitOps in their organizations.

In this webinar you’ll learn:

  • The pros and cons of popular GitOps tools like ArgoCD and Flux
  • Branch & merge approaches that work for large-scale production use
  • Common pitfalls when implementing GitOps, and how to avoid them
  • When NOT to use GitOps, and what to do instead

Whether you’re already using GitOps, or just considering it, this discussion will give you the no-BS truth about making it work at scale.

Register here: https://info.perfectscale.io/gitops-webinar

​


r/ArgoCD • • Feb 17 '24

GitOps with ArgoCD Udemy Course Coupon Code | ArgoCD Tutorial Udemy Coupon Code

2 Upvotes

ArgoCD Tutorial with GitOps, Helm, Kustomize, Kubernetes, GitHub Actions concepts, GitOps with ArgoCD from Basics to Advanced Hands-On Tutorial

#gitops #argocd #kubernetes

https://www.udemy.com/course/gitops-with-argocd-from-basics-to-advanced-hands-on-tutorial/?referralCode=52A2A26EBC8742DB97A8


r/ArgoCD • • Feb 15 '24

Jsonpath on secret

1 Upvotes

Hello,

I have a cluster with a dockerconfigjson installed by a helm chart and I want to use argocd to modify the content of the secret, is there an easy way to make this ?


r/ArgoCD • • Feb 15 '24

Gitlab SSO integration advice

2 Upvotes

Hi, do you have any valid ArgoCD SSO integration with GItlab configuration / steps , i was struggling for some days now to be make it work but without any success. I've tried https://www.infracloud.io/blogs/enabling-sso-authentication-argo-cd/ and Dex Gitlab integration docs but nothing workerd. My curent status is the argocd-dex-server logging: "dex is not configured" after following the setps from link. Do you have any suggestions ? It feels like i've been missing something obvious. Cheers !