argoproj / argoproj/argo-cd

Enable --disable-openapi-validation sync option when using Helm

Open
#5,366 3 comments 0 reactions 0 assignees View on GitHub
cannot-reproduce enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.