zalando / zalando/postgres-operator

Configurable api group for postgres operator with default

Open
#2,867 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
5.2k
Forks
1.1k
Avg merge
2d 16h
Merged PRs (30d)
3

Description

In Kubernetes, there is tight coupling of API group, CRD and Custom Resources managed by operators. CRDs are cluster resource and unique per cluster.
CRD operatorconfigurations.acid.zalan.do defines the operator configurations for postgres operator.
CRD postgresqls.acid.zalan.do defines minimum and maximum supported postgresql versions.

This leads to issues in a multi-tenant k8s cluster, an example provided below.

In Namespace X, user X deploys web tier application which uses zalando postgres-operator with max version PG 15.
In Namespace Y, user Y deploys web tier application which also uses zalando postgres-operator but needs PG 17 runs into an issue as CRD postgresqls.acid.zalan.do supports only PG 15. This happens because CRD is cluster scope and all namespace scoped applications should adhere to it.

With large k8s clusters, postgresql being a very popular database, zalando postgres operator being defacto way to manage databases, there is a need to keep this configurable so applications can manage the API group of CRDs.

Take API group for postgres operator as an env variable, assuming that the relevant CRDs with API groups are installed.

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 by locating the operator configuration and all references to the postgres operator API group, then inspect how environment variables are currently defined and consumed. Done means the API group can be supplied through an environment variable while assuming the corresponding CRDs are installed, with coverage for the configured and default values.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes, postgresql
Domain
databases, devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.