Open marcusnh opened 9 months ago
After investigating the issue, this feature seems not yet available. It is not possible to use a private repository with the kustomization integration with Helm. Need to add this feature ref this issue.
@marcusnh in your case you can upgrade argocd to 2.9.3 that will add support to OCI, but you will need to do some manual stuff to inject the credentials.
Could you tell me what the manual steps need to be done? When using the ArgoCD application, it is enough to use a helm secret. Can we not do something similar with the customize helmchart?
@marcusnh you can follow the manual steps that Paul described here https://github.com/argoproj/argo-cd/issues/16623#issuecomment-1877669497
Personally, I built a proxy for my oci private repository and exposed it to ArgoCD.
@marcusnh have you been able to follow the steps from the comment above and if so, are they working for you or are you still facing the same issues?
@fandujar @reginapizza, we could not make it work, and I don´t think it is a suitable solution. The comment from Paul might solve the problem, but it is unsuitable to run in a production setup.
To get the solution to work, one has to change the argocd-repo-server
deployment. If the deployment is restarted in the case of, for instance, an ArgoCD upgrade, we will have to do the same configuration again.
In addition, this solution does not make it scalable to use several OCI repositories. We don´t know all the repositories that might be used beforehand. The credentials need to be set together with the kustomization and helmchart config and not through some filesystem trick of the live ArgoCD deployment.
The current approaches, including manual filesystem changes or leveraging temporary credentials, are not viable for sustainable production use. These methods introduce significant challenges: The current approaches, including manual filesystem changes or leveraging temporary credentials, are not viable for sustainable production use. These methods introduce significant challenges:
Security and Stability Risks: Manual interventions in the filesystem of a running container go against best practices for containerized environments, potentially compromising security and stability.
Lack of Persistence: Such changes are ephemeral and do not survive pod restarts, leading to additional maintenance overhead and potential downtime.
Scalability Concerns: For organizations utilizing multiple private OCI registries, managing individual configurations and credentials for each is neither scalable nor practical.
Credential Management: The reliance on continuously refreshing credentials, especially in environments like AWS ECR where tokens expire frequently, adds unnecessary complexity and potential points of failure.
We need a solution that integrates seamlessly with ArgoCD, providing a secure, scalable, and maintainable way to manage private OCI registries. This solution should ideally:
@marcusnh I totally agree with you.
Same problem here, would love if it gets fixed in an upcoming release.
Checklist:
argocd version
.Describe the bug
We are experiencing a bug when creating an ArgoCD application with a kustomization file through an ArgoCD ApplicationSet. We want to reference an external helm chart in our Azure container registry using the helmchart generator in kustomization. Below is our kustomization file:
The error we receive in our ArgoCD controller is the following:
There seems to a problem with connecting to the ACR, but we have created a secret with access credentials and passed it to the ArgoCD instance. When creating a ArgoCD application with the same setup, it works fine:
To Reproduce
To reproduce the error one has to create a argoCD applicationset with the following configuration:
The create a kustomization file in the path: applicationsets/test/kustomization-file. Create a secret that gives access to ACR. We have used the kustomization definition defined above.
Expected behavior
That we would be able to sync the resources defined in the helm chart
Version