percona / percona/percona-postgresql-operator

Allow user-defined SANs in operator-generated TLS certificates via spec.tls.SANs

Open
#1,811 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request jira-task PG Proposed
Dominant language
Go
Stars
385
Forks
83
Avg merge
2d 5h
Merged PRs (30d)
39

Description

Proposal

Add an optional list field spec.tls.SANs to the PerconaPGCluster CR. Entries are appended to the Subject Alternative Names of the server certificate the operator requests from cert-manager, alongside the names it already generates.


spec:
  tls:
    SANs:
      - pg.example.com
      - "*.pg.internal.example.com"
      - 10.20.30.40
Use-Case

There’s already an issue for external-DNS operator integration, where the operator adds the single external hostname it manages to the certificate. That covers the case where external-DNS owns the record. spec.tls.SANs is the general escape hatch for everything it doesn’t:

• more than one external name (blue/green, per-tenant CNAMEs, legacy hostnames kept during a migration)
• wildcard names
• IP SANs for clients connecting to a VIP or LoadBalancer address directly
• DNS records managed outside the cluster entirely - corporate DNS, an air-gapped internal zone, or anything not reconciled by external-DNS

Is this a feature you are interested in implementing yourself?

Maybe

Anything else?

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the PerconaPGCluster TLS spec and trace the cert-manager request used for the server certificate, including where generated SANs are assembled. Add the optional spec.tls.SANs field so its entries are appended to the existing SANs, and verify the resulting certificate request includes user-defined DNS names, wildcards, and IPs.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes, postgresql
Domain
database, infrastructure, security
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.