github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/apecloud-postgresql/templates/clusterdefinition.yaml (about) 1 apiVersion: apps.kubeblocks.io/v1alpha1 2 kind: ClusterDefinition 3 metadata: 4 name: apecloud-postgresql 5 labels: 6 {{- include "apecloud-postgresql.labels" . | nindent 4 }} 7 spec: 8 type: postgresql 9 connectionCredential: 10 username: postgres 11 password: "$(RANDOM_PASSWD)" 12 endpoint: "$(SVC_FQDN):$(SVC_PORT_tcp-postgresql)" 13 host: "$(SVC_FQDN)" 14 port: "$(SVC_PORT_tcp-postgresql)" 15 componentDefs: 16 - name: postgresql 17 characterType: postgresql 18 workloadType: Consensus 19 probes: 20 roleProbe: 21 failureThreshold: {{ .Values.roleProbe.failureThreshold }} 22 periodSeconds: {{ .Values.roleProbe.periodSeconds }} 23 timeoutSeconds: {{ .Values.roleProbe.timeoutSeconds }} 24 service: 25 ports: 26 - name: tcp-postgresql 27 port: 5432 28 targetPort: tcp-postgresql 29 configSpecs: 30 - name: postgresql-consensusset-configuration 31 templateRef: apecloud-postgresql12-configuration 32 constraintRef: apecloud-postgresql12-cc 33 keys: 34 - postgresql.conf 35 namespace: {{ .Release.Namespace }} 36 volumeName: postgresql-config 37 defaultMode: 0777 38 volumeTypes: 39 - name: data 40 type: data 41 scriptSpecs: 42 - name: apecloud-postgresql-scripts 43 templateRef: apecloud-postgresql-scripts 44 namespace: {{ .Release.Namespace }} 45 volumeName: scripts 46 defaultMode: 0777 47 consensusSpec: 48 leader: 49 name: leader 50 accessMode: ReadWrite 51 followers: 52 - name: follower 53 accessMode: Readonly 54 learner: 55 name: learner 56 accessMode: Readonly 57 podSpec: 58 initContainers: 59 - name: init-permissions 60 image: busybox 61 securityContext: 62 runAsUser: 0 63 command: [ "chmod", "a+w", "/postgresql" ] 64 volumeMounts: 65 - name: data 66 mountPath: /postgresql 67 containers: 68 - name: postgresql 69 imagePullPolicy: {{ default .Values.image.pullPolicy "IfNotPresent" }} 70 securityContext: 71 runAsUser: 999 72 command: 73 - /kb-scripts/setup.sh 74 volumeMounts: 75 - name: dshm 76 mountPath: /dev/shm 77 - name: data 78 mountPath: /postgresql 79 - name: postgresql-config 80 mountPath: /var/lib/postgresql/conf 81 - name: scripts 82 mountPath: /kb-scripts 83 ports: 84 - name: tcp-postgresql 85 containerPort: 5432 86 - name: paxos 87 containerPort: 15432 88 env: 89 - name: CONSENSUS_MODE 90 value: "data" 91 - name: KUBERNETES_USE_CONFIGMAPS 92 value: "true" 93 - name: ALLOW_NOSSL 94 value: "true" 95 - name: POD_IP 96 valueFrom: 97 fieldRef: 98 apiVersion: v1 99 fieldPath: status.podIP 100 - name: POD_NAMESPACE 101 valueFrom: 102 fieldRef: 103 apiVersion: v1 104 fieldPath: metadata.namespace 105 - name: POSTGRES_USER 106 valueFrom: 107 secretKeyRef: 108 name: $(CONN_CREDENTIAL_SECRET_NAME) 109 key: username 110 optional: false 111 - name: POSTGRES_PASSWORD 112 valueFrom: 113 secretKeyRef: 114 name: $(CONN_CREDENTIAL_SECRET_NAME) 115 key: password 116 optional: false 117 - name: PGUSER 118 valueFrom: 119 secretKeyRef: 120 name: $(CONN_CREDENTIAL_SECRET_NAME) 121 key: username 122 optional: false 123 - name: PGPASSWORD 124 valueFrom: 125 secretKeyRef: 126 name: $(CONN_CREDENTIAL_SECRET_NAME) 127 key: password 128 optional: false 129 - name: POSTGRESQL_PORT_NUMBER 130 value: "5432" 131 - name: PGDATA 132 value: postgresql/pgconsensus_data 133 systemAccounts: 134 cmdExecutorConfig: 135 image: {{ .Values.image.registry | default "docker.io" }}/{{ .Values.image.repository }}:{{ default .Values.image.tag .Chart.AppVersion }} 136 command: 137 - psql 138 args: 139 - -h$(KB_ACCOUNT_ENDPOINT) 140 - -Upostgres 141 - -c 142 - $(KB_ACCOUNT_STATEMENT) 143 env: 144 - name: PGUSER 145 valueFrom: 146 secretKeyRef: 147 name: $(CONN_CREDENTIAL_SECRET_NAME) 148 key: username 149 - name: PGPASSWORD 150 valueFrom: 151 secretKeyRef: 152 name: $(CONN_CREDENTIAL_SECRET_NAME) 153 key: password 154 passwordConfig: 155 length: 10 156 numDigits: 5 157 numSymbols: 0 158 letterCase: MixedCases 159 accounts: 160 - name: kbadmin 161 provisionPolicy: 162 type: CreateByStmt 163 scope: AnyPods 164 statements: 165 creation: CREATE USER $(USERNAME) SUPERUSER PASSWORD '$(PASSWD)'; 166 deletion: DROP USER IF EXISTS $(USERNAME);