Repository navigation
feat(chart): cdc-postgresql pins its image, checks its values, and tests what Debezium needs - #480
Merged
Merged
Conversation
…sts what Debezium needs cdc-postgresql 0.2.0, before its first publish: - postgres 16.15 instead of the moving 16 tag; image.digest pins by content. - values.schema.json refuses unknown keys, a latest tag, a malformed digest, postgres as the CDC user, and parameters that override the replication settings. - helm test connects through the Service as the CDC user and checks wal_level=logical, REPLICATION and ownership of the database. - parameters (extra -c settings), persistence.enabled=false (emptyDir) and an opt-in NetworkPolicy. - A startup probe for the first start, TCP probes, a read-only root filesystem, and NOTES.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
cdc-postgresql(#474) hasn't been published yet: GHCR has nocharts/cdc-postgresql. Its first published version should be one we're happy to keep, since a published version is never re-pushed. Three things in 0.1.0 were worth fixing first:postgres:16tag, so a reinstall could get a different server.What
cdc-postgresql 0.1.0 → 0.2.0:
postgres:16.15(appVersion16.15). An optionalimage.digestpins by content.values.schema.jsonrefuses:latesttag;postgresas the CDC user;parametersthat would overridewal_level,max_wal_sendersormax_replication_slots.helm testconnects through the Service as the CDC user, the way Debezium does. It checkswal_level=logical, the user'sREPLICATIONattribute, and that the user owns the database.parameters: extra-c name=valueserver settings;persistence.enabled=false: the data in an emptyDir;networkPolicy.enabled: admits 5432 only from the namespaces and pods listed, plus the chart's own test.What deploy relies on is unchanged: the release name, the Service, the
app.kubernetes.io/name=postgresqllabel, and the Secret keyspostgres-passwordandpassword. The default credentials stay, because deploy writesdebeziuminto Connect'sconnect-pg-credentials. Moving to generated or existing-Secret credentials needs a CLI change too, so it's left for later.Publishing
After this merges, dispatching
publish-charts.ymlfrom main publishescdc-postgresql0.2.0, signed and attested under the main-branch identity thatkates deployaccepts. That way the package exists, and can be made public, before v1.30.0 (#479). The dispatch also publishes the six other chart versions main has but GHCR doesn't: kafka-cluster 1.0.18, kafka-ui 0.3.2, kates-platform 0.8.7, kates 0.14.1, kates-monitoring 1.7.1 and strimzi-operator 0.4.5.Tests
helm lint. The schema refuses each bad value above and accepts a good one.check-chart-policies.sh cdc-postgresql: PASS, test pod included.chart_bumps.py,check-versions.sh,gen-chart-table.sh --check,gen-version-matrix.sh --check, yamllint.helm testpasses;persistence.enabled=false,networkPolicy.enabled=trueandparameters.max_connections=150creates no PVC, passeshelm test, and reportsSHOW max_connections= 150;allowNamespacesit gets "accepting connections".kates deploy --with-kafka-connectwith Debezium. Deploy passes no values to this chart, and its defaults keep every name and key Connect and the Kates API use.