From b45bc6bf62e95aebe9ed6acc3abedf2bcb1aba18 Mon Sep 17 00:00:00 2001 From: Haisam Ido Date: Fri, 9 May 2025 15:43:42 -0400 Subject: [PATCH 1/2] added script start 42 in a kubernetes cluster --- containers/kubernetes/kubernetes.sh | 67 +++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 containers/kubernetes/kubernetes.sh diff --git a/containers/kubernetes/kubernetes.sh b/containers/kubernetes/kubernetes.sh new file mode 100755 index 00000000..143fac02 --- /dev/null +++ b/containers/kubernetes/kubernetes.sh @@ -0,0 +1,67 @@ +OU=myorg +ENVIRO=dev +CONTEXT=missions +REALM=${OU}-${ENVIRO}-${CONTEXT} + +MISSION=m01 +SPACECRAFT=sc01 + +# resource names, to be used with context, cluster, namespace, pods, and services +RESOURCE_NAME=${REALM}-${MISSION} + +# application specifics +APP=42 +APP_INTERNAL_PORT=80 +APP_EXTERNAL_PORT=30080 +IMAGE_URI=ghcr.io/ericstoneking/42:latest + +# contexts/clusters +K8S_CONTEXT=${RESOURCE_NAME} +K8S_CLUSTER=${K8S_CONTEXT} + +# +KIND_EXPERIMENTAL_PROVIDER=podman kind delete cluster --name ${K8S_CLUSTER} || true +KIND_EXPERIMENTAL_PROVIDER=podman kind create cluster --name ${K8S_CLUSTER} + +# add the prefix since podman adds kind- to contexts/clusters +K8S_CONTEXT_PRIFIX=kind- +K8S_CONTEXT=${K8S_CONTEXT_PRIFIX}${K8S_CONTEXT} + +# set and use context +kubectl config set-context ${K8S_CONTEXT} +kubectl config use-context ${K8S_CONTEXT} + +# namespace +K8S_NAMESPACE=${RESOURCE_NAME}-${SPACECRAFT} +K8S_POD=${RESOURCE_NAME}-${SPACECRAFT}-${APP} + +kubectl delete namespace ${K8S_NAMESPACE} --context ${K8S_CONTEXT} || true +kubectl create namespace ${K8S_NAMESPACE} --context ${K8S_CONTEXT} + +# deployment +K8S_DEPLOYMENT=${K8S_NAMESPACE} + +kubectl delete deployment ${K8S_DEPLOYMENT} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} || true +kubectl create deployment ${K8S_DEPLOYMENT} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} \ + --port=${APP_INTERNAL_PORT} \ + --image=${IMAGE_URI} \ + --replicas=1 + +echo "Sleeping for 120 seconds to ensure that pod(s) are up and running" +sleep 120 + +kubectl scale deployment ${K8S_DEPLOYMENT} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} --replicas=1 + +# service +K8S_SERVICE=${K8S_DEPLOYMENT}-service + +kubectl delete service ${K8S_SERVICE} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} || true +kubectl expose deployment ${K8S_DEPLOYMENT} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} \ + --name=${K8S_SERVICE} \ + --port=${APP_INTERNAL_PORT} \ + --target-port=${APP_INTERNAL_PORT} \ + --protocol=TCP + +# port-forwarding +kubectl port-forward service/${K8S_SERVICE} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} \ + ${APP_EXTERNAL_PORT}:${APP_INTERNAL_PORT} & From 9da8bf7ea2269a6a7f6d482a660ec1e6e7df69ed Mon Sep 17 00:00:00 2001 From: Haisam Ido Date: Fri, 9 May 2025 19:30:30 -0400 Subject: [PATCH 2/2] fixed pod name (?} --- containers/kubernetes/kubernetes.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/containers/kubernetes/kubernetes.sh b/containers/kubernetes/kubernetes.sh index 143fac02..781ac48a 100755 --- a/containers/kubernetes/kubernetes.sh +++ b/containers/kubernetes/kubernetes.sh @@ -24,8 +24,8 @@ KIND_EXPERIMENTAL_PROVIDER=podman kind delete cluster --name ${K8S_CLUSTER} || t KIND_EXPERIMENTAL_PROVIDER=podman kind create cluster --name ${K8S_CLUSTER} # add the prefix since podman adds kind- to contexts/clusters -K8S_CONTEXT_PRIFIX=kind- -K8S_CONTEXT=${K8S_CONTEXT_PRIFIX}${K8S_CONTEXT} +K8S_CONTEXT_PREFIX=kind- +K8S_CONTEXT=${K8S_CONTEXT_PREFIX}${K8S_CONTEXT} # set and use context kubectl config set-context ${K8S_CONTEXT} @@ -39,7 +39,7 @@ kubectl delete namespace ${K8S_NAMESPACE} --context ${K8S_CONTEXT} || true kubectl create namespace ${K8S_NAMESPACE} --context ${K8S_CONTEXT} # deployment -K8S_DEPLOYMENT=${K8S_NAMESPACE} +K8S_DEPLOYMENT=${K8S_POD} kubectl delete deployment ${K8S_DEPLOYMENT} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} || true kubectl create deployment ${K8S_DEPLOYMENT} --context ${K8S_CONTEXT} --namespace ${K8S_NAMESPACE} \