Skip to main content

How to install GeoServer in kubernetes and use CNPG as Database

·138 words·1 min

Deploy CNPG Cluster
#

  1. 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
  2. Create a Secret
    kubectl create namespace gis
    
    kubectl create secret generic geoserver-db-secret \
      --from-literal=username=geoserver \
      --from-literal=password=StrongPassword123 \
      -n gis
  3. Apply
    kubectl apply -f postgis-cluster.yaml

Deploy Geoserver
#

  1. Add Repo
    helm repo add geoserver https://charts.geoserver.org
    helm repo update
  2. 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
  3. Install
    helm install geoserver geoserver/geoserver \
         -n gis \
         -f values.yaml