Skip to content

Commit 5cb294a

Browse files
committed
update CA expiration time
In 1bb2318 the galera certs were regenerated with a three year expiry, but this did not include the CA expiration time, leading to failures again. this change updates that time as well and adds a script that can be used to regen the values.
1 parent ad0381c commit 5cb294a

File tree

5 files changed

+103
-76
lines changed

5 files changed

+103
-76
lines changed

config/samples/cert-manager-galera-cert.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ spec:
1616
isCA: true
1717
commonName: my-selfsigned-ca
1818
secretName: root-secret
19+
duration: 32088h
1920
privateKey:
2021
algorithm: ECDSA
2122
size: 256
@@ -47,7 +48,7 @@ spec:
4748
secretTemplate:
4849
labels:
4950
mariadb-ref: openstack
50-
duration: 6h
51+
duration: 32088h
5152
renewBefore: 1h
5253
subject:
5354
organizations:
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/bin/bash
2+
set -e
3+
4+
echo "This script will regenerate the TLS certificates in tls-certificate.yaml"
5+
echo "Prerequisites:"
6+
echo " - oc configured with an OpenShift cluster"
7+
echo " - cert-manager installed in the cluster"
8+
echo " - openstack namespace/project exists"
9+
echo ""
10+
11+
# Extract the commented cert-manager resources
12+
TEMP_FILE=$(mktemp)
13+
sed -n '5,69s/^# //p' tls-certificate.yaml > "$TEMP_FILE"
14+
15+
echo "Extracted cert-manager resources to $TEMP_FILE"
16+
echo ""
17+
echo "Deleting any existing secrets..."
18+
oc delete secret root-secret galera-cert -n openstack --ignore-not-found=true
19+
20+
echo ""
21+
echo "Applying cert-manager resources..."
22+
23+
# Apply the resources
24+
oc apply -f "$TEMP_FILE"
25+
26+
echo "Waiting for certificates to be ready..."
27+
echo " - Waiting for root-secret (CA certificate)..."
28+
oc wait --for=condition=ready certificate/selfsigned-ca -n openstack --timeout=60s
29+
30+
echo " - Waiting for galera-cert certificate..."
31+
oc wait --for=condition=ready certificate/galera-cert -n openstack --timeout=60s
32+
33+
echo ""
34+
echo "Certificates are ready! Extracting secret data..."
35+
36+
# Get the secret data
37+
CA_CRT=$(oc get secret root-secret -n openstack -o jsonpath='{.data.ca\.crt}')
38+
TLS_CRT=$(oc get secret galera-cert -n openstack -o jsonpath='{.data.tls\.crt}')
39+
TLS_KEY=$(oc get secret galera-cert -n openstack -o jsonpath='{.data.tls\.key}')
40+
41+
echo ""
42+
echo "Certificate validity periods:"
43+
echo " CA Certificate:"
44+
echo "$CA_CRT" | base64 -d | openssl x509 -noout -dates | sed 's/^/ /'
45+
echo ""
46+
echo " Galera Certificate:"
47+
echo "$TLS_CRT" | base64 -d | openssl x509 -noout -dates | sed 's/^/ /'
48+
echo ""
49+
50+
echo ""
51+
echo "Creating new hardcoded secret..."
52+
echo "---"
53+
cat <<EOF
54+
apiVersion: v1
55+
kind: Secret
56+
metadata:
57+
name: galera-cert
58+
data:
59+
tls-ca-bundle.pem: $CA_CRT
60+
tls.crt: $TLS_CRT
61+
tls.key: $TLS_KEY # notsecret
62+
EOF
63+
64+
echo ""
65+
echo "---"
66+
echo ""
67+
echo "To update tls-certificate.yaml:"
68+
echo "1. Copy the secret output above"
69+
echo "2. Replace the existing Secret resource (lines 71-78) in tls-certificate.yaml"
70+
echo ""
71+
echo "Cleaning up cert-manager resources..."
72+
oc delete -f "$TEMP_FILE" --ignore-not-found=true
73+
74+
rm "$TEMP_FILE"
75+
echo "Done!"

