|
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 |
| ---- |
112 | 1 | kind: workload
|
113 | 2 | name: postgres-stateful
|
114 | 3 | description: postgres-stateful
|
|
0 commit comments