From 9aa2fdc6ace783c8b329bf6f9f9504817773ca5b Mon Sep 17 00:00:00 2001 From: CH3CHO Date: Mon, 12 May 2025 21:55:45 +0800 Subject: [PATCH 1/2] feat: Add Nacos 3.x support --- README.md | 8 +- .../config/configmaps/higress-config.yaml | 10 ++ bin/configure.sh | 28 ++++- compose/docker-compose.yml | 17 ++- compose/env/nacos.env | 13 +- compose/scripts/init.sh | 111 ++++++++++++++---- compose/scripts/prepare.sh | 14 ++- src/get-higress.sh | 7 +- 8 files changed, 175 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 5405820..3e317e3 100644 --- a/README.md +++ b/README.md @@ -75,9 +75,13 @@ docker compose 用于加密敏感配置数据的密钥。长度必须为 32 个字符。若未设置,Higress 将自动生成一个随机的密钥。若需集群部署,此项必须设置。 - * --nacos-port=NACOS-PORT + * --nacos-service-port=NACOS-SERVICE-PORT - 内置 NACOS 服务在服务器本地监听的端口。默认值为 8848。 + 内置 Nacos API 在服务器本地监听的端口。默认值为 8848。 + + * --nacos-console-port=NACOS-CONSOLE-PORT + + 内置 Nacos Console 在服务器本地监听的端口。默认值为 8888。 * --gateway-http-port=GATEAWY-HTTP-PORT diff --git a/all-in-one/config/configmaps/higress-config.yaml b/all-in-one/config/configmaps/higress-config.yaml index 4c0070e..2a9c1b1 100644 --- a/all-in-one/config/configmaps/higress-config.yaml +++ b/all-in-one/config/configmaps/higress-config.yaml @@ -7,6 +7,16 @@ metadata: resourceVersion: "1" data: higress: |- + mcpServer: + enable: false + sse_path_suffix: /sse + redis: + address: redis-address:6379 + username: "" + password: "" + db: 0 + match_list: [] + servers: [] downstream: connectionBufferLimits: 32768 http2: diff --git a/bin/configure.sh b/bin/configure.sh index 1f05f99..1d835d0 100755 --- a/bin/configure.sh +++ b/bin/configure.sh @@ -16,6 +16,7 @@ BUILTIN_NACOS_SERVER_URL=nacos://nacos:8848 DEFAULT_NACOS_NS=higress-system +DEFAULT_NACOS_CONSOLE_PORT=8888 DEFAULT_NACOS_HTTP_PORT=8848 DEFAULT_GATEWAY_HTTP_PORT=80 DEFAULT_GATEWAY_HTTPS_PORT=443 @@ -135,6 +136,16 @@ parseArgs() { MODE="params" shift ;; + --nacos-console-port=*) + NACOS_CONSOLE_PORT="${1#*=}" + MODE="params" + shift + ;; + --nacos-service-port=*) + NACOS_CONSOLE_PORT="${1#*=}" + MODE="params" + shift + ;; --nacos-port=*) NACOS_HTTP_PORT="${1#*=}" MODE="params" @@ -225,6 +236,7 @@ resetEnv() { # Not to reset the encryption key to avoid accidental key losts. # NACOS_DATA_ENC_KEY="" + NACOS_CONSOLE_PORT=$DEFAULT_NACOS_CONSOLE_PORT NACOS_HTTP_PORT=$DEFAULT_NACOS_HTTP_PORT NACOS_GRPC_PORT=$(($DEFAULT_NACOS_HTTP_PORT + 1000)) GATEWAY_HTTP_PORT=$DEFAULT_GATEWAY_HTTP_PORT @@ -329,10 +341,12 @@ configureFileStorageByArgs() { configurePortsByArgs() { if [ "$CONFIG_STORAGE" == "nacos" ]; then if [ "$USE_BUILTIN_NACOS" == "Y" ]; then - validatePort $NACOS_HTTP_PORT "Invalid --nacos-port value." 1 + validatePort $NACOS_CONSOLE_PORT "Invalid --nacos-console-port value." 1 + validatePort $NACOS_HTTP_PORT "Invalid --nacos-port/--nacos-service-port value." 1 NACOS_GRPC_PORT=$(($NACOS_HTTP_PORT + 1000)) validatePort $NACOS_GRPC_PORT "--nacos-port value must be less than 64536." 1 else + NACOS_CONSOLE_PORT=$DEFAULT_NACOS_CONSOLE_PORT NACOS_HTTP_PORT=$DEFAULT_NACOS_HTTP_PORT NACOS_GRPC_PORT=$(($DEFAULT_NACOS_HTTP_PORT + 1000)) fi @@ -495,13 +509,15 @@ configurePorts() { if [ "$USE_BUILTIN_NACOS" == "Y" ]; then while true; do - readPortWithDefault "Please input the local HTTP port to access the built-in Nacos [${DEFAULT_NACOS_HTTP_PORT}]: " ${DEFAULT_NACOS_HTTP_PORT} + readPortWithDefault "Please input the local HTTP port to access the built-in Nacos service [${DEFAULT_NACOS_HTTP_PORT}]: " ${DEFAULT_NACOS_HTTP_PORT} NACOS_HTTP_PORT=$input NACOS_GRPC_PORT=$(($NACOS_HTTP_PORT + 1000)) validatePort $NACOS_GRPC_PORT "The HTTP port of Nacos must be less than 64536." 0 if [ $? -eq 0 ]; then break fi + readPortWithDefault "Please input the local HTTP port to access the built-in Nacos console [${DEFAULT_NACOS_CONSOLE_PORT}]: " ${DEFAULT_NACOS_CONSOLE_PORT} + NACOS_CONSOLE_PORT=$input done fi readPortWithDefault "Please input the local HTTP port to access Higress Gateway [${DEFAULT_GATEWAY_HTTP_PORT}]: " ${DEFAULT_GATEWAY_HTTP_PORT} @@ -535,9 +551,12 @@ outputUsage() { -k, --data-enc-key=KEY the key used to encrypt sensitive configurations MUST contain 32 characters A random key will be generated if unspecified - --nacos-port=NACOS-PORT - the HTTP port used to access the built-in Nacos + --nacos-service-port=NACOS-SERVICE-PORT + the HTTP port used to access the built-in Nacos service default to 8848 if unspecified + --nacos-console-port=NACOS-CONSOLE-PORT + the HTTP port used to access the built-in Nacos console + default to 8888 if unspecified --gateway-http-port=GATEWAY-HTTP-PORT the HTTP port to be listened by the gateway default to 80 if unspecified @@ -614,6 +633,7 @@ PROMETHEUS_TAG='${PROMETHEUS_TAG}' PROMTAIL_TAG='${PROMTAIL_TAG}' LOKI_TAG='${LOKI_TAG}' GRAFANA_TAG='${GRAFANA_TAG}' +NACOS_CONSOLE_PORT='${NACOS_CONSOLE_PORT}' NACOS_HTTP_PORT='${NACOS_HTTP_PORT}' NACOS_GRPC_PORT='${NACOS_GRPC_PORT}' GATEWAY_HTTP_PORT='${GATEWAY_HTTP_PORT}' diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index 6010e82..039695c 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -6,7 +6,8 @@ networks: services: nacos: - image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/nacos-server:${NACOS_SERVER_TAG:-v2.5.1} + hostname: higress-nacos + image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/nacos-server:${NACOS_SERVER_TAG} profiles: [ "nacos" ] env_file: - ./env/nacos.env @@ -22,11 +23,13 @@ services: volumes: - ./volumes/nacos:/home/nacos/data ports: + - "${NACOS_CONSOLE_PORT:-8888}:8080/tcp" - "${NACOS_HTTP_PORT:-8848}:8848/tcp" - "${NACOS_GRPC_PORT:-9848}:9848/tcp" restart: always initializer: + hostname: higress-initializer image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/runner:${HIGRESS_RUNNER_TAG} command: - ./init.sh @@ -41,6 +44,7 @@ services: - ${FILE_ROOT_DIR:-./volumes/dummy}:/opt/data/:rw precheck: + hostname: higress-precheck image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/runner:${HIGRESS_RUNNER_TAG} command: - ./precheck.sh @@ -55,6 +59,7 @@ services: - ${FILE_ROOT_DIR:-./volumes/dummy}:/opt/data/:ro apiserver: + hostname: higress-apiserver image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/api-server:${HIGRESS_API_SERVER_TAG} command: - --secure-port @@ -97,6 +102,7 @@ services: - ${FILE_ROOT_DIR:-./volumes/dummy}:/opt/data/:rw prepare: + hostname: higress-prepare image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/runner:${HIGRESS_RUNNER_TAG} command: - ./prepare.sh @@ -114,6 +120,7 @@ services: - ${FILE_ROOT_DIR:-./volumes/dummy}:/opt/data/:ro controller: + hostname: higress-controller image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/higress:${HIGRESS_CONTROLLER_TAG} command: - serve @@ -141,6 +148,7 @@ services: - ./volumes/controller/log/nacos:/var/log/nacos:rw pilot: + hostname: higress-pilot image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/pilot:${HIGRESS_PILOT_TAG} command: - discovery @@ -173,6 +181,7 @@ services: - ./volumes/pilot/config:/etc/istio/config:ro gateway: + hostname: higress-gateway image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/gateway:${HIGRESS_GATEWAY_TAG} command: - proxy @@ -216,6 +225,7 @@ services: - ./volumes/gateway/log:/var/log/proxy:rw console: + hostname: higress-console image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/console:${HIGRESS_CONSOLE_TAG} env_file: - ./env/console.env @@ -244,6 +254,7 @@ services: - ./volumes/kube:/home/higress/.kube:ro prometheus: + hostname: higress-prometheus image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/prometheus:${PROMETHEUS_TAG} command: - "--config.file=/etc/prometheus/prometheus.yaml" @@ -276,6 +287,7 @@ services: - ./volumes/prometheus/data:/prometheus:rw promtail: + hostname: higress-promtail image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/promtail:${PROMTAIL_TAG} command: - -config.file=/etc/promtail/promtail.yaml @@ -310,6 +322,7 @@ services: - ./volumes/gateway/log:/var/log/proxy:ro loki: + hostname: higress-loki image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/loki:${LOKI_TAG} command: - -config.file=/etc/loki/config/config.yaml @@ -340,6 +353,7 @@ services: - ./volumes/loki/data:/var/loki:rw grafana: + hostname: higress-grafana image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/grafana:${GRAFANA_TAG} depends_on: prometheus: @@ -369,6 +383,7 @@ services: - ./volumes/grafana/lib:/var/lib/grafana:rw postcheck: + hostname: higress-postcheck image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/runner:${HIGRESS_RUNNER_TAG} command: - ./postcheck.sh diff --git a/compose/env/nacos.env b/compose/env/nacos.env index b4deec1..b0dc5aa 100644 --- a/compose/env/nacos.env +++ b/compose/env/nacos.env @@ -1,8 +1,17 @@ MODE=standalone PREFER_HOST_MODE=hostname -NACOS_AUTH_ENABLE=false # Enlarge DB connection timeout to give the embedded storage enough time to finish initialization JAVA_OPT=-Ddb.pool.config.connectionTimeout=60000 NACOS_AUTH_IDENTITY_KEY=serveridentity NACOS_AUTH_IDENTITY_VALUE=security -NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 \ No newline at end of file +NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789 +# Disable auth in Nacos 2.x +NACOS_AUTH_ENABLE=false +# Disable auth in Nacos 3.x +NACOS_CORE_AUTH_ENABLED=false +NACOS_CORE_AUTH_ADMIN_ENABLED=false +NACOS_CORE_AUTH_CONSOLE_ENABLED=false +# Enable API compatibility in Nacos 3.x +NACOS_CORE_API_COMPATIBILITY_CONSOLE_ENABLED=true +NACOS_CORE_API_COMPATIBILITY_CORE_ENABLED=true +NACOS_CORE_API_COMPATIBILITY_ADMIN_ENABLED=true \ No newline at end of file diff --git a/compose/scripts/init.sh b/compose/scripts/init.sh index 2455333..24a2f14 100755 --- a/compose/scripts/init.sh +++ b/compose/scripts/init.sh @@ -14,7 +14,7 @@ now() { } base64UrlEncode() { - openssl enc -base64 -A | tr '+/' '-_' | tr -d '='; + openssl enc -base64 -A | tr '+/' '-_' | tr -d '=' } checkExitCode() { @@ -35,53 +35,101 @@ initializeConfigStorage() { ;; file) initializeConfigDir - ;; - *) - printf "Unsupported storage type: %s\n" "$CONFIG_STORAGE" - ;; + ;; + *) + printf "Unsupported storage type: %s\n" "$CONFIG_STORAGE" + ;; esac } initializeNacos() { nacosReady=false + nacosApiVersion=1 + maxWaitTime=180 - for (( i = 0; i < $maxWaitTime; i++ )) - do - statusCode=$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/") - if [ "$statusCode" -eq "200" ]; then + for ((i = 0; i < $maxWaitTime; i++)); do + # We always check the readiness with v1 API. And it will return a 410 if it's actually v3. + statusCode=$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v2/core/cluster/node/self") + if [ "$statusCode" -eq "410" -a "$nacosApiVersion" -eq "1" ]; then nacosReady=true - echo "Nacos is ready." + nacosApiVersion=3 + break + elif [ "$statusCode" -eq "200" ]; then + nacosReady=true + # The previous request may return 200 in Nacos 3.x if the cluster has nacos.core.api.compatibility.admin.enabled set to true. + # So we need to double check here with a v3 API. + statusCode=$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v3/admin/core/state") + if [ "$statusCode" -eq "200" ]; then + nacosApiVersion=3 + fi break fi + if [ $(($i % 5)) == 0 -a "$COMPOSE_PROFILES" != "nacos" ]; then + # No status echo for built-in nacos + echo "$healthCheckUrl returns $statusCode" + fi echo "Waiting for Nacos to get ready..." sleep 1 done if [ "${nacosReady}" != "true" ]; then echo "Nacos server doesn't get ready within ${maxWaitTime} seconds. Initialization failed." - exit -1 + exit -1 fi + echo "Nacos is ready." + echo "Initializing Nacos server..." if [ -n "$NACOS_USERNAME" ] && [ -n "$NACOS_PASSWORD" ]; then - NACOS_ACCESS_TOKEN="$(curl -s "${NACOS_SERVER_URL}/v1/auth/login" -X POST --data-urlencode "username=${NACOS_USERNAME}" --data-urlencode "password=${NACOS_PASSWORD}" | jq -rM '.accessToken')"; + NACOS_ACCESS_TOKEN="$(curl -s "${NACOS_SERVER_URL}/v1/auth/login" -X POST --data-urlencode "username=${NACOS_USERNAME}" --data-urlencode "password=${NACOS_PASSWORD}" | jq -rM '.accessToken')" + # nacos-go-sdk is still using the API above for login. There is no need to support the new V3 API here. + # if [ "$nacosApiVersion" == "1" ]; then + # NACOS_ACCESS_TOKEN="$(curl -s "${NACOS_SERVER_URL}/v1/auth/login" -X POST --data-urlencode "username=${NACOS_USERNAME}" --data-urlencode "password=${NACOS_PASSWORD}" | jq -rM '.accessToken')" + # elif [ "$nacosApiVersion" == "3" ]; then + # NACOS_ACCESS_TOKEN="$(curl -s "${NACOS_SERVER_URL}/v3/auth/user/login" -X POST --data-urlencode "username=${NACOS_USERNAME}" --data-urlencode "password=${NACOS_PASSWORD}" | jq -rM '.accessToken')" + # else + # echo "Unsupported Nacos API version: v$nacosApiVersion" + # exit -1 + # fi if [ -z "$NACOS_ACCESS_TOKEN" ]; then echo "Unable to retrieve access token from Nacos. Possible causes are:" echo " 1. Incorrect username or password." echo " 2. The target Nacos service doesn't have authentication enabled." + if [ "$nacosApiVersion" == "3" ]; then + echo " 3. When using Nacos 3.x, please make sure the following property is set to true: + nacos.core.api.compatibility.client.enabled=true" + fi fi fi - if grep -q "\"namespace\":\"${NACOS_NS}\"" <<<"$(curl -s "${NACOS_SERVER_URL}/v1/console/namespaces?accessToken=${NACOS_ACCESS_TOKEN}")"; then + if [ "$nacosApiVersion" == "3" ]; then + # TODO: Remove extra compatibility check after nacos-go-sdk fully supports Nacos 3.x + checkNacos3ApiCompatibility + fi + + # Only $nacosApiVersion 1 and 3 are supported below. + + echo "Use Nacos API v${nacosApiVersion}" + + if [ "$nacosApiVersion" == "1" ]; then + namespacesResponse="$(curl -s "${NACOS_SERVER_URL}/v1/console/namespaces?accessToken=${NACOS_ACCESS_TOKEN}")" + elif [ "$nacosApiVersion" == "3" ]; then + namespacesResponse="$(curl -s "${NACOS_SERVER_URL}/v3/admin/core/namespace/list?accessToken=${NACOS_ACCESS_TOKEN}")" + fi + if grep -q "\"namespace\":\"${NACOS_NS}\"" <<<"$namespacesResponse"; then echo " Namespace ${NACOS_NS} already exists in Nacos." - if [ "$NACOS_USE_RANDOM_DATA_ENC_KEY" != "Y" ]; then + if [ "$NACOS_USE_RANDOM_DATA_ENC_KEY" != "N" ]; then echo " Fixed data encryption key is used. Skip config overwriting check." else echo " Checking existed configs in namespace ${NACOS_NS}..." - statusCode="$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v2/cs/config?accessToken=${NACOS_ACCESS_TOKEN}&namespaceId=${NACOS_NS}&dataId=secrets.__names__&group=DEFAULT_GROUP")" + if [ "$nacosApiVersion" == "1" ]; then + statusCode="$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v2/cs/config?accessToken=${NACOS_ACCESS_TOKEN}&namespaceId=${NACOS_NS}&dataId=secrets.__names__&group=DEFAULT_GROUP")" + elif [ "$nacosApiVersion" == "3" ]; then + statusCode="$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v3/admin/cs/config?accessToken=${NACOS_ACCESS_TOKEN}&namespaceId=${NACOS_NS}&dataId=secrets.__names__&groupName=DEFAULT_GROUP")" + fi if [ $statusCode -eq 200 ]; then echo " ERROR: Higress configs are found in nacos namespace ${NACOS_NS}." echo @@ -103,7 +151,11 @@ initializeNacos() { fi echo " Creating namespace ${NACOS_NS}..." - statusCode="$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v1/console/namespaces?accessToken=${NACOS_ACCESS_TOKEN}" --data-urlencode "customNamespaceId=${NACOS_NS}" --data-urlencode "namespaceName=${NACOS_NS}")" + if [ "$nacosApiVersion" == "1" ]; then + statusCode="$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v1/console/namespaces?accessToken=${NACOS_ACCESS_TOKEN}" --data-urlencode "customNamespaceId=${NACOS_NS}" --data-urlencode "namespaceName=${NACOS_NS}")" + elif [ "$nacosApiVersion" == "3" ]; then + statusCode="$(curl -s -o /dev/null -w "%{http_code}" "${NACOS_SERVER_URL}/v3/admin/core/namespace?accessToken=${NACOS_ACCESS_TOKEN}" --data-urlencode "namespaceId=${NACOS_NS}" --data-urlencode "namespaceName=${NACOS_NS}")" + fi if [ $statusCode -ne 200 ]; then echo " Creating namespace ${NACOS_NS} in nacos failed with $statusCode." exit -1 @@ -111,6 +163,26 @@ initializeNacos() { return 0 } +checkNacos3ApiCompatibility() { + if [ "$nacosApiVersion" != "3" ]; then + return + fi + url="${NACOS_SERVER_URL}/v1/cs/configs?accessToken=${NACOS_ACCESS_TOKEN}&namespaceId=${NACOS_NS}&dataId=unknown-config-cd60cd4c&group=DEFAULT_GROUP&search=blur&pageNo=1&pageSize=10" + statusCode="$(curl -s -o /dev/null -w "%{http_code}" "$url")" + if [ $statusCode -eq 410 ]; then + echo " +Nacos 3.x isn't fully supported yet. + +If you do want to use Nacos 3.x, please add the following property into its application.properties file: + nacos.core.api.compatibility.console.enabled=true +" + exit -1 + elif [ $statusCode -ne 200 ]; then + echo "Unexpected status code $statusCode got from $url" + echo "Something might be wrong. But we can continue and keep an eye on it." + fi +} + initializeConfigDir() { echo "Initializing Config Directory..." @@ -132,12 +204,12 @@ initializeApiServer() { if [ ! -f nacos.key ]; then echo " Generating data encryption key..." if [ -z "$NACOS_DATA_ENC_KEY" ]; then - cat /dev/urandom | tr -dc '[:graph:]' | head -c 32 > nacos.key + cat /dev/urandom | tr -dc '[:graph:]' | head -c 32 >nacos.key else - echo -n "$NACOS_DATA_ENC_KEY" > nacos.key + echo -n "$NACOS_DATA_ENC_KEY" >nacos.key fi else - echo " Data encryption key already exists."; + echo " Data encryption key already exists." fi } @@ -152,7 +224,6 @@ initializeController() { fi } - initializeConfigStorage initializeApiServer initializeController diff --git a/compose/scripts/prepare.sh b/compose/scripts/prepare.sh index 6dea354..a015da2 100644 --- a/compose/scripts/prepare.sh +++ b/compose/scripts/prepare.sh @@ -273,6 +273,16 @@ metadata: namespace: higress-system data: higress: |- + mcpServer: + enable: false + sse_path_suffix: /sse + redis: + address: redis-address:6379 + username: "" + password: "" + db: 0 + match_list: [] + servers: [] downstream: connectionBufferLimits: 32768 http2: @@ -410,7 +420,7 @@ EOF if [ $? -ne 0 ]; then echo " The Secret resource \"higress-console\" doesn't exist. Create it now..." read -r -d '' content <./prometheus.yaml global: - scrape_interval: 15s + scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' diff --git a/src/get-higress.sh b/src/get-higress.sh index e34dc25..bad2c06 100755 --- a/src/get-higress.sh +++ b/src/get-higress.sh @@ -97,9 +97,12 @@ outputUsage() { -k, --data-enc-key=KEY the key used to encrypt sensitive configurations MUST contain 32 characters A random key will be generated if unspecified - --nacos-port=NACOS-PORT - the HTTP port used to access the built-in Nacos + --nacos-service-port=NACOS-SERVICE-PORT + the HTTP port used to access the built-in Nacos service default to 8848 if unspecified + --nacos-console-port=NACOS-CONSOLE-PORT + the HTTP port used to access the built-in Nacos console + default to 8888 if unspecified --gateway-http-port=GATEWAY-HTTP-PORT the HTTP port to be listened by the gateway default to 80 if unspecified From 387b08f99c7c953095bb80176736f55546637127 Mon Sep 17 00:00:00 2001 From: CH3CHO Date: Fri, 23 May 2025 10:44:41 +0800 Subject: [PATCH 2/2] Upgrade to nacos 3.0.1 --- compose/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/.env b/compose/.env index 59297c7..2c4fc74 100644 --- a/compose/.env +++ b/compose/.env @@ -6,7 +6,7 @@ NACOS_NS='higress-system' NACOS_USERNAME='' NACOS_PASSWORD='' NACOS_DATA_ENC_KEY='' -NACOS_SERVER_TAG='v2.5.1' +NACOS_SERVER_TAG='v3.0.1' HIGRESS_RUNNER_TAG='0.0.3' HIGRESS_API_SERVER_TAG='0.0.22' HIGRESS_CONTROLLER_TAG='2.1.3'