Skip to content

Commit 29e71ec

Browse files
ahangarhajustin808
authored andcommitted
Break down postgres-stateful into separate templates
1 parent c836fba commit 29e71ec

6 files changed

+101
-111
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kind: identity
2+
name: postgres-stateful-identity
3+
description: postgres-stateful-identity
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
kind: policy
2+
name: postgres-stateful-access
3+
description: postgres-stateful-access
4+
bindings:
5+
- permissions:
6+
- reveal
7+
- use
8+
- view
9+
principalLinks:
10+
- //gvc/react-webpack-rails-tutorial/identity/postgres-stateful-identity #Replace YOUR_GVC_HERE with the name of your gvc
11+
targetKind: secret
12+
targetLinks:
13+
- //secret/postgres-stateful-credentials
14+
- //secret/postgres-stateful-entrypoint-script
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
kind: secret
2+
name: postgres-stateful-entrypoint-script
3+
type: opaque
4+
data:
5+
encoding: base64
6+
payload: >-
7+
IyEvdXNyL2Jpbi9lbnYgYmFzaAoKc291cmNlIC91c3IvbG9jYWwvYmluL2RvY2tlci1lbnRyeXBvaW50LnNoCgppbnN0YWxsX2RlcHMoKSB7CiAgYXB0LWdldCB1cGRhdGUgLXkgPiAvZGV2L251bGwKICBhcHQtZ2V0IGluc3RhbGwgY3VybCAteSA+IC9kZXYvbnVsbAogIGFwdC1nZXQgaW5zdGFsbCB1bnppcCAteSA+IC9kZXYvbnVsbAogIGN1cmwgImh0dHBzOi8vYXdzY2xpLmFtYXpvbmF3cy5jb20vYXdzY2xpLWV4ZS1saW51eC14ODZfNjQuemlwIiAtbyAiYXdzY2xpdjIuemlwIiA+IC9kZXYvbnVsbAogIHVuemlwIGF3c2NsaXYyLnppcCA+IC9kZXYvbnVsbAogIC4vYXdzL2luc3RhbGwgPiAvZGV2L251bGwKfQoKZGJfaGFzX2JlZW5fcmVzdG9yZWQoKSB7CiAgaWYgWyAhIC1mICIkUEdEQVRBL0NQTE5fUkVTVE9SRUQiIF07IHRoZW4KICAgIHJldHVybiAxCiAgZmkKCiAgaWYgISBncmVwIC1xICJcLT4gJDEkIiAiJFBHREFUQS9DUExOX1JFU1RPUkVEIjsgdGhlbgogICAgcmV0dXJuIDEKICBlbHNlCiAgICByZXR1cm4gMAogIGZpCn0KCnJlc3RvcmVfZGIoKSB7Cgl3aGlsZSBbICEgLVMgL3Zhci9ydW4vcG9zdGdyZXNxbC8ucy5QR1NRTC41NDMyIF0KCWRvCiAgICBlY2hvICJXYWl0aW5nIDVzIGZvciBkYiBzb2NrZXQgdG8gYmUgYXZhaWxhYmxlIgogICAgc2xlZXAgNXMKICBkb25lCgoKCWlmICEgZGJfaGFzX2JlZW5fcmVzdG9yZWQgIiQxIjsgdGhlbgoJICBlY2hvICJJdCBhcHBlYXJzIGRiICckMScgaGFzIG5vdCB5ZXQgYmVlbiByZXN0b3JlZCBmcm9tIFMzLiBBdHRlbXB0aW5nIHRvIHJlc3RvcmUgJDEgZnJvbSAkMiIKCSAgaW5zdGFsbF9kZXBzCgkgIGRvY2tlcl9zZXR1cF9kYiAjRW5zdXJlcyAkUE9TVEdSRVNfREIgZXhpc3RzIChkZWZpbmVkIGluIHRoZSBlbnRyeXBvaW50IHNjcmlwdCBmcm9tIHRoZSBwb3N0Z3JlcyBkb2NrZXIgaW1hZ2UpCgkgIGF3cyBzMyBjcCAiJDIiIC0gfCBwZ19yZXN0b3JlIC0tY2xlYW4gLS1uby1hY2wgLS1uby1vd25lciAtZCAiJDEiIC1VICIkUE9TVEdSRVNfVVNFUiIKCSAgZWNobyAiJChkYXRlKTogJDIgLT4gJDEiIHwgY2F0ID4+ICIkUEdEQVRBL0NQTE5fUkVTVE9SRUQiCgllbHNlCgkgIGVjaG8gIkRiICckMScgYWxyZWFkeSBleGlzdHMuIFJlYWR5ISIKICBmaQp9CgpfbWFpbiAiJEAiICYKYmFja2dyb3VuZFByb2Nlc3M9JCEKCmlmIFsgLW4gIiRQT1NUR1JFU19BUkNISVZFX1VSSSIgXTsgdGhlbgogIHJlc3RvcmVfZGIgIiRQT1NUR1JFU19EQiIgIiRQT1NUR1JFU19BUkNISVZFX1VSSSIKZWxzZQogIGVjaG8gIkRlY2xpbmluZyB0byByZXN0b3JlIHRoZSBkYiBiZWNhdXNlIG5vIGFyY2hpdmUgdXJpIHdhcyBwcm92aWRlZCIKZmkKCndhaXQgJGJhY2tncm91bmRQcm9jZXNzCgoK
8+
9+
#Here is the ASCII-encoded version of the script in the secret above
10+
#!/usr/bin/env bash
11+
#
12+
#source /usr/local/bin/docker-entrypoint.sh
13+
#
14+
#install_deps() {
15+
# apt-get update -y > /dev/null
16+
# apt-get install curl -y > /dev/null
17+
# apt-get install unzip -y > /dev/null
18+
# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" > /dev/null
19+
# unzip awscliv2.zip > /dev/null
20+
# ./aws/install > /dev/null
21+
#}
22+
#
23+
#db_has_been_restored() {
24+
# if [ ! -f "$PGDATA/CPLN_RESTORED" ]; then
25+
# return 1
26+
# fi
27+
#
28+
# if ! grep -q "\-> $1$" "$PGDATA/CPLN_RESTORED"; then
29+
# return 1
30+
# else
31+
# return 0
32+
# fi
33+
#}
34+
#
35+
#restore_db() {
36+
# while [ ! -S /var/run/postgresql/.s.PGSQL.5432 ]
37+
# do
38+
# echo "Waiting 5s for db socket to be available"
39+
# sleep 5s
40+
# done
41+
#
42+
#
43+
# if ! db_has_been_restored "$1"; then
44+
# echo "It appears db '$1' has not yet been restored from S3. Attempting to restore $1 from $2"
45+
# install_deps
46+
# docker_setup_db #Ensures $POSTGRES_DB exists (defined in the entrypoint script from the postgres docker image)
47+
# aws s3 cp "$2" - | pg_restore --clean --no-acl --no-owner -d "$1" -U "$POSTGRES_USER"
48+
# echo "$(date): $2 -> $1" | cat >> "$PGDATA/CPLN_RESTORED"
49+
# else
50+
# echo "Db '$1' already exists. Ready!"
51+
# fi
52+
#}
53+
#
54+
#_main "$@" &
55+
#backgroundProcess=$!
56+
#
57+
#if [ -n "$POSTGRES_ARCHIVE_URI" ]; then
58+
# restore_db "$POSTGRES_DB" "$POSTGRES_ARCHIVE_URI"
59+
#else
60+
# echo "Declining to restore the db because no archive uri was provided"
61+
#fi
62+
#
63+
#wait $backgroundProcess
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
kind: secret
2+
name: postgres-stateful-credentials
3+
description: ''
4+
type: dictionary
5+
data:
6+
password: the_user #Replace this with a real password
7+
username: the_password #Replace this with a real username
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
kind: volumeset
2+
name: postgres-stateful-vs
3+
description: postgres-stateful-vs
4+
spec:
5+
autoscaling:
6+
maxCapacity: 1000
7+
minFreePercentage: 1
8+
scalingFactor: 1.1
9+
fileSystemType: ext4
10+
initialCapacity: 10
11+
performanceClass: general-purpose-ssd
12+
snapshots:
13+
createFinalSnapshot: true
14+
retentionDuration: 7d

