Skip to content

Commit 42c0433

Browse files
committed
chore(database): use env replace creds volume
1 parent bde48c7 commit 42c0433

8 files changed

Lines changed: 75 additions & 86 deletions

File tree

charts/database/templates/_helper.tpl

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,44 @@
1-
{{- define "database.envs" -}}
1+
{{- define "database.envs" }}
22
env:
33
- name: DATABASE_STORAGE
44
value: "{{.Values.global.storage}}"
55
- name: PGCTLTIMEOUT
66
value: "{{.Values.timeout}}"
7-
{{- if eq .Values.global.minioLocation "on-cluster" }}
7+
- name: "DRYCC_DATABASE_USER"
8+
valueFrom:
9+
secretKeyRef:
10+
name: database-creds
11+
key: user
12+
- name: "DRYCC_DATABASE_PASSWORD"
13+
valueFrom:
14+
secretKeyRef:
15+
name: database-creds
16+
key: password
17+
- name: "DRYCC_MINIO_LOOKUP"
18+
valueFrom:
19+
secretKeyRef:
20+
name: minio-creds
21+
key: lookup
22+
- name: "DRYCC_MINIO_BUCKET"
23+
valueFrom:
24+
secretKeyRef:
25+
name: minio-creds
26+
key: database-bucket
827
- name: "DRYCC_MINIO_ENDPOINT"
9-
value: ${DRYCC_MINIO_SERVICE_HOST}:${DRYCC_MINIO_SERVICE_PORT}
10-
{{- else }}
11-
- name: "DRYCC_MINIO_ENDPOINT"
12-
value: "{{ .Values.minio.endpoint }}"
13-
{{- end }}
28+
valueFrom:
29+
secretKeyRef:
30+
name: minio-creds
31+
key: endpoint
32+
- name: "DRYCC_MINIO_ACCESSKEY"
33+
valueFrom:
34+
secretKeyRef:
35+
name: minio-creds
36+
key: accesskey
37+
- name: "DRYCC_MINIO_SECRETKEY"
38+
valueFrom:
39+
secretKeyRef:
40+
name: minio-creds
41+
key: secretkey
1442
{{- end }}
1543

1644
{{/* Generate database deployment limits */}}

charts/database/templates/database-deployment.yaml

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@ spec:
2828
args:
2929
- netcat
3030
- -v
31-
- -a
31+
- -u
3232
- $(DRYCC_MINIO_ENDPOINT)
33-
{{- include "builder.envs" . | indent 8 }}
33+
{{- include "database.envs" . | indent 8 }}
3434
containers:
3535
- name: drycc-database
3636
image: {{.Values.imageRegistry}}/{{.Values.imageOrg}}/postgres:{{.Values.imageTag}}
3737
imagePullPolicy: {{.Values.imagePullPolicy}}
3838
ports:
3939
- containerPort: 5432
40-
{{- include "builder.limits" . | indent 8 }}
41-
{{- include "builder.envs" . | indent 8 }}
40+
{{- include "database.limits" . | indent 8 }}
41+
{{- include "database.envs" . | indent 8 }}
4242
lifecycle:
4343
preStop:
4444
exec:
@@ -54,25 +54,13 @@ spec:
5454
- is_running
5555
initialDelaySeconds: 30
5656
timeoutSeconds: 1
57+
{{- if .Values.persistence.enabled }}
5758
volumeMounts:
58-
- name: database-creds
59-
mountPath: /var/run/secrets/drycc/database/creds
60-
- name: minio-creds
61-
mountPath: /var/run/secrets/drycc/minio/creds
62-
{{- if .Values.persistence.enabled }}
6359
- name: database-data
6460
mountPath: /data
65-
{{- end }}
6661
volumes:
67-
{{- if .Values.persistence.enabled }}
6862
- name: database-data
6963
persistentVolumeClaim:
7064
claimName: drycc-database
7165
{{- end }}
72-
- name: database-creds
73-
secret:
74-
secretName: database-creds
75-
- name: minio-creds
76-
secret:
77-
secretName: minio-creds
7866
{{- end }}

charts/database/templates/database-secret-creds.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ metadata:
99
annotations:
1010
"helm.sh/hook": pre-install
1111
data:
12-
user: {{ if .Values.username | default "" | ne "" }}{{ .Values.username | b64enc }}{{ else }}{{ randAlphaNum 32 | b64enc }}{{ end }}
12+
user: {{ if .Values.user | default "" | ne "" }}{{ .Values.user | b64enc }}{{ else }}{{ randAlphaNum 32 | b64enc }}{{ end }}
1313
password: {{ if .Values.password | default "" | ne "" }}{{ .Values.password | b64enc }}{{ else }}{{ randAlphaNum 32 | b64enc }}{{ end }}
1414
{{- end }}

contrib/ci/test-minio.sh

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,32 @@ create-postgres-creds
1818

1919
puts-step "creating fake minio credentials"
2020

21-
mkdir -p "${CURRENT_DIR}"/tmp/aws-user
22-
echo "us-east-1" > "${CURRENT_DIR}"/tmp/aws-user/region
23-
echo "database-bucket" > "${CURRENT_DIR}"/tmp/aws-user/database-bucket
24-
echo "1234567890123456789012345678901234567890" > "${CURRENT_DIR}"/tmp/aws-user/accesskey
25-
echo "1234567890123456789012345678901234567890" > "${CURRENT_DIR}"/tmp/aws-user/secretkey
26-
21+
s3Accesskey="1234567890123456789012345678901234567890"
22+
s3Secretkey="1234567890123456789012345678901234567890"
2723
# boot minio
2824
mkdir -p "${CURRENT_DIR}"/tmp/bin
29-
echo "ls /data/database-bucket/*/basebackups_005" > "${CURRENT_DIR}"/tmp/bin/backups.sh
25+
echo "ls /data/database/*/basebackups_005" > "${CURRENT_DIR}"/tmp/bin/backups.sh
3026
MINIO_JOB=$(docker run -d \
27+
-e DRYCC_MINIO_ACCESSKEY=$s3Accesskey \
28+
-e DRYCC_MINIO_SECRETKEY=$s3Secretkey \
3129
-v "${CURRENT_DIR}"/tmp/bin:/tmp/bin \
32-
-v "${CURRENT_DIR}"/tmp/aws-user:/var/run/secrets/drycc/minio/creds \
3330
"${DEV_REGISTRY}"/drycc/minio:canary server /data/)
3431

3532
puts-step "minio starting, wait 30s."
3633
sleep 30
3734

3835
# boot postgres, linking the minio container and setting DRYCC_MINIO_ENDPOINT
3936
MINIO_IP=$(docker inspect --format "{{ .NetworkSettings.IPAddress }}" "${MINIO_JOB}")
40-
PG_CMD="docker run -d --add-host minio:${MINIO_IP} -e PGCTLTIMEOUT=1200 \
41-
-e BACKUP_FREQUENCY=1s -e DATABASE_STORAGE=minio \
42-
-e DRYCC_MINIO_ENDPOINT=minio:9000 \
43-
-v ${CURRENT_DIR}/tmp/creds:/var/run/secrets/drycc/database/creds \
44-
-v ${CURRENT_DIR}/tmp/aws-user:/var/run/secrets/drycc/minio/creds $1"
37+
PG_CMD="docker run -d \
38+
--add-host minio.local:${MINIO_IP} \
39+
-e PGCTLTIMEOUT=1200 \
40+
-e BACKUP_FREQUENCY=1s \
41+
-e DATABASE_STORAGE=minio \
42+
-e DRYCC_MINIO_LOOKUP=path \
43+
-e DRYCC_MINIO_BUCKET=database \
44+
-e DRYCC_MINIO_ENDPOINT=http://minio.local:9000 \
45+
-e DRYCC_MINIO_ACCESSKEY=$s3Accesskey \
46+
-e DRYCC_MINIO_SECRETKEY=$s3Secretkey $1"
4547

4648
start-postgres "${PG_CMD}"
4749

rootfs/bin/create_bucket

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,22 @@
22

33
set -e
44

5-
# shellcheck disable=SC1091
6-
source /bin/normalize_storage
5+
mc config host add minio \
6+
"${DRYCC_MINIO_ENDPOINT}" \
7+
"${DRYCC_MINIO_ACCESSKEY}" \
8+
"${DRYCC_MINIO_SECRETKEY}" \
9+
--lookup "${DRYCC_MINIO_LOOKUP}" \
10+
--api s3v4
711

812
has_bucket(){
9-
mc ls minio -json|jq -r '.key'|grep -w "${MINIO_BUCKET}"
13+
mc ls minio -json|jq -r '.key'|grep -w "${DRYCC_MINIO_BUCKET}"
1014
}
1115

1216
if [ -z "$(has_bucket)" ] ;then
13-
mc mb minio/"${MINIO_BUCKET}"
17+
mc mb minio/"${DRYCC_MINIO_BUCKET}"
1418
if [ -z "$(has_bucket)" ] ;then
15-
echo "create bucket ${MINIO_BUCKET} error"
19+
echo "create bucket ${DRYCC_MINIO_BUCKET} error"
1620
exit 1
1721
fi
1822
fi
19-
echo "create bucket ${MINIO_BUCKET} success"
23+
echo "create bucket ${DRYCC_MINIO_BUCKET} success"

rootfs/bin/normalize_storage

Lines changed: 0 additions & 23 deletions
This file was deleted.

rootfs/docker-entrypoint-initdb.d/001_setup_envdir.sh

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,11 @@
22

33
cd "$WALG_ENVDIR"
44

5-
AWS_ACCESS_KEY_ID=$(cat /var/run/secrets/drycc/minio/creds/accesskey)
6-
AWS_SECRET_ACCESS_KEY=$(cat /var/run/secrets/drycc/minio/creds/secretkey)
7-
8-
BUCKET_FILE="/var/run/secrets/drycc/minio/creds/database-bucket"
9-
if [ -f $BUCKET_FILE ]; then
10-
BUCKET_NAME=$(cat "$BUCKET_FILE")
11-
export BUCKET_NAME
12-
else
13-
export BUCKET_NAME="database"
5+
echo $DRYCC_MINIO_ACCESSKEY > AWS_ACCESS_KEY_ID
6+
echo $DRYCC_MINIO_SECRETKEY > AWS_SECRET_ACCESS_KEY
7+
echo "s3://$DRYCC_MINIO_BUCKET/$PG_MAJOR" > WALE_S3_PREFIX
8+
echo "${DRYCC_MINIO_ENDPOINT}" > AWS_ENDPOINT
9+
if [ "${DRYCC_MINIO_LOOKUP}" == "path" ]; then
10+
echo "true" > AWS_S3_FORCE_PATH_STYLE
1411
fi
15-
16-
echo $AWS_ACCESS_KEY_ID > AWS_ACCESS_KEY_ID
17-
echo $AWS_SECRET_ACCESS_KEY > AWS_SECRET_ACCESS_KEY
18-
echo "s3://$BUCKET_NAME/$PG_MAJOR" > WALE_S3_PREFIX
19-
echo "http://${DRYCC_MINIO_ENDPOINT}" > AWS_ENDPOINT
20-
echo "true" > AWS_S3_FORCE_PATH_STYLE
21-
echo $AWS_REGION > S3_REGION
22-
echo $BUCKET_NAME > BUCKET_NAME
12+
echo $DRYCC_MINIO_BUCKET > BUCKET_NAME

rootfs/docker-entrypoint.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ set_listen_addresses() {
1010
sed -ri "s/^#?(listen_addresses\s*=\s*)\S+/\1'$sedEscapedValue'/" "$PGDATA/postgresql.conf"
1111
}
1212

13-
POSTGRES_USER="$(cat /var/run/secrets/drycc/database/creds/user)"
14-
POSTGRES_PASSWORD="$(cat /var/run/secrets/drycc/database/creds/password)"
13+
POSTGRES_USER="${DRYCC_DATABASE_USER}"
14+
POSTGRES_PASSWORD="${DRYCC_DATABASE_PASSWORD}"
1515

1616
if [ "$1" = 'postgres' ]; then
1717
mkdir -p "$PGDATA"

0 commit comments

Comments
 (0)