New to KubeDB? Please start here.
Setting up Custom PgpoolVersions
PgpoolVersions are KubeDB crds that define the docker images KubeDB will use when deploying a pgpool server. For more details about PgpoolVersion crd, please visit here.
Creating a Custom Pgpool Image for KubeDB
If you want to create a custom image of pgpool with additional features, the best way is to build on top of the existing kubedb image.
FROM ghcr.io/appscode-images/pgpool2:4.5.0
ENV SOME_VERSION_VAR 0.9.1
RUN set -ex \
&& apk add --no-cache --virtual .fetch-deps \
ca-certificates \
curl \
bash
From there, we would define a PgpoolVersion that contains this new image. Let’s say we tagged it as myco/pgpool:custom-4.5.0
. You can also build exporter image yourself using pgpool_exporter repository.
apiVersion: catalog.kubedb.com/v1alpha1
kind: PgpoolVersion
metadata:
name: 4.5.0
spec:
exporter:
image: ghcr.io/appscode-images/pgpool2_exporter:v1.2.2
pgpool:
image: myco/pgpool:custom-4.5.0
version: 4.5.0
deprecated: false
Once we add this PgpoolVersion we can use it in a new Pgpool like:
apiVersion: kubedb.com/v1alpha2
kind: Pgpool
metadata:
name: quick-pgpool
namespace: pool
spec:
version: "4.5.0"
replicas: 1
postgresRef:
name: quick-postgres
namespace: demo
sslMode: disable
clientAuthMode: md5
syncUsers: true
deletionPolicy: WipeOut