tests/chainsaw/common/tls-certificate.yaml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
# isCA: true
1919
# commonName: selfsigned-ca
2020
# secretName: root-secret
21+
# duration: 32088h
2122
# privateKey:
2223
# algorithm: ECDSA
2324
# size: 256
@@ -68,11 +69,19 @@
6869
# group: cert-manager.io
6970
# kind: Issuer
7071
# ---
72+
#
73+
# STEPS TO RECREATE, WHEN CERT EXPIRES (errors in pod logs):
74+
#
75+
# Run the script: tests/chainsaw/common/regenerate-tls-certs.sh
76+
# This will extract the commented cert-manager resources above, apply them,
77+
# wait for cert-manager to generate the certificates, then print the new
78+
# Secret YAML. Copy the secret data below.
79+
#
7180
apiVersion: v1
7281
kind: Secret
7382
metadata:
7483
name: galera-cert
7584
data:
76-
tls-ca-bundle.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJjRENDQVJhZ0F3SUJBZ0lRWm5GbEtqTU9SV1FhZ1VWcjVBV1BvVEFLQmdncWhrak9QUVFEQWpBWU1SWXcKRkFZRFZRUURFdzF6Wld4bWMybG5ibVZrTFdOaE1CNFhEVEkxTURjeU1URXpNRGN5TlZvWERUSTFNVEF4T1RFegpNRGN5TlZvd0dERVdNQlFHQTFVRUF4TU5jMlZzWm5OcFoyNWxaQzFqWVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHClNNNDlBd0VIQTBJQUJBb0VNbG9ybmxkUENiSk51cjBLQW5HcERaU3VWWlhEdWpPNW15ckROS203bFh2RmJ3a2gKc0FXQjFpVDRqZ0o5UXgvVTcxYUxVN1A1bmZWQmVxcXAzazJqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDcERBUApCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUmFWWkhMcHM4Rjluc3lXMVZTTWNPNERCaC80akFLCkJnZ3Foa2pPUFFRREFnTklBREJGQWlFQXZRMzdqbS9PSHROUjNlMU9NcUhNZUZ0Zzc3UE1SMm52ZG5pZnpubkgKYThRQ0lDZ3FIMWU1UkZWenBQME14WU1RZ0VkMzQyRGMvZ1p4STdQTzRwb2pFdTFvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
77-
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaVENDQXd1Z0F3SUJBZ0lSQU9EL21FQVo3VmNIMENabnBXV01nNm93Q2dZSUtvWkl6ajBFQXdJd0dERVcKTUJRR0ExVUVBeE1OYzJWc1puTnBaMjVsWkMxallUQWVGdzB5TlRBM01qRXhNek0wTkRsYUZ3MHlPVEF6TVRreApNek0wTkRsYU1ETXhGakFVQmdOVkJBb1REV05zZFhOMFpYSXViRzlqWVd3eEdUQVhCZ05WQkFNVEVHOXdaVzV6CmRHRmpheTFuWVd4bGNtRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQ253akEKcU92SG9EZVlvR3k3Y0RybXcxMXA4N2RYRCtYV2dWYy8zaTlQby83OTVQUnMzeEhnUllJUUdBOUZsYW1PNXNNWQpBZjA2a05RWjRaTWVEN0REWEIzcXUxZzI1UTBqRWpGNzBWVGNvMXZDQUNTN05GK3dwZGQwM0NudEduNFlidnpjClZ3T0FrVjVsZ29URFgxTGVQaWI1ZTgvdzE1MmRkbHlhU3lGallGUGJrQVJ3TDIwOWpIZnRGQm1CMHoxdnZvd2oKV05ORkhQeFVlRXluL3NaSnJWVkh3QVU0ZlpzdVBvVEpldjRtU3orTUR6QVh2by9SZWtweUdwbi9lUUY5aXhTUwphQTUyTUlyY245d0ZmTVYyQVV0V2RZMFU1KytLTXBPdXpScVBDdjFHbnkwWm1WVlFkdmF1N1Yzc3cwVktaSlJ4Cmcwc0w2R2N4akhzbXBveFhBZ01CQUFHamdnRk9NSUlCU2pBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3REFZRFZSMFRBUUgvQkFJd0FEQWZCZ05WSFNNRUdEQVdnQlJhVlpITHBzOEY5bnN5VzFWUwpNY080REJoLzRqQ0IrUVlEVlIwUkJJSHhNSUh1Z2hkdmNHVnVjM1JoWTJzdWIzQmxibk4wWVdOckxuTjJZNElsCmIzQmxibk4wWVdOckxtOXdaVzV6ZEdGamF5NXpkbU11WTJ4MWMzUmxjaTVzYjJOaGJJSVNLaTV2Y0dWdWMzUmgKWTJzdFoyRnNaWEpoZ2h3cUxtOXdaVzV6ZEdGamF5MW5ZV3hsY21FdWIzQmxibk4wWVdOcmdpQXFMbTl3Wlc1egpkR0ZqYXkxbllXeGxjbUV1YjNCbGJuTjBZV05yTG5OMlk0SW9LaTV2Y0dWdWMzUmhZMnN0WjJGc1pYSmhMbTl3ClpXNXpkR0ZqYXk1emRtTXVZMngxYzNSbGNvSXVLaTV2Y0dWdWMzUmhZMnN0WjJGc1pYSmhMbTl3Wlc1emRHRmoKYXk1emRtTXVZMngxYzNSbGNpNXNiMk5oYkRBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlBQXUvZFdKa1I2ZXlZYQpoSFZXNUR3NHF5WDhneE41Znd5NjhpNi8zTGRoTWdJaEFOV29rSzBvSlVxZ24zTFRKV0FBSVJEWVdFUmhVUWZ3ClY3QXFidE5BcmRtZgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
78-
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRENud2pBcU92SG9EZVkKb0d5N2NEcm13MTFwODdkWEQrWFdnVmMvM2k5UG8vNzk1UFJzM3hIZ1JZSVFHQTlGbGFtTzVzTVlBZjA2a05RWgo0Wk1lRDdERFhCM3F1MWcyNVEwakVqRjcwVlRjbzF2Q0FDUzdORit3cGRkMDNDbnRHbjRZYnZ6Y1Z3T0FrVjVsCmdvVERYMUxlUGliNWU4L3cxNTJkZGx5YVN5RmpZRlBia0FSd0wyMDlqSGZ0RkJtQjB6MXZ2b3dqV05ORkhQeFUKZUV5bi9zWkpyVlZId0FVNGZac3VQb1RKZXY0bVN6K01EekFYdm8vUmVrcHlHcG4vZVFGOWl4U1NhQTUyTUlyYwpuOXdGZk1WMkFVdFdkWTBVNSsrS01wT3V6UnFQQ3YxR255MFptVlZRZHZhdTdWM3N3MFZLWkpSeGcwc0w2R2N4CmpIc21wb3hYQWdNQkFBRUNnZ0VBZUJoYzlVNEhtTHJVTTltaTN4TkZOWXNPeE1mQXRmZTRjMktDN1lWMG1tZHYKZlVyZ1RhSmxUSWgzMXVpUjIvV2JtUFBySlpCc3E4d2RKZzlka2lwS2dITUNmd3UyUnNHWEZySXVXT0oyeEdRRgp4alFDZG9hK0dhcHN4czdwREVmUjBkQUROeEIydDhwOGZwVkl5YXF6M3pKcEtJQnZjNFlKMjlYakZNOFJ2bGpwCmRhZW1sWUdic3NRZEFNQVN2cUVzWlRqNU9mSWVsV0pvdEszUTFvcTFXNEMxelVZKzhra05sZEJQWTRYdDNCNlEKWVk1QS9ZSE9sUThMREcwQUpIMXhYZUNic0lyMG9OdDdNQ3kvUTRBVE1IL0loekRMZ3JsY0R6ck5BYVppdkl1Ywo1eDI0SDlQSVpmbThxcG1HYW1zVVpxSCtwQXhNdXMvTTVnME5YNkF1MlFLQmdRRHhUVVJMbGpNekpiZExtRUdhClBSSzByRE1MWXhWeEpqZjZudXJYUXZRRmk5TmFpZzAvNzgzNDJBU3poOHBTWVVMKzdqalpGdnRzWG9kOFF4aG4KMU11c1g4czFvRUprckxubkEyZEdETFJIdUMwWUpLUGJ5WFZXbHhFSVFNYjNheUJ1dWlkYTFLZDl6OEpzSWc0LwpGcDEwbWo2Z1lGb1E5dU5mcTcwREdscXUwd0tCZ1FET2VkclhHK0dybjM4aWFhcktlc3NwbVd2ZjFtM3VmV2swCnlYN3FNTzJpYzBHQWRFRkRJMFpJQVcxUmx3blBnTjJvMnZoc3NSa05MNy9UMmo4cjJKYnNxTTRzYnRyQUhXTi8KUi9TdmF1MW5rMmtNWUwvT0pwNkxDM3YydjlJSmhicDUzcCs0R21URDdNbFFHZkJtM2txam9Ba040eitYeVpraAoveDkwYkVDaDdRS0JnUUMzeDN0dWZqVDhqWXN1dmdXbzdUN2o4QXJvYjB5VFl1SmJ0TkZ6cFlDcEFMZTJTMUtRCkVabzBIb0ptSWRQTUxsdVNRZWwySGZUYnNwdEozdWdsbklLTEJHS0dzMG9kMXhlM2hIWVJlZmVNY0ErWVJiK3UKMDU3VWxqWFlyVTFjZjNDeUpJRjR3bUhXaG5lelY3UzJCQWxrRjEzL1U2TUZMS1E3NTFjTGwvVGRGUUtCZ0dheQptMVBFN1hFa3F1S2Q5akl4ODEwa2oxQk5ZbTV0K0djbUZiYzhVT1l0TjVaQnZMZzlFbGI4UnJoL1RJVG1UdG9PCjErT1FEcXJOWmpka1pXbFVtSFRyM1dpaVZyR1pySVNCY01YVGhIT3hFVjN6dlZNM1NFSldtdmozSGV4WWxKREwKVjF3RjNMckt5ckxKeEJZV1dMK2IrUVRzVkJRV1ZORmhDTzhxYk5kZEFvR0FGTEpiRnNHRThjVWdEWEtjcW55RQpPTHdmd3JSMmsrVngxcTc2a1laQVU4eHlmS093NFNxK1JSNmFqMDQvU0xhR0ozY2RwR244VGFCZGNYRjR2alJMCjIrQ1RBdndxVkszbTI5dzZrUDlIeG9CcGJUdnlIRGFvSnNqMDkxQUpaazh2RVl6Wm1NNms5RjJ3clN6ZGVXY2UKMnRzMk5LS0pUekdBTWpKNEZDeWxsNzA9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K # notsecret
85+
tls-ca-bundle.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJjVENDQVJhZ0F3SUJBZ0lRSVhmRWFGaHhnNWRxT0YyNjlrRGlaREFLQmdncWhrak9QUVFEQWpBWU1SWXcKRkFZRFZRUURFdzF6Wld4bWMybG5ibVZrTFdOaE1CNFhEVEkxTVRFd016RTROVE15TVZvWERUSTVNRGN3TWpFNApOVE15TVZvd0dERVdNQlFHQTFVRUF4TU5jMlZzWm5OcFoyNWxaQzFqWVRCWk1CTUdCeXFHU000OUFnRUdDQ3FHClNNNDlBd0VIQTBJQUJGTzg0QlRSYTFoU0ZzZVFIUk4xVzhiRE1RMHRXUC9LQjF3emZtc2kzaWRLUDBPc3dSRFgKcXdYbzkzR1FFc2VuamhQbmpZdEl2L2xZY3A5WnI2Wm5pME9qUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDcERBUApCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCU2ZSLy9yL1BGeUUxNytkSHIzdnk5SlNJeHFEREFLCkJnZ3Foa2pPUFFRREFnTkpBREJHQWlFQW5URjNSZzczcXpQbSs4MDZzS0dWdGdxUDVad2RiZlg0REZ1ai8vc0EKQ2VjQ0lRQ1dzd2ZvRWFwem1ydGFWL0doY0ZRcWFsN0VsYklSTjJTZjd4V1gxUGUrWXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
86+
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaRENDQXd1Z0F3SUJBZ0lSQU9NM3NmMXNzOUFyenk2aEZWaldOYnN3Q2dZSUtvWkl6ajBFQXdJd0dERVcKTUJRR0ExVUVBeE1OYzJWc1puTnBaMjVsWkMxallUQWVGdzB5TlRFeE1ETXhPRFV6TWpKYUZ3MHlPVEEzTURJeApPRFV6TWpKYU1ETXhGakFVQmdOVkJBb1REV05zZFhOMFpYSXViRzlqWVd3eEdUQVhCZ05WQkFNVEVHOXdaVzV6CmRHRmpheTFuWVd4bGNtRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDaUtvREkKYmEzUkc2bCtjOWNqa25zSVpJNWpJQjd3SXJGdlQ3dUNzdWlLYVoxU0FBUG5tUXBTVmdsdDEzdjRZYjZCZ1o1aAorR1Z2WFRNWTB5SnFheExUZWdrRWxDcDFOWUppR1duaDVqc0V2ZkM0UWNicHNWTncrMEpyeUVCaHdrUU92ZkI2ClhtWXJRcmNBSkFoMTFZaFYxN2JjWEpFMFZxN3VZSldmZi92VTBzNUFoSzBsbkJOK2x2TFRiRmEzSW5xQmgvQkUKNWRrMUkxNDc1Qmk1OVdDdEEvN0JOdXNFZitVc254VDQxNytRL1MyYkNFMnRhSzduUSs4bXhDYVd2aFJmYTQybgord3E4azd1YVAzSEVEVEpJUHZNbEc1a1dVRjVObHMxWDg5cWNwcHhPMmVNby85SlZ3Q0lYMkV1eG1UVnV3UjlBCmJXS1A1SWM2cUo1dUp3SUJBZ01CQUFHamdnRk9NSUlCU2pBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3REFZRFZSMFRBUUgvQkFJd0FEQWZCZ05WSFNNRUdEQVdnQlNmUi8vci9QRnlFMTcrZEhyMwp2eTlKU0l4cUREQ0IrUVlEVlIwUkJJSHhNSUh1Z2hkdmNHVnVjM1JoWTJzdWIzQmxibk4wWVdOckxuTjJZNElsCmIzQmxibk4wWVdOckxtOXdaVzV6ZEdGamF5NXpkbU11WTJ4MWMzUmxjaTVzYjJOaGJJSVNLaTV2Y0dWdWMzUmgKWTJzdFoyRnNaWEpoZ2h3cUxtOXdaVzV6ZEdGamF5MW5ZV3hsY21FdWIzQmxibk4wWVdOcmdpQXFMbTl3Wlc1egpkR0ZqYXkxbllXeGxjbUV1YjNCbGJuTjBZV05yTG5OMlk0SW9LaTV2Y0dWdWMzUmhZMnN0WjJGc1pYSmhMbTl3ClpXNXpkR0ZqYXk1emRtTXVZMngxYzNSbGNvSXVLaTV2Y0dWdWMzUmhZMnN0WjJGc1pYSmhMbTl3Wlc1emRHRmoKYXk1emRtTXVZMngxYzNSbGNpNXNiMk5oYkRBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCeEgrU21VcTlzd3J3egp1VlhZdlp3Qlh5M0xIOWNodXVpektsSmlPbzVHaXdJZ0paYkVtQTZ3NzJEek1KTXpGVy9sWUtQVVJTR1pmbjZkCk41Wk9FdVVzWmx3PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
87+
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQ2lLb0RJYmEzUkc2bCsKYzljamtuc0laSTVqSUI3d0lyRnZUN3VDc3VpS2FaMVNBQVBubVFwU1ZnbHQxM3Y0WWI2QmdaNWgrR1Z2WFRNWQoweUpxYXhMVGVna0VsQ3AxTllKaUdXbmg1anNFdmZDNFFjYnBzVk53KzBKcnlFQmh3a1FPdmZCNlhtWXJRcmNBCkpBaDExWWhWMTdiY1hKRTBWcTd1WUpXZmYvdlUwczVBaEswbG5CTitsdkxUYkZhM0lucUJoL0JFNWRrMUkxNDcKNUJpNTlXQ3RBLzdCTnVzRWYrVXNueFQ0MTcrUS9TMmJDRTJ0YUs3blErOG14Q2FXdmhSZmE0Mm4rd3E4azd1YQpQM0hFRFRKSVB2TWxHNWtXVUY1TmxzMVg4OXFjcHB4TzJlTW8vOUpWd0NJWDJFdXhtVFZ1d1I5QWJXS1A1SWM2CnFKNXVKd0lCQWdNQkFBRUNnZ0VBRThaVkQvRWluMURkT1UzM21uU0pTNUVLTlVJOGVPZEhkY2htUXQ0b01kWUcKZzNKUnNqM2M5QVN6MVB0NjR1TkxHaVhCTjR4L3YyQnJ2bHpqWWRDNWFmcFpVU3FlM0NOd25uVWZqcGJHOUV3VAowajdnZWxkNlVsa0JWTkt3THlaRHF2eUp4T2VhcVM4b2U2YnBOVEtiRThTMThyeUMrYnZtOXdDUXlQTmxYODA4Cm5Yd0VrNmJ2U0EwUEY0eGd5V0M1SmZoYUJvUkZZR1ovUnpUaTQrRmR2M0k0c0JnOW5DQzU2NzIvbE1YMmVGenAKcFM5Q1A5TkMrT2d0MjZMbFJoNkxCNkNieDVTekdVVTRKemx3SEFQRjl3dzZOR0ZqVS81cldmdlpYT05jUTZlNwpsYTFjWU83eThRVFdmamNHTTlsWXFpQ2hseWpsZWZBSW5FWGdzMkRWUlFLQmdRRFVDRG8yU2NmQk4yQ3pCV0pZCjBaVnRZY2JCaTNaTE1kekM0cWorTExKRnQ3Z0JvOC9GUUJsN1NLVHV2VzFCc1ZFY0pMVzUrYTB3VU5iVC9xckoKakwwU3R6b0gwNU9UK3lUTll5UjBXVnRFZG9PRmxQUi8yZDJSOXZETGpLRVhJZWlQTW1Pd1FpZWFzUFlRM29qdgpQa3I3Q2hCcFpFdXFxRkUyWmVwL0JXSjg2d0tCZ1FERHl4OUt3bU9oVU16akRIMHh4RHNLSjU1cWNGTjhlczZaClNWdkEyRERPQjkzU1dkSDB6RGRTc2E5RzYrUkpFb0hzTndjWHFvczNUQnFiT0tXWkJBZTlTQnJjdFhTTE5GdmUKSnY2OGlPS0k4UFZoQWdYbVpjcE5ZMVBHNUs1bFAxcEZNRC9ZMjNEZS9LOXVZQTNHaEZjbUlnL2orK1NwN0FoNQo2NFlzQXZMUnd3S0JnQTJKV080T1Y4cG1GcTVYTWFncCtUZzZmYzN0Y1dmcmp3U0NJL2ZXTXF0d3h6YVRscmdwCkYzZGZjK2dwLzhlcDRsdkJuRGg3VUNzOWZmbWEwSng5ZDdTeUxlcEIvN0g2M3FhZUpiMm4xc1BRTFNWaUZSbjAKZHNqUzB4eXJwYjBzVlFTUFd2M3R1MG1NOHFpeERGejV4Uit4ek1wdHRNYjRaL2JwR3NkeE9KQnhBb0dCQUtPegpraTlFaGw2Ykd5Ti9EckhzZXR5THNaVVc0NGJCZXptSXIxRjJzSitpemlHUS9jMnFiVnNUdXhRV0tPRzd1cXRRCmV2cWJtaGlhNWVnQUhkenBGTHQ2clJMNkdENUhnY1FsWUhrc0RoUW5PMUpuaVoxUVlDd0NMMHF0YXU2MllIaFcKMWhzdnBwaWFOdWVYSWcxb0d5R0QrenRJSWJDODYzMWNvZXJzY0M5WEFvR0FIL1ppclJSRlJmOWNWSWdRU3lMYQowSWNBWFNCUUdQaDNZcTlsd1JQSFlnRVl5dW9VeDJYSXg1amNRNlEyTFpoSitmT1VmOC9FYVMzVnNPYml1QXJ6CnpFTW5ZRVliRWY4ZW9wVzVKY3ppT0I3bW50ZjBkN3c4N1pkdlBPTHJySGU5Q1V0citEYjhwT0RIREJaM0lva1IKQncwVlM5bXUreEVxbUIwVmxUeW9raDg9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K # notsecret

0 commit comments

Comments
 (0)