Enable --disable-openapi-validation sync option when using Helm
- Dominant language
- Go
- Stars
- 24.2k
- Forks
- 7.8k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 239
Description
# Summary
When using helm as a templating tool, charts requiring the `--disable-openapi-validation` cannot be installed using ArgoCD
# Motivation
For example, the privatebin chart is failing to deploy because the `StatefulSet` object is missing the `spec.serviceName` field. So we have a chart that is deployable through Helm using the `--disable-openapi-validation` option but not with ArgoCD
# Proposal
Support additional Helm flags when defining application CRD. For example:
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: privatebin
namespace: argocd
spec:
project: default
source:
repoURL: 'git@repo.git'
path: helm/charts/pio-privatebin
targetRevision: master
helm:
valueFiles:
- values-custom.yaml
releaseName: privatebin
flags:
# will translate to helm template ... --disable-openapi-validation=true
disable-openapi-validation: true
destination:
server: 'https://kubernetes.default.svc'
namespace: privatebin
syncPolicy:
syncOptions:
- CreateNamespace=true
```
Contributor guide
Research direction
Start by tracing how the Application CRD represents Helm source configuration and how Helm arguments are passed during sync and templating. Use the privatebin example and the proposed flags field as the acceptance case; done means an Application can enable --disable-openapi-validation for Helm-rendered resources and deploy the chart successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, helm, kubernetes
- Domain
- ci-cd, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100