diff --git a/.github/workflows/cloud-release.yml b/.github/workflows/cloud-release.yml index a273309ba68..fae28f00e44 100644 --- a/.github/workflows/cloud-release.yml +++ b/.github/workflows/cloud-release.yml @@ -99,7 +99,7 @@ jobs: sudo mv /tmp/sealos /usr/bin/sealos sudo sealos version - name: Build - run: export CLOUD_VERSION=${{ github.event.release.tag_name }} && export ARCH=arm64 && bash ./scripts/cloud/build-offline-tar.sh + run: export CLOUD_VERSION=${{ github.event.release.tag_name }} && VERSION=${{ github.event.release.tag_name }} && export ARCH=arm64 && bash ./scripts/cloud/build-offline-tar.sh - name: Setup ossutil uses: manyuanrong/setup-ossutil@v2.0 with: @@ -111,4 +111,4 @@ jobs: - name: Upload run: | ossutil cp ./sealos-cloud.tar.gz oss://${{ secrets.OSS_BUCKET }}/cloud/sealos-cloud-${{ github.event.release.tag_name }}-arm64.tar.gz - ossutil cp ./sealos-cloud.tar.gz.md5 oss://${{ secrets.OSS_BUCKET }}/cloud/sealos-cloud-${{ github.event.release.tag_name }}-arm64.tar.gz.md5 \ No newline at end of file + ossutil cp ./sealos-cloud.tar.gz.md5 oss://${{ secrets.OSS_BUCKET }}/cloud/sealos-cloud-${{ github.event.release.tag_name }}-arm64.tar.gz.md5 diff --git a/deploy/cloud/scripts/init.sh b/deploy/cloud/scripts/init.sh index a46e384c9d8..e52a10f1f23 100644 --- a/deploy/cloud/scripts/init.sh +++ b/deploy/cloud/scripts/init.sh @@ -10,9 +10,12 @@ cockroachdbGlobalUri="" localRegionUID="" tlsCrtPlaceholder="" -tlsKeyPlaceholder="" acmednsSecretPlaceholder="" + saltKey="" +jwtInternal="" +jwtRegional="" +jwtGlobal="" function prepare { # source .env @@ -36,6 +39,9 @@ function prepare { # gen regionUID if not set or not found in secret gen_regionUID + # gen jwt tokens + gen_jwt_tokens + # create tls secret create_tls_secret } @@ -132,6 +138,7 @@ function gen_cockroachdbUri() { cockroachdbGlobalUri="$cockroachdbUri/global" } +# TODO: use a better way to check saltKey function gen_saltKey() { password_salt=$(kubectl get configmap desktop-frontend-config -n sealos -o jsonpath='{.data.config\.yaml}' | grep "salt:" | awk '{print $2}' 2>/dev/null | tr -d '"' || true) if [[ -z "$password_salt" ]]; then @@ -141,6 +148,28 @@ function gen_saltKey() { fi } +# TODO: use a better way to check jwt tokens +function gen_jwt_tokens() { + jwt_internal=$(kubectl get configmap desktop-frontend-config -n sealos -o jsonpath='{.data.config\.yaml}' | grep "internal:" | awk '{print $2}' 2>/dev/null | tr -d '"' || true) + if [[ -z "$jwt_internal" ]]; then + jwtInternal=$(tr -dc 'a-z0-9' /dev/null | tr -d '"' || true) + if [[ -z "$jwt_regional" ]]; then + jwtRegional=$(tr -dc 'a-z0-9' /dev/null | tr -d '"' || true) + if [[ -z "$jwt_global" ]]; then + jwtGlobal=$(tr -dc 'a-z0-9' /dev/null | tr -d '"' || true) if [[ -z "$uid" ]]; then @@ -176,7 +205,10 @@ function sealos_run_desktop { --env regionUID="$localRegionUID" \ --env databaseMongodbURI="${mongodbUri}/sealos-auth?authSource=admin" \ --env databaseLocalCockroachdbURI="$cockroachdbLocalUri" \ - --env databaseGlobalCockroachdbURI="$cockroachdbGlobalUri" + --env databaseGlobalCockroachdbURI="$cockroachdbGlobalUri" \ + --env jwtInternal="$jwtInternal" \ + --env jwtRegional="$jwtRegional" \ + --env jwtGlobal="$jwtGlobal" } function sealos_run_controller { diff --git a/frontend/desktop/deploy/Kubefile b/frontend/desktop/deploy/Kubefile index cb8685bde5f..fe24acf60e3 100644 --- a/frontend/desktop/deploy/Kubefile +++ b/frontend/desktop/deploy/Kubefile @@ -13,5 +13,8 @@ ENV databaseMongodbURI="" ENV databaseGlobalCockroachdbURI="" ENV databaseLocalCockroachdbURI="" ENV passwordSalt="randomSalt" +ENV jwtInternal="" +ENV jwtRegional="" +ENV jwtGlobal="" CMD ["bash scripts/init.sh"] diff --git a/frontend/desktop/deploy/manifests/configmap.yaml.tmpl b/frontend/desktop/deploy/manifests/configmap.yaml.tmpl index 77c3634b860..ac9e9c33a5f 100644 --- a/frontend/desktop/deploy/manifests/configmap.yaml.tmpl +++ b/frontend/desktop/deploy/manifests/configmap.yaml.tmpl @@ -43,9 +43,9 @@ data: invite: enabled: false jwt: - internal: "" - regional: "" - global: "" + internal: "{{ .jwtInternal }}" + regional: "{{ .jwtRegional }}" + global: "{{ .jwtGlobal }}" idp: password: enabled: true diff --git a/frontend/desktop/deploy/scripts/init.sh b/frontend/desktop/deploy/scripts/init.sh index b6ebb7a1476..2c2113eccfe 100644 --- a/frontend/desktop/deploy/scripts/init.sh +++ b/frontend/desktop/deploy/scripts/init.sh @@ -6,8 +6,5 @@ if [[ -n "$cm_exists" ]]; then echo "desktop-frontend-config already exists, skip create desktop config" else echo "create desktop config" - sed -i -e "s;;$(tr -cd 'a-z0-9' ;$(tr -cd 'a-z0-9' ;$(tr -cd 'a-z0-9'