cloudnative-pg / cloudnative-pg/charts

Feature: Support selective per-CRD installation via values.yaml

Open
#996 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go Template
Stars
621
Forks
265
Avg merge
7d 12h
Merged PRs (30d)
7

Description

## Current behaviour
The chart installs all 10 CRDs as a single all-or-nothing block:

```yaml
# values.yaml
crds:
create: true # all or nothing, no per-CRD control
```

The entire `templates/crds/crds.yaml` (18k lines, 10 CRDs) is wrapped in a single `{{- if .Values.crds.create }}` gate.

## Expected behaviour
Allow per-CRD toggles so operators can install only what they use:

```yaml
crds:
clusters: true
backups: false
scheduledbackups: false
poolers: false
databases: false
publications: false
subscriptions: false
imagecatalogs: false
clusterimagecatalogs: false
failoverquorums: false
```

## Why this matters
In multi-tenant clusters where a platform team governs cluster-scoped resources, clients must justify every CRD registered with the API server. In practice, most deployments only use `clusters` (and optionally `backups` / `scheduledbackups`). The remaining 7 CRDs are installed but never instantiated, which creates an unnecessary audit surface in regulated environments.

## Workaround today
Set `crds.create: false` and manage CRDs manually outside the chart — but this breaks automated CRD upgrades on chart updates.

Contributor guide

Open the contributing guide

Research direction

Start with values.yaml and templates/crds/crds.yaml, tracing the existing crds.create gate and the ten CRDs listed in the issue. Verify the chart's rendered output for different per-CRD settings; done means each toggle controls only its named CRD while automated CRD upgrades still work.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes, yaml
Domain
devops, infrastructure
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.