File tree Expand file tree Collapse file tree 6 files changed +48
-8
lines changed
public/architectures/setup-multi-cluster/ra-09-setup-externaldns Expand file tree Collapse file tree 6 files changed +48
-8
lines changed Original file line number Diff line number Diff line change 12
12
# ${K8S_CLUSTER_2_CONTEXT_NAME}
13
13
# ${MDB_GKE_PROJECT}
14
14
15
- # Example K8S_CLUSTER_SUFFIX when running in evg: "-68c1dc3ffdfb5800075ecee0-26080"
16
15
suffix_short=" ${K8S_CLUSTER_SUFFIX} "
17
- # Ensure suffix_short is no longer than 19 characters to make DNS_SA_NAME fit max 30 characters
16
+ # Ensure suffix_short is no longer than 19 characters to make GKE identifiers fit under 30 characters
18
17
if [[ -n " ${suffix_short} " && ${# suffix_short} -gt 19 ]]; then
19
18
# Calculate positions for cutting from the middle
20
19
prefix_len=$(( (19 - 1 ) / 2 )) # -1 for the 'x' replacement
@@ -27,4 +26,4 @@ export DNS_SA_NAME="ext-dns-sa${suffix_short}"
27
26
export DNS_SA_EMAIL=" ${DNS_SA_NAME} @${MDB_GKE_PROJECT} .iam.gserviceaccount.com"
28
27
29
28
export CUSTOM_DOMAIN=" mongodb.custom"
30
- export DNS_ZONE=" mongodb"
29
+ export DNS_ZONE=" mongodb${suffix_short} "
Original file line number Diff line number Diff line change
1
+ # Function to normalize identifier to contain only alphanumeric characters.
2
+ # It's also cutting the string in the middle if exceeds max_len.
3
+ # Example:
4
+ # normalize_identifier "mongodb_kubernetes_1.4.0_68c913f767d52d00076a2698" 25 -> mongodb-kubex2d00076a2698
5
+ normalize_identifier() {
6
+ local str=$1
7
+ local max_len=$(($2 - 1))
8
+
9
+ # Convert to lowercase and replace invalid characters with hyphens
10
+ str=$(echo -n "${str}" | tr '[:upper:]_' '[:lower:]-' | sed 's/[^a-z0-9-]/-/g')
11
+ # Ensure it ends with alphanumeric
12
+
13
+ # Truncate to ${max_len} chars by cutting from middle
14
+ if [[ ${#str} -gt ${max_len} ]]; then
15
+ half_idx=$((max_len / 2))
16
+ local start_part="${str:0:${half_idx}}"
17
+ local end_part="${str: -${half_idx}}"
18
+ str="${start_part}x${end_part}"
19
+ fi
20
+
21
+ [[ ${str} =~ -$ ]] && str="${str}0"
22
+ echo -n "${str}"
23
+ }
24
+
25
+ # for prerelease tag builds we have:
26
+ # version_id=mongodb_kubernetes_1.4.0_68c913f767d52d00076a2698-9041 (len=54)
27
+ # k8s cluster name prefix: k8s-mdb-0- (len=10)
28
+ # random suffix: -1234 (len=5)
29
+ # K8S_CLUSTER_PREFIX must be shorter than 25 to make the final
30
+ # gke identifier shorter than 40 characters.
31
+ create_k8s_cluster_suffix() {
32
+ echo -n "$(normalize_identifier "${K8S_CLUSTER_SUFFIX:-"-${version_id}-${RANDOM}"}" 25)"
33
+ }
Original file line number Diff line number Diff line change @@ -8,9 +8,12 @@ script_name=$(readlink -f "${BASH_SOURCE[0]}")
8
8
script_dir=$( dirname " ${script_name} " )
9
9
10
10
source " ${script_dir} /root-context"
11
+ source " ${script_dir} /funcs/gke"
12
+ K8S_CLUSTER_SUFFIX=" $( create_k8s_cluster_suffix) "
13
+ export K8S_CLUSTER_SUFFIX
11
14
12
15
export MDB_GKE_PROJECT=" scratch-kubernetes-team"
13
- export K8S_CLUSTER_SUFFIX= " ${K8S_CLUSTER_SUFFIX :- " - ${version_id} - ${RANDOM} " } "
16
+
14
17
export CODE_SNIPPETS_COMMIT_OUTPUT=true
15
18
16
19
# we reset evg host to use a default ~/.kube/config for GKE instead of the one from evg host
Original file line number Diff line number Diff line change @@ -10,10 +10,13 @@ script_dir=$(dirname "${script_name}")
10
10
source " ${script_dir} /root-context"
11
11
source " ${script_dir} /variables/om80"
12
12
13
+ source " ${script_dir} /funcs/gke"
14
+ K8S_CLUSTER_SUFFIX=" $( create_k8s_cluster_suffix) "
15
+ export K8S_CLUSTER_SUFFIX
16
+
13
17
export KUBE_ENVIRONMENT_NAME=multi
14
18
15
19
export MDB_GKE_PROJECT=" scratch-kubernetes-team"
16
- export K8S_CLUSTER_SUFFIX=" ${K8S_CLUSTER_SUFFIX:- " -${version_id} -${RANDOM} " } "
17
20
18
21
# we reset evg host to use a default ~/.kube/config for GKE instead of the one from evg host
19
22
export EVG_HOST_NAME=" "
Original file line number Diff line number Diff line change @@ -9,11 +9,13 @@ script_dir=$(dirname "${script_name}")
9
9
10
10
source " ${script_dir} /root-context"
11
11
12
+ source " ${script_dir} /funcs/gke"
13
+ K8S_CLUSTER_SUFFIX=" $( create_k8s_cluster_suffix) "
14
+ export K8S_CLUSTER_SUFFIX
15
+
12
16
export KUBE_ENVIRONMENT_NAME=multi
13
17
14
18
export MDB_GKE_PROJECT=" scratch-kubernetes-team"
15
- # shellcheck disable=SC2154
16
- export K8S_CLUSTER_SUFFIX=" ${K8S_CLUSTER_SUFFIX:- " -${version_id} -${RANDOM} " } "
17
19
18
20
# we reset evg host to use a default ~/.kube/config for GKE instead of the one from evg host
19
21
export EVG_HOST_NAME=" "
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ set -Eeou pipefail
4
4
source scripts/dev/set_env_context.sh
5
5
6
6
curl -s --retry 3 -LO " https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86_64.tar.gz"
7
- tar xvf google-cloud-cli-linux-x86_64.tar.gz -C " ${workdir} "
7
+ tar xf google-cloud-cli-linux-x86_64.tar.gz -C " ${workdir} "
8
8
" ${workdir} " /google-cloud-sdk/install.sh --quiet
9
9
source " ${workdir} /google-cloud-sdk/path.bash.inc"
10
10
You can’t perform that action at this time.
0 commit comments