Merge "kube/postgres: run bouncer"
diff --git a/kube/postgres.libsonnet b/kube/postgres.libsonnet
index 571fe7b..8208662 100644
--- a/kube/postgres.libsonnet
+++ b/kube/postgres.libsonnet
@@ -84,4 +84,47 @@
type: "ClusterIP",
},
},
+
+ bouncer: {
+ deployment: kube.Deployment(postgres.makeName("bouncer")) {
+ metadata+: postgres.metadata {
+ labels+: {
+ "app.kubernetes.io/component": "bouncer",
+ }
+ },
+ spec+: {
+ replicas: 1,
+ template+: {
+ spec+: {
+ containers_: {
+ bouncer: kube.Container(postgres.makeName("bouncer")) {
+ image: "edoburu/pgbouncer:1.11.0",
+ ports_: {
+ client: { containerPort: 5432 },
+ },
+ env: [
+ { name: "POSTGRES_PASSWORD", valueFrom: cfg.password },
+ { name: "DATABASE_URL", value: "postgres://%s:$(POSTGRES_PASSWORD)@%s/%s" % [cfg.username, postgres.svc.host, cfg.database] },
+ ],
+ },
+ },
+ },
+ },
+ },
+ },
+ svc: kube.Service(postgres.makeName("bouncer")) {
+ metadata+: postgres.metadata {
+ labels+: {
+ "app.kubernetes.io/component": "bouncer",
+ }
+ },
+ target_pod:: postgres.bouncer.deployment.spec.template,
+ spec+: {
+ ports: [
+ { name: "client", port: 5432, targetPort: 5432, protocol: "TCP" },
+ ],
+ type: "ClusterIP",
+ },
+ },
+ },
}