.controlplane/templates/postgres-stateful.yml

Lines changed: 0 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,3 @@
1-
kind: volumeset
2-
name: postgres-stateful-vs
3-
description: postgres-stateful-vs
4-
spec:
5-
autoscaling:
6-
maxCapacity: 1000
7-
minFreePercentage: 1
8-
scalingFactor: 1.1
9-
fileSystemType: ext4
10-
initialCapacity: 10
11-
performanceClass: general-purpose-ssd
12-
snapshots:
13-
createFinalSnapshot: true
14-
retentionDuration: 7d
15-
16-
---
17-
kind: secret
18-
name: postgres-stateful-credentials
19-
description: ''
20-
type: dictionary
21-
data:
22-
password: the_user #Replace this with a real password
23-
username: the_password #Replace this with a real username
24-
25-
---
26-
kind: secret
27-
name: postgres-stateful-entrypoint-script
28-
type: opaque
29-
data:
30-
encoding: base64
31-
payload: >-
32-
IyEvdXNyL2Jpbi9lbnYgYmFzaAoKc291cmNlIC91c3IvbG9jYWwvYmluL2RvY2tlci1lbnRyeXBvaW50LnNoCgppbnN0YWxsX2RlcHMoKSB7CiAgYXB0LWdldCB1cGRhdGUgLXkgPiAvZGV2L251bGwKICBhcHQtZ2V0IGluc3RhbGwgY3VybCAteSA+IC9kZXYvbnVsbAogIGFwdC1nZXQgaW5zdGFsbCB1bnppcCAteSA+IC9kZXYvbnVsbAogIGN1cmwgImh0dHBzOi8vYXdzY2xpLmFtYXpvbmF3cy5jb20vYXdzY2xpLWV4ZS1saW51eC14ODZfNjQuemlwIiAtbyAiYXdzY2xpdjIuemlwIiA+IC9kZXYvbnVsbAogIHVuemlwIGF3c2NsaXYyLnppcCA+IC9kZXYvbnVsbAogIC4vYXdzL2luc3RhbGwgPiAvZGV2L251bGwKfQoKZGJfaGFzX2JlZW5fcmVzdG9yZWQoKSB7CiAgaWYgWyAhIC1mICIkUEdEQVRBL0NQTE5fUkVTVE9SRUQiIF07IHRoZW4KICAgIHJldHVybiAxCiAgZmkKCiAgaWYgISBncmVwIC1xICJcLT4gJDEkIiAiJFBHREFUQS9DUExOX1JFU1RPUkVEIjsgdGhlbgogICAgcmV0dXJuIDEKICBlbHNlCiAgICByZXR1cm4gMAogIGZpCn0KCnJlc3RvcmVfZGIoKSB7Cgl3aGlsZSBbICEgLVMgL3Zhci9ydW4vcG9zdGdyZXNxbC8ucy5QR1NRTC41NDMyIF0KCWRvCiAgICBlY2hvICJXYWl0aW5nIDVzIGZvciBkYiBzb2NrZXQgdG8gYmUgYXZhaWxhYmxlIgogICAgc2xlZXAgNXMKICBkb25lCgoKCWlmICEgZGJfaGFzX2JlZW5fcmVzdG9yZWQgIiQxIjsgdGhlbgoJICBlY2hvICJJdCBhcHBlYXJzIGRiICckMScgaGFzIG5vdCB5ZXQgYmVlbiByZXN0b3JlZCBmcm9tIFMzLiBBdHRlbXB0aW5nIHRvIHJlc3RvcmUgJDEgZnJvbSAkMiIKCSAgaW5zdGFsbF9kZXBzCgkgIGRvY2tlcl9zZXR1cF9kYiAjRW5zdXJlcyAkUE9TVEdSRVNfREIgZXhpc3RzIChkZWZpbmVkIGluIHRoZSBlbnRyeXBvaW50IHNjcmlwdCBmcm9tIHRoZSBwb3N0Z3JlcyBkb2NrZXIgaW1hZ2UpCgkgIGF3cyBzMyBjcCAiJDIiIC0gfCBwZ19yZXN0b3JlIC0tY2xlYW4gLS1uby1hY2wgLS1uby1vd25lciAtZCAiJDEiIC1VICIkUE9TVEdSRVNfVVNFUiIKCSAgZWNobyAiJChkYXRlKTogJDIgLT4gJDEiIHwgY2F0ID4+ICIkUEdEQVRBL0NQTE5fUkVTVE9SRUQiCgllbHNlCgkgIGVjaG8gIkRiICckMScgYWxyZWFkeSBleGlzdHMuIFJlYWR5ISIKICBmaQp9CgpfbWFpbiAiJEAiICYKYmFja2dyb3VuZFByb2Nlc3M9JCEKCmlmIFsgLW4gIiRQT1NUR1JFU19BUkNISVZFX1VSSSIgXTsgdGhlbgogIHJlc3RvcmVfZGIgIiRQT1NUR1JFU19EQiIgIiRQT1NUR1JFU19BUkNISVZFX1VSSSIKZWxzZQogIGVjaG8gIkRlY2xpbmluZyB0byByZXN0b3JlIHRoZSBkYiBiZWNhdXNlIG5vIGFyY2hpdmUgdXJpIHdhcyBwcm92aWRlZCIKZmkKCndhaXQgJGJhY2tncm91bmRQcm9jZXNzCgoK
33-
34-
#Here is the ASCII-encoded version of the script in the secret above
35-
#!/usr/bin/env bash
36-
#
37-
#source /usr/local/bin/docker-entrypoint.sh
38-
#
39-
#install_deps() {
40-
# apt-get update -y > /dev/null
41-
# apt-get install curl -y > /dev/null
42-
# apt-get install unzip -y > /dev/null
43-
# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" > /dev/null
44-
# unzip awscliv2.zip > /dev/null
45-
# ./aws/install > /dev/null
46-
#}
47-
#
48-
#db_has_been_restored() {
49-
# if [ ! -f "$PGDATA/CPLN_RESTORED" ]; then
50-
# return 1
51-
# fi
52-
#
53-
# if ! grep -q "\-> $1$" "$PGDATA/CPLN_RESTORED"; then
54-
# return 1
55-
# else
56-
# return 0
57-
# fi
58-
#}
59-
#
60-
#restore_db() {
61-
# while [ ! -S /var/run/postgresql/.s.PGSQL.5432 ]
62-
# do
63-
# echo "Waiting 5s for db socket to be available"
64-
# sleep 5s
65-
# done
66-
#
67-
#
68-
# if ! db_has_been_restored "$1"; then
69-
# echo "It appears db '$1' has not yet been restored from S3. Attempting to restore $1 from $2"
70-
# install_deps
71-
# docker_setup_db #Ensures $POSTGRES_DB exists (defined in the entrypoint script from the postgres docker image)
72-
# aws s3 cp "$2" - | pg_restore --clean --no-acl --no-owner -d "$1" -U "$POSTGRES_USER"
73-
# echo "$(date): $2 -> $1" | cat >> "$PGDATA/CPLN_RESTORED"
74-
# else
75-
# echo "Db '$1' already exists. Ready!"
76-
# fi
77-
#}
78-
#
79-
#_main "$@" &
80-
#backgroundProcess=$!
81-
#
82-
#if [ -n "$POSTGRES_ARCHIVE_URI" ]; then
83-
# restore_db "$POSTGRES_DB" "$POSTGRES_ARCHIVE_URI"
84-
#else
85-
# echo "Declining to restore the db because no archive uri was provided"
86-
#fi
87-
#
88-
#wait $backgroundProcess
89-
90-
---
91-
kind: identity
92-
name: postgres-stateful-identity
93-
description: postgres-stateful-identity
94-
95-
---
96-
kind: policy
97-
name: postgres-stateful-access
98-
description: postgres-stateful-access
99-
bindings:
100-
- permissions:
101-
- reveal
102-
- use
103-
- view
104-
principalLinks:
105-
- //gvc/react-webpack-rails-tutorial/identity/postgres-stateful-identity #Replace YOUR_GVC_HERE with the name of your gvc
106-
targetKind: secret
107-
targetLinks:
108-
- //secret/postgres-stateful-credentials
109-
- //secret/postgres-stateful-entrypoint-script
110-
111-
---
1121
kind: workload
1132
name: postgres-stateful
1143
description: postgres-stateful

0 commit comments

Comments
 (0)