Deploy CNPG Cluster #
- Create a CNPG cluster for the app
apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: geoserver-postgres namespace: gis spec: instances: 1 imageName: ghcr.io/cloudnative-pg/postgis:15-3.4 storage: size: 20Gi bootstrap: initdb: database: geoserver owner: geoserver secret: name: geoserver-db-secret - Create a Secret
kubectl create namespace gis kubectl create secret generic geoserver-db-secret \ --from-literal=username=geoserver \ --from-literal=password=StrongPassword123 \ -n gis - Apply
kubectl apply -f postgis-cluster.yaml
Deploy Geoserver #
- Add Repo
helm repo add geoserver https://charts.geoserver.org helm repo update - Create values.yaml
replicaCount: 1 service: type: NodePort nodePort: 30080 env: - name: GEOSERVER_ADMIN_USER value: admin - name: GEOSERVER_ADMIN_PASSWORD value: GeoStrongPass123 - name: POSTGRES_HOST value: geoserver-postgres-rw.gis.svc.cluster.local - name: POSTGRES_DB value: geoserver - name: POSTGRES_USER valueFrom: secretKeyRef: name: geoserver-db-secret key: username - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: geoserver-db-secret key: password - Install
helm install geoserver geoserver/geoserver \ -n gis \ -f values.yaml