diff --git a/asm/Kptfile b/asm/Kptfile index 75fe4513c..afa24576b 100644 --- a/asm/Kptfile +++ b/asm/Kptfile @@ -71,12 +71,12 @@ openAPI: x-k8s-cli: setter: name: anthos.servicemesh.hub - value: gcr.io/gke-release/asm + value: gke.gcr.io/asm io.k8s.cli.setters.anthos.servicemesh.tag: x-k8s-cli: setter: name: anthos.servicemesh.tag - value: 1.16.4-asm.14 + value: 1.16.5-asm.2 isSet: true io.k8s.cli.setters.anthos.servicemesh.managed-controlplane.vpcsc.enabled: type: string @@ -113,7 +113,7 @@ openAPI: x-k8s-cli: setter: name: anthos.servicemesh.canonicalServiceHub - value: gcr.io/gke-release/asm/canonical-service-controller:1.7.3-asm.6 + value: gke.gcr.io/asm/canonical-service-controller:1.7.3-asm.6 isSet: true io.k8s.cli.setters.anthos.servicemesh.idp-url: type: string diff --git a/asm/canonical-service/controller.yaml b/asm/canonical-service/controller.yaml index 349d1d356..652bc797b 100644 --- a/asm/canonical-service/controller.yaml +++ b/asm/canonical-service/controller.yaml @@ -327,7 +327,7 @@ spec: - --enable-leader-election command: - /manager - image: gcr.io/gke-release/asm/canonical-service-controller:1.10.3-asm.16 # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.canonicalServiceHub"} + image: gke.gcr.io/asm/canonical-service-controller:1.10.3-asm.16 # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.canonicalServiceHub"} name: manager resources: limits: diff --git a/asm/istio/expansion/vm-eastwest-gateway.yaml b/asm/istio/expansion/vm-eastwest-gateway.yaml index eb57a8c7e..d6d757e1e 100644 --- a/asm/istio/expansion/vm-eastwest-gateway.yaml +++ b/asm/istio/expansion/vm-eastwest-gateway.yaml @@ -19,7 +19,7 @@ metadata: name: eastwest spec: profile: empty - hub: gcr.io/gke-release/asm # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub"} + hub: gke.gcr.io/asm # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub"} tag: 1.10.2-asm.1 # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.tag"} components: ingressGateways: diff --git a/asm/istio/istio-operator.yaml b/asm/istio/istio-operator.yaml index 26d19fd98..0da2c2681 100644 --- a/asm/istio/istio-operator.yaml +++ b/asm/istio/istio-operator.yaml @@ -17,7 +17,7 @@ apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: profile: empty - hub: gcr.io/gke-release/asm # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub"} + hub: gke.gcr.io/asm # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub"} tag: 1.10.2-asm.1 # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.tag"} meshConfig: trustDomainAliases: # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.trustDomainAliases"} diff --git a/asm/istio/options/managed-control-plane.yaml b/asm/istio/options/managed-control-plane.yaml index 5d8f1b62e..a548c348e 100644 --- a/asm/istio/options/managed-control-plane.yaml +++ b/asm/istio/options/managed-control-plane.yaml @@ -18,7 +18,7 @@ kind: IstioOperator spec: revision: "asm-managed" profile: asm-gcp - hub: gcr.io/gke-release/asm # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub"} + hub: gke.gcr.io/asm # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.hub"} tag: 1.10.2-asm.1 # {"$ref":"#/definitions/io.k8s.cli.setters.anthos.servicemesh.tag"} components: base: diff --git a/asmcli/README.md b/asmcli/README.md index c96b20e03..dad8e52dd 100644 --- a/asmcli/README.md +++ b/asmcli/README.md @@ -78,7 +78,7 @@ instead of executing them, or use the `--verbose` flag to display _and_ execute the commands. Combine the --verbose flag with --help to see extended help. The script will by default create a temporary directory in order to download -files and configuration necessary for installing ASM. Specify the --output-dir +files and configuration necessary for installing ASM. Specify the `--output-dir` (or `--working-dir`) flag in order to designate an existing folder to use instead. Upon completion, the directory will contain the configuration used for installationm, as well as the ASM package which notably contains the istioctl binary for the installed diff --git a/asmcli/asmcli b/asmcli/asmcli index 24bc7f5e8..add29b278 100755 --- a/asmcli/asmcli +++ b/asmcli/asmcli @@ -40,8 +40,8 @@ _CI_I_AM_A_TEST_ROBOT="${_CI_I_AM_A_TEST_ROBOT:=0}"; readonly _CI_I_AM_A_TEST_RO ### Internal variables ### MAJOR="${MAJOR:=1}"; readonly MAJOR; MINOR="${MINOR:=16}"; readonly MINOR; -POINT="${POINT:=4}"; readonly POINT; -REV="${REV:=14}"; readonly REV; +POINT="${POINT:=5}"; readonly POINT; +REV="${REV:=2}"; readonly REV; CONFIG_VER="${CONFIG_VER:="1"}"; readonly CONFIG_VER; K8S_MINOR=0 @@ -164,7 +164,7 @@ build-offline-package() { build-offline-package_parse_args() { while [[ $# != 0 ]]; do case "${1}" in - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 @@ -268,7 +268,7 @@ create-mesh_parse_args() { while [[ $# != 0 ]]; do case "${1}" in - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 @@ -289,6 +289,10 @@ create-mesh_parse_args() { context_set-option "TRUST_FLEET_IDENTITY" 0 shift 1 ;; + --offline) + context_set-option "OFFLINE" 1 + shift 1 + ;; *) if [ -f "$1" ]; then local KCF; KCF="${1}" @@ -443,16 +447,28 @@ create-mesh_prepare_environment() { fi if needs_asm && needs_kpt; then - download_kpt + if is_offline; then + warn "Skipping downloading kpt because offline mode was specified." + else + download_kpt + fi fi readonly AKPT if needs_asm; then if ! necessary_files_exist; then - download_asm + if is_offline; then + warn "Skipping downloading mesh tarball because offline mode was specified." + else + download_asm + fi fi if should_download_kpt_package; then - download_kpt_package + if is_offline; then + warn "Skipping downloading configuration templates because offline mode was specified." + else + download_kpt_package + fi fi organize_kpt_files fi @@ -1047,6 +1063,10 @@ FLAGS: downloading them again. The following several flags are used to display help texts and the version message. -v|--verbose Print commands before and after execution. + --offline Perform an offline configuration using the pre-downloaded + package in the output directory. If the directory is not + specified or does not contain the required files, the + script will exit with error. -h|--help Show this message and exit. --version Print the version of this tool and exit. @@ -1075,6 +1095,7 @@ Use -h|--help with -v|--verbose to show detailed descriptions. FLAGS: -D|--output_dir -v|--verbose + --offline -h|--help --version EOF @@ -2686,6 +2707,7 @@ context_init() { "SERVICE_ACCOUNT": "${SERVICE_ACCOUNT:-}", "KEY_FILE": "${KEY_FILE:-}", "OUTPUT_DIR": "${OUTPUT_DIR:-}", + "LOG_FILE_LOCATION": "${LOG_FILE_LOCATION:-}", "CA_CERT": "${CA_CERT:-}", "CA_KEY": "${CA_KEY:-}", "CA_ROOT": "${CA_ROOT:-}", @@ -2805,6 +2827,7 @@ NETWORK_ID SERVICE_ACCOUNT KEY_FILE OUTPUT_DIR +LOG_FILE_LOCATION CA_CERT CA_KEY CA_ROOT @@ -3361,6 +3384,47 @@ get_auth_token() { local TOKEN; TOKEN="$(retry 2 gcloud --project="${PROJECT_ID}" auth print-access-token)" echo "${TOKEN}" } +info() { + local VERBOSE; VERBOSE="$(context_get-option "VERBOSE")" + if hash ts 2>/dev/null && [[ "${VERBOSE}" -eq 1 ]]; then + echo_log "${SCRIPT_NAME}: ${1}" | TZ=utc ts '%Y-%m-%dT%.T' >&2 + else + echo_log "${SCRIPT_NAME}: ${1}" >&2 + fi +} + +warn() { + info "[WARNING]: ${1}" >&2 +} + +warn_pause() { + warn "${1}" + sleep 2 +} + +error() { + info "[ERROR]: ${1}" >&2 +} + +fatal() { + error "${1}" + exit 2 +} + +fatal_with_usage() { + error "${1}" + usage_short >&2 + exit 2 +} + +echo_log() { + local LOG_FILE_LOCATION; LOG_FILE_LOCATION="$(context_get-option "LOG_FILE_LOCATION")" + + echo "${@}" + if [[ -n "${LOG_FILE_LOCATION}" ]]; then + echo "${@}" >> "${LOG_FILE_LOCATION}"; + fi +} parse_args() { # shellcheck disable=SC2064 trap "$(shopt -p nocasematch)" RETURN @@ -3526,7 +3590,7 @@ parse_args() { context_set-option "KEY_FILE" "${2}" shift 2 ;; - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 @@ -3732,7 +3796,7 @@ x_parse_install_args() { context_set-option "KEY_FILE" "${2}" shift 2 ;; - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 @@ -3882,28 +3946,6 @@ strip_trailing_commas() { echo "${1}" | sed 's/,*$//g' } -warn() { - info "[WARNING]: ${1}" >&2 -} - -warn_pause() { - warn "${1}" - sleep 2 -} - -error() { - info "[ERROR]: ${1}" >&2 -} - -info() { - local VERBOSE; VERBOSE="$(context_get-option "VERBOSE")" - if hash ts 2>/dev/null && [[ "${VERBOSE}" -eq 1 ]]; then - echo "${SCRIPT_NAME}: ${1}" | TZ=utc ts '%Y-%m-%dT%.T' >&2 - else - echo "${SCRIPT_NAME}: ${1}" >&2 - fi -} - validation_error() { error "${1}" if only_validate; then @@ -3914,17 +3956,6 @@ validation_error() { fi } -fatal() { - error "${1}" - exit 2 -} - -fatal_with_usage() { - error "${1}" - usage_short >&2 - exit 2 -} - prompt_user_for_value() { read -r -p "Please provide a value for ${1}:" VALUE if [[ -n "${VALUE}" ]]; then @@ -4104,12 +4135,15 @@ prepare_environment() { # Offline mode should not trigger any download if is_offline; then if needs_kpt || ! necessary_files_exist || should_download_kpt_package; then - { read -r -d '' MSG; fatal "${MSG}"; } < /dev/null context_set-option "OUTPUT_DIR" "${OUTPUT_DIR}" + local LOG_FILE_LOCATION; LOG_FILE_LOCATION="${OUTPUT_DIR}/logs.txt" + touch "${LOG_FILE_LOCATION}" + context_set-option "LOG_FILE_LOCATION" "${LOG_FILE_LOCATION}" + if [[ "${KUBECONFIG_SUPPLIED}" -eq 0 ]]; then KUBECONFIG="$(pwd)/asm_kubeconfig" context_set-option "KUBECONFIG" "${KUBECONFIG}" diff --git a/asmcli/asmcli.sh b/asmcli/asmcli.sh index b5edc408d..2c6796bb0 100755 --- a/asmcli/asmcli.sh +++ b/asmcli/asmcli.sh @@ -36,8 +36,8 @@ _CI_I_AM_A_TEST_ROBOT="${_CI_I_AM_A_TEST_ROBOT:=0}"; readonly _CI_I_AM_A_TEST_RO ### Internal variables ### MAJOR="${MAJOR:=1}"; readonly MAJOR; MINOR="${MINOR:=16}"; readonly MINOR; -POINT="${POINT:=4}"; readonly POINT; -REV="${REV:=14}"; readonly REV; +POINT="${POINT:=5}"; readonly POINT; +REV="${REV:=2}"; readonly REV; CONFIG_VER="${CONFIG_VER:="1"}"; readonly CONFIG_VER; K8S_MINOR=0 diff --git a/asmcli/commands/build-offline-package.sh b/asmcli/commands/build-offline-package.sh index 749f69dbb..62c5ea6ef 100644 --- a/asmcli/commands/build-offline-package.sh +++ b/asmcli/commands/build-offline-package.sh @@ -25,7 +25,7 @@ build-offline-package() { build-offline-package_parse_args() { while [[ $# != 0 ]]; do case "${1}" in - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 diff --git a/asmcli/commands/create-mesh.sh b/asmcli/commands/create-mesh.sh index 00fff77df..2f24d4757 100644 --- a/asmcli/commands/create-mesh.sh +++ b/asmcli/commands/create-mesh.sh @@ -43,7 +43,7 @@ create-mesh_parse_args() { while [[ $# != 0 ]]; do case "${1}" in - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 @@ -64,6 +64,10 @@ create-mesh_parse_args() { context_set-option "TRUST_FLEET_IDENTITY" 0 shift 1 ;; + --offline) + context_set-option "OFFLINE" 1 + shift 1 + ;; *) if [ -f "$1" ]; then local KCF; KCF="${1}" @@ -218,16 +222,28 @@ create-mesh_prepare_environment() { fi if needs_asm && needs_kpt; then - download_kpt + if is_offline; then + warn "Skipping downloading kpt because offline mode was specified." + else + download_kpt + fi fi readonly AKPT if needs_asm; then if ! necessary_files_exist; then - download_asm + if is_offline; then + warn "Skipping downloading mesh tarball because offline mode was specified." + else + download_asm + fi fi if should_download_kpt_package; then - download_kpt_package + if is_offline; then + warn "Skipping downloading configuration templates because offline mode was specified." + else + download_kpt_package + fi fi organize_kpt_files fi diff --git a/asmcli/commands/help.sh b/asmcli/commands/help.sh index 3477eaf64..48f657daf 100644 --- a/asmcli/commands/help.sh +++ b/asmcli/commands/help.sh @@ -328,6 +328,10 @@ FLAGS: downloading them again. The following several flags are used to display help texts and the version message. -v|--verbose Print commands before and after execution. + --offline Perform an offline configuration using the pre-downloaded + package in the output directory. If the directory is not + specified or does not contain the required files, the + script will exit with error. -h|--help Show this message and exit. --version Print the version of this tool and exit. @@ -356,6 +360,7 @@ Use -h|--help with -v|--verbose to show detailed descriptions. FLAGS: -D|--output_dir -v|--verbose + --offline -h|--help --version EOF diff --git a/asmcli/lib/context.sh b/asmcli/lib/context.sh index 2a5755040..72d130a83 100644 --- a/asmcli/lib/context.sh +++ b/asmcli/lib/context.sh @@ -33,6 +33,7 @@ context_init() { "SERVICE_ACCOUNT": "${SERVICE_ACCOUNT:-}", "KEY_FILE": "${KEY_FILE:-}", "OUTPUT_DIR": "${OUTPUT_DIR:-}", + "LOG_FILE_LOCATION": "${LOG_FILE_LOCATION:-}", "CA_CERT": "${CA_CERT:-}", "CA_KEY": "${CA_KEY:-}", "CA_ROOT": "${CA_ROOT:-}", @@ -152,6 +153,7 @@ NETWORK_ID SERVICE_ACCOUNT KEY_FILE OUTPUT_DIR +LOG_FILE_LOCATION CA_CERT CA_KEY CA_ROOT diff --git a/asmcli/lib/log.sh b/asmcli/lib/log.sh new file mode 100644 index 000000000..30520b4ee --- /dev/null +++ b/asmcli/lib/log.sh @@ -0,0 +1,41 @@ +info() { + local VERBOSE; VERBOSE="$(context_get-option "VERBOSE")" + if hash ts 2>/dev/null && [[ "${VERBOSE}" -eq 1 ]]; then + echo_log "${SCRIPT_NAME}: ${1}" | TZ=utc ts '%Y-%m-%dT%.T' >&2 + else + echo_log "${SCRIPT_NAME}: ${1}" >&2 + fi +} + +warn() { + info "[WARNING]: ${1}" >&2 +} + +warn_pause() { + warn "${1}" + sleep 2 +} + +error() { + info "[ERROR]: ${1}" >&2 +} + +fatal() { + error "${1}" + exit 2 +} + +fatal_with_usage() { + error "${1}" + usage_short >&2 + exit 2 +} + +echo_log() { + local LOG_FILE_LOCATION; LOG_FILE_LOCATION="$(context_get-option "LOG_FILE_LOCATION")" + + echo "${@}" + if [[ -n "${LOG_FILE_LOCATION}" ]]; then + echo "${@}" >> "${LOG_FILE_LOCATION}"; + fi +} diff --git a/asmcli/lib/parse.sh b/asmcli/lib/parse.sh index 226b59bc4..55a279734 100644 --- a/asmcli/lib/parse.sh +++ b/asmcli/lib/parse.sh @@ -163,7 +163,7 @@ parse_args() { context_set-option "KEY_FILE" "${2}" shift 2 ;; - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 @@ -369,7 +369,7 @@ x_parse_install_args() { context_set-option "KEY_FILE" "${2}" shift 2 ;; - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" context_set-option "OUTPUT_DIR" "${2}" shift 2 diff --git a/asmcli/lib/util.sh b/asmcli/lib/util.sh index da5bb6961..8a9a56bf7 100644 --- a/asmcli/lib/util.sh +++ b/asmcli/lib/util.sh @@ -91,28 +91,6 @@ strip_trailing_commas() { echo "${1}" | sed 's/,*$//g' } -warn() { - info "[WARNING]: ${1}" >&2 -} - -warn_pause() { - warn "${1}" - sleep 2 -} - -error() { - info "[ERROR]: ${1}" >&2 -} - -info() { - local VERBOSE; VERBOSE="$(context_get-option "VERBOSE")" - if hash ts 2>/dev/null && [[ "${VERBOSE}" -eq 1 ]]; then - echo "${SCRIPT_NAME}: ${1}" | TZ=utc ts '%Y-%m-%dT%.T' >&2 - else - echo "${SCRIPT_NAME}: ${1}" >&2 - fi -} - validation_error() { error "${1}" if only_validate; then @@ -123,17 +101,6 @@ validation_error() { fi } -fatal() { - error "${1}" - exit 2 -} - -fatal_with_usage() { - error "${1}" - usage_short >&2 - exit 2 -} - prompt_user_for_value() { read -r -p "Please provide a value for ${1}:" VALUE if [[ -n "${VALUE}" ]]; then @@ -313,12 +280,15 @@ prepare_environment() { # Offline mode should not trigger any download if is_offline; then if needs_kpt || ! necessary_files_exist || should_download_kpt_package; then - { read -r -d '' MSG; fatal "${MSG}"; } < /dev/null context_set-option "OUTPUT_DIR" "${OUTPUT_DIR}" + local LOG_FILE_LOCATION; LOG_FILE_LOCATION="${OUTPUT_DIR}/logs.txt" + touch "${LOG_FILE_LOCATION}" + context_set-option "LOG_FILE_LOCATION" "${LOG_FILE_LOCATION}" + if [[ "${KUBECONFIG_SUPPLIED}" -eq 0 ]]; then KUBECONFIG="$(pwd)/asm_kubeconfig" context_set-option "KUBECONFIG" "${KUBECONFIG}" diff --git a/asmcli/tests/common.sh b/asmcli/tests/common.sh index 3fbae4258..1f6cfeaa3 100644 --- a/asmcli/tests/common.sh +++ b/asmcli/tests/common.sh @@ -808,10 +808,10 @@ run_build_offline_package() { local OUTPUT_DIR; OUTPUT_DIR="${1}" echo "Build offline package..." echo "../asmcli build-offline-package -v \ - --output-dir ${OUTPUT_DIR}" + --working-dir ${OUTPUT_DIR}" # shellcheck disable=SC2086 ../asmcli build-offline-package -v \ - --output-dir "${OUTPUT_DIR}" 2>&1 + --working-dir "${OUTPUT_DIR}" 2>&1 # Check downloaded packages [ -s "${OUTPUT_DIR}" ] diff --git a/asmcli/tests/lib/util.bats b/asmcli/tests/lib/util.bats index c0a67f921..9100b0772 100644 --- a/asmcli/tests/lib/util.bats +++ b/asmcli/tests/lib/util.bats @@ -130,3 +130,17 @@ EOF exit 1 fi } + +@test "UTIL: LOG_FILE_LOCATION is required to write log file" { + run echo_log "Hello" + + local LOG_FILE_LOCATION; LOG_FILE_LOCATION="$(pwd)/logs.txt" + run context_set-option "LOG_FILE_LOCATION" "${LOG_FILE_LOCATION}" + touch "${LOG_FILE_LOCATION}" + + run echo_log "World" + cat "${LOG_FILE_LOCATION}" + assert_output "World" + + rm "${LOG_FILE_LOCATION}" +} diff --git a/scripts/migration/ca-migration/migrate_ca b/scripts/migration/ca-migration/migrate_ca index bfe4e360a..35057d329 100755 --- a/scripts/migration/ca-migration/migrate_ca +++ b/scripts/migration/ca-migration/migrate_ca @@ -394,7 +394,7 @@ parse_args() { argMap["FORCE"]="true" shift 1 ;; - -D | --output_dir | --output-dir) + -D | --output_dir | --output-dir | --working_dir | --working-dir) arg_required "${@}" OUTPUT_DIR="$(apath -f "${2}")" if [[ ! -a "${OUTPUT_DIR}" ]]; then diff --git a/scripts/migration/migrate-addon b/scripts/migration/migrate-addon index 43c89fc7e..1cb031e19 100755 --- a/scripts/migration/migrate-addon +++ b/scripts/migration/migrate-addon @@ -295,7 +295,7 @@ configure_mesh_ca_16() { # The operator probably won't actually update Istiod faster than we will manually below, but this ensures it # will not be reverted back kube patch -n istio-system istiooperators.install.istio.io istio-1-6-11-gke-0 --type=merge -p='{"spec":{ - "components":{"pilot":{"hub":"gcr.io/gke-release/istio","tag":"1.6.14-gke.7"}}} + "components":{"pilot":{"hub":"gke.gcr.io/istio","tag":"1.6.14-gke.7"}}} }' # Next we insert the mesh ca root cert so that it is trusted @@ -313,7 +313,7 @@ EOF # Patch the new image, in case operator isn't fast enough, and insert an annotation to make sure we are change something kube patch deploy istiod-istio-1611 -n istio-system -p='{"spec":{"template":{"spec":{"containers":[{ "name":"discovery", - "image":"gcr.io/gke-release/istio/pilot:1.6.14-gke.7" + "image":"gke.gcr.io/istio/pilot:1.6.14-gke.7" }]}}}, "metadata":{"annotations":{"istio-addon-migrate-start":"true"}}}' echo "Restarting 1.6 istiod" @@ -403,7 +403,7 @@ EOF kube get deploy istio-pilot -n istio-system -o yaml > configure_mesh_ca_istio_pilot_deploy.yaml kube patch deploy istio-pilot -n istio-system -p='{"spec":{"template":{"spec":{"containers":[{ "name":"discovery", - "image":"gcr.io/gke-release/istio/pilot:1.4.10-gke.21", + "image":"gke.gcr.io/istio/pilot:1.4.10-gke.21", "env":[{"name":"PILOT_SKIP_VALIDATE_TRUST_DOMAIN","value":"true"}] }]}}}}'