This is more of a feature request than an issue. I have been using a separate crds directory to make sure the crds exist, in a fresh cluster, prior reconciling helmrelease files. This can get very cumbersome, having to create kustomizations & git repositories resources for crd manifests in addition to the helmreleases, etc etc. The best example for this is the prometheus-operator CR's. If servicemonitors and alert rules are defined in helmrelease values, they won't reconcile unless kube-prometheus-stack crd's get installed first. What would be a cleaner approach is having flux install all crd's first, if defined in the helmrelease like below, before doing any helm installs.
current approach
cluster/crds
├── external-dns
│ ├── crds.yaml
│ └── kustomization.yaml
├── kube-prometheus-stack
│ ├── crds.yaml
│ └── kustomization.yaml
└── kustomization.yaml
helm-release.yaml
install:
crds: CreateReplace
upgrade:
crds: CreateReplace
This is more of a feature request than an issue. I have been using a separate crds directory to make sure the crds exist, in a fresh cluster, prior reconciling helmrelease files. This can get very cumbersome, having to create kustomizations & git repositories resources for crd manifests in addition to the helmreleases, etc etc. The best example for this is the prometheus-operator CR's. If servicemonitors and alert rules are defined in helmrelease values, they won't reconcile unless kube-prometheus-stack crd's get installed first. What would be a cleaner approach is having flux install all crd's first, if defined in the helmrelease like below, before doing any helm installs.
current approach
helm-release.yaml