From 3a246c7421b61b9f65c843ce39a1f0fe85461d8d Mon Sep 17 00:00:00 2001 From: tcfwbper Date: Thu, 16 Oct 2025 12:42:56 +0800 Subject: [PATCH 1/4] docs(README): remove the version badge --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 03517dc..938a643 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # devpod -[![Version](https://img.shields.io/badge/Version-1.0.0-blue)](#) [![License](https://img.shields.io/badge/License-Apache_2.0-blue)](#) [![Helm](https://img.shields.io/badge/Helm-0F1689?logo=helm&logoColor=fff)](#) [![Kubernetes](https://img.shields.io/badge/Kubernetes-326CE5?logo=kubernetes&logoColor=fff)](#) From 6a56f368d10b3190be716c35465f253fe607d336 Mon Sep 17 00:00:00 2001 From: tcfwbper Date: Thu, 16 Oct 2025 15:34:51 +0800 Subject: [PATCH 2/4] feat(scripts): pass arguments from Q/A --- scripts/deploy-devpod.sh | 96 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 89 insertions(+), 7 deletions(-) diff --git a/scripts/deploy-devpod.sh b/scripts/deploy-devpod.sh index 14de807..0237cc7 100644 --- a/scripts/deploy-devpod.sh +++ b/scripts/deploy-devpod.sh @@ -16,14 +16,96 @@ cd "$(dirname "$(realpath "$0")")/.." -CHART_VERSION="1.0.0" -RELEASE=my-example-devpod +## env: color +RED='\033[0;31m' +NC='\033[0m' # (reset) + +# username +echo -e "Fill out your ${RED}devpod username${NC}." +read -p "Username: " USERNAME + +# password +while true; do + echo -e "Fill out your ${RED}devpod password${NC}." + read -sp "Password: " PASSWORD + echo + read -sp "Retype password: " PASSWORD_CHECK + echo + if [[ $PASSWORD == $PASSWORD_CHECK ]]; then + break + fi + echo "Password mismatch." +done + +# nodeport +echo +while true; do + echo -e "Fill out your ${RED}devpod ssh nodeport${NC}. Please make sure the port is available." + read -p "Nodeport (30000-32767): " SSH_NODEPORT + if [[ ! $SSH_NODEPORT =~ ^[0-9]+$ ]]; then + echo "This value must be an integer." + continue + fi + if ! [[ "$SSH_NODEPORT" -ge 30000 && "$SSH_NODEPORT" -le 32767 ]]; then + echo "The target port ${SSH_NODEPORT} is out of range (30000-32767)." + continue + fi + break +done + +# storageclass +echo -e "Fill out a ${RED}storageclass${NC} to store your data. Please make sure the storageclass exists in your cluster." +read -p "Storageclass (local-path): " STORAGE_CLASS +if [[ -z $STORAGE_CLASS ]]; then + STORAGE_CLASS="local-path" +fi + +# docker +echo +while true; do + read -p "Enable docker? ([y]/n): " ENABLE_DOCKER + if [[ -z $ENABLE_DOCKER ]]; then + ENABLE_DOCKER="yes" + fi + ENABLE_DOCKER=$(echo "$ENABLE_DOCKER" | tr '[:upper:]' '[:lower:]') + if [[ $ENABLE_DOCKER == "yes" || $ENABLE_DOCKER == "y" || $ENABLE_DOCKER == "no" || $ENABLE_DOCKER == "n" ]]; then + break + else + echo -e "Your answer should be one of ${RED}yes${NC}/${RED}y${NC}/${RED}no${NC}/${RED}n${NC}." + fi +done +if [[ $ENABLE_DOCKER == "yes" || $ENABLE_DOCKER == "y" ]]; then + while true; do + echo "Select Docker mode:" + echo " 1) Use dind (default)" + echo " 2) Use host docker socket" + read -p "Docker mode (1-2): " DOCKER_MODE + if [[ -z $DOCKER_MODE ]]; then + DOCKER_MODE=1 + fi + if [[ $DOCKER_MODE == "1" || $DOCKER_MODE == "2" ]]; then + break + else + echo -e "Please enter ${RED}1${NC} or ${RED}2${NC}." + fi + done + if [[ $DOCKER_MODE == "1" ]]; then + echo "Using host docker socket." + USE_HOST_SOCKET=true + else + echo "Using Docker-in-Docker." + USE_HOST_SOCKET=false + fi +fi +if [[ -z $USE_HOST_SOCKET ]]; then + USE_HOST_SOCKET=false +fi + +# other arguments +CHART_VERSION="1.1.0" +RELEASE="$USERNAME-devpod" NAMESPACE=devpod -STORAGE_CLASS="local-path" -USERNAME="user" -PASSWORD="password" -SERVICE_TYPE="NodePort" # ClusterIP, LoadBalancer, NodePort -SSH_NODEPORT=30000 +SERVICE_TYPE="NodePort" helm upgrade $RELEASE oci://ghcr.io/tcfwbper/helm/devpod --version $CHART_VERSION -n $NAMESPACE --install --create-namespace \ --set global.storageClass=$STORAGE_CLASS \ From 886250c347d600a59764d907b33f905a01d3cd42 Mon Sep 17 00:00:00 2001 From: tcfwbper Date: Thu, 16 Oct 2025 15:49:40 +0800 Subject: [PATCH 3/4] fix(scripts): deploy devpod --- scripts/deploy-devpod.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/deploy-devpod.sh b/scripts/deploy-devpod.sh index 0237cc7..e0dd726 100644 --- a/scripts/deploy-devpod.sh +++ b/scripts/deploy-devpod.sh @@ -112,4 +112,6 @@ helm upgrade $RELEASE oci://ghcr.io/tcfwbper/helm/devpod --version $CHART_VERSIO --set auth.username=$USERNAME \ --set auth.password=$PASSWORD \ --set service.type=$SERVICE_TYPE \ - --set service.nodePorts.ssh=$SSH_NODEPORT + --set service.nodePorts.ssh=$SSH_NODEPORT \ + --set docker.enabled=$ENABLE_DOCKER \ + --set docker.useHostSocket=$USE_HOST_SOCKET From f6a6854b792233454704958dd0a4c4c3036ceee7 Mon Sep 17 00:00:00 2001 From: tcfwbper Date: Thu, 16 Oct 2025 16:13:31 +0800 Subject: [PATCH 4/4] fix(scripts): deploy devpod --- scripts/deploy-devpod.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) mode change 100644 => 100755 scripts/deploy-devpod.sh diff --git a/scripts/deploy-devpod.sh b/scripts/deploy-devpod.sh old mode 100644 new mode 100755 index e0dd726..20e83bd --- a/scripts/deploy-devpod.sh +++ b/scripts/deploy-devpod.sh @@ -75,6 +75,11 @@ while true; do fi done if [[ $ENABLE_DOCKER == "yes" || $ENABLE_DOCKER == "y" ]]; then + ENABLE_DOCKER="true" +else + ENABLE_DOCKER="false" +fi +if [[ $ENABLE_DOCKER == "true" ]]; then while true; do echo "Select Docker mode:" echo " 1) Use dind (default)" @@ -90,11 +95,11 @@ if [[ $ENABLE_DOCKER == "yes" || $ENABLE_DOCKER == "y" ]]; then fi done if [[ $DOCKER_MODE == "1" ]]; then - echo "Using host docker socket." - USE_HOST_SOCKET=true - else echo "Using Docker-in-Docker." USE_HOST_SOCKET=false + else + echo "Using host docker socket." + USE_HOST_SOCKET=true fi fi if [[ -z $USE_HOST_SOCKET ]]; then