diff --git a/kubernetes/05-storage-db.yml b/kubernetes/05-storage-db.yml index 68a4e36..a62ddf1 100644 --- a/kubernetes/05-storage-db.yml +++ b/kubernetes/05-storage-db.yml @@ -1,118 +1,125 @@ --- apiVersion: v1 kind: PersistentVolume metadata: name: storage-db-pv spec: capacity: storage: 10Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Delete storageClassName: storage-db local: path: /srv/softwareheritage/dev/storage-db nodeAffinity: required: nodeSelectorTerms: - matchExpressions: # TODO adapt for your needs - key: kubernetes.io/os operator: In values: - linux --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: storage-db-pvc spec: accessModes: - ReadWriteOnce storageClassName: storage-db resources: requests: storage: 10Gi --- ## TODO Change this to your real postgresql password apiVersion: v1 kind: Secret metadata: name: storage-db type: Opaque # data: # POSTGRES_PASSWORD: | # "echo 'strong password' | base64" stringData: POSTGRES_PASSWORD: swh --- apiVersion: v1 kind: ConfigMap metadata: name: storage-db data: # property-like keys; each key maps to a simple value POSTGRES_USER: swh POSTGRES_DB: swh --- apiVersion: apps/v1 kind: Deployment metadata: name: storage-db labels: app: storage-db spec: replicas: 1 selector: matchLabels: app: storage-db template: metadata: labels: app: storage-db spec: containers: - name: storage-db image: postgres:13.0 imagePullPolicy: Always ports: - containerPort: 5432 + args: + - "-c" + - "shared_buffers=512MB" + - "-c" + - "effective_cache_size=512MB" + - "-c" + - "random_page_cost=1.5" + - "-c" + - "max_wal_size=512MB" env: - - name: PGOPTIONS - value: -c shared_buffers=4GB -c effective_cache_size=4GB -c random_page_cost=1.5 -c max_wal_size=4GB - name: POSTGRES_USER valueFrom: configMapKeyRef: name: storage-db key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: storage-db key: POSTGRES_PASSWORD - name: POSTGRES_DB valueFrom: configMapKeyRef: name: storage-db key: POSTGRES_DB volumeMounts: - - mountPath: "/var/lib/postgresql/data" + - mountPath: "/var/lib/postgresql" name: storage-db-pvc volumes: - name: storage-db-pvc persistentVolumeClaim: claimName: storage-db-pvc --- apiVersion: v1 kind: Service metadata: name: storage-db spec: type: ClusterIP selector: app: storage-db ports: - port: 5432 targetPort: 5432