From 697f92a5d2944a34d53fa91e266d58c0128f9243 Mon Sep 17 00:00:00 2001 From: Philip Ingrey Date: Wed, 9 Aug 2017 17:45:44 +0100 Subject: [PATCH] Switch away from gcloud deprecated flags in compute resource listings --- cluster/gce/list-resources.sh | 23 ++++++++++++----------- cluster/gce/upgrade.sh | 3 +-- cluster/gce/util.sh | 29 ++++++++++++++--------------- cluster/validate-cluster.sh | 4 ++-- hack/make-rules/test-e2e-node.sh | 2 +- test/e2e/framework/ingress_utils.go | 2 +- 6 files changed, 31 insertions(+), 32 deletions(-) diff --git a/cluster/gce/list-resources.sh b/cluster/gce/list-resources.sh index 9790205c22d..a63be2c24f9 100755 --- a/cluster/gce/list-resources.sh +++ b/cluster/gce/list-resources.sh @@ -43,11 +43,12 @@ fi GREP_REGEX="" function gcloud-compute-list() { local -r resource=$1 + local -r filter=${2:-} echo -e "\n\n[ ${resource} ]" local attempt=1 local result="" while true; do - if result=$(gcloud compute ${resource} list --project=${PROJECT} ${@:2}); then + if result=$(gcloud compute ${resource} list --project=${PROJECT} ${filter:+--filter="$filter"} ${@:3}); then if [[ ! -z "${GREP_REGEX}" ]]; then result=$(echo "${result}" | grep "${GREP_REGEX}" || true) fi @@ -73,21 +74,21 @@ echo "Provider: ${KUBERNETES_PROVIDER:-}" # List resources related to instances, filtering by the instance prefix if # provided. -gcloud-compute-list instance-templates --regexp="${INSTANCE_PREFIX}.*" -gcloud-compute-list instance-groups ${ZONE:+"--zones=${ZONE}"} --regexp="${INSTANCE_PREFIX}.*" -gcloud-compute-list instances ${ZONE:+"--zones=${ZONE}"} --regexp="${INSTANCE_PREFIX}.*" +gcloud-compute-list instance-templates "name ~ '${INSTANCE_PREFIX}.*'" +gcloud-compute-list instance-groups "${ZONE:+"zone:(${ZONE}) AND "}name ~ '${INSTANCE_PREFIX}.*'" +gcloud-compute-list instances "${ZONE:+"zone:(${ZONE}) AND "}name ~ '${INSTANCE_PREFIX}.*'" -# List disk resources, filterying by instance prefix if provided. -gcloud-compute-list disks ${ZONE:+"--zones=${ZONE}"} --regexp="${INSTANCE_PREFIX}.*" +# List disk resources, filtering by instance prefix if provided. +gcloud-compute-list disks "${ZONE:+"zone:(${ZONE}) AND "}name ~ '${INSTANCE_PREFIX}.*'" # List network resources. We include names starting with "a", corresponding to # those that Kubernetes creates. -gcloud-compute-list addresses ${REGION:+"--regions=${REGION}"} --regexp="a.*|${INSTANCE_PREFIX}.*" +gcloud-compute-list addresses "${REGION:+"region=(${REGION}) AND "}name ~ 'a.*|${INSTANCE_PREFIX}.*'" # Match either the header or a line with the specified e2e network. # This assumes that the network name is the second field in the output. GREP_REGEX="^NAME\|^[^ ]\+[ ]\+\(default\|${NETWORK}\) " -gcloud-compute-list routes --regexp="default.*|${INSTANCE_PREFIX}.*" -gcloud-compute-list firewall-rules --regexp="default.*|k8s-fw.*|${INSTANCE_PREFIX}.*" +gcloud-compute-list routes "name ~ 'default.*|${INSTANCE_PREFIX}.*'" +gcloud-compute-list firewall-rules "name ~ 'default.*|k8s-fw.*|${INSTANCE_PREFIX}.*'" GREP_REGEX="" -gcloud-compute-list forwarding-rules ${REGION:+"--regions=${REGION}"} -gcloud-compute-list target-pools ${REGION:+"--regions=${REGION}"} +gcloud-compute-list forwarding-rules ${REGION:+"region=(${REGION})"} +gcloud-compute-list target-pools ${REGION:+"region=(${REGION})"} diff --git a/cluster/gce/upgrade.sh b/cluster/gce/upgrade.sh index f6a1299564c..208eddc1f7b 100755 --- a/cluster/gce/upgrade.sh +++ b/cluster/gce/upgrade.sh @@ -436,8 +436,7 @@ function do-node-upgrade() { for group in ${INSTANCE_GROUPS[@]}; do old_templates+=($(gcloud compute instance-groups managed list \ --project="${PROJECT}" \ - --zones="${ZONE}" \ - --regexp="${group}" \ + --filter="name ~ '${group}' AND zone:(${ZONE})" \ --format='value(instanceTemplate)' || true)) set_instance_template_out=$(gcloud compute instance-groups managed set-instance-template "${group}" \ --template="${template_name}" \ diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index e5925ba5eaf..fbb1caf3c24 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -334,8 +334,8 @@ function detect-node-names() { detect-project INSTANCE_GROUPS=() INSTANCE_GROUPS+=($(gcloud compute instance-groups managed list \ - --zones "${ZONE}" --project "${PROJECT}" \ - --regexp "${NODE_INSTANCE_PREFIX}-.+" \ + --project "${PROJECT}" \ + --filter "name ~ '${NODE_INSTANCE_PREFIX}-.+' AND zone:(${ZONE})" \ --format='value(name)' || true)) NODE_NAMES=() if [[ -n "${INSTANCE_GROUPS[@]:-}" ]]; then @@ -1085,7 +1085,7 @@ function add-replica-to-etcd() { function set-existing-master() { local existing_master=$(gcloud compute instances list \ --project "${PROJECT}" \ - --regexp "$(get-replica-name-regexp)" \ + --filter "name ~ '$(get-replica-name-regexp)'" \ --format "value(name,zone)" | head -n1) EXISTING_MASTER_NAME="$(echo "${existing_master}" | cut -f1)" EXISTING_MASTER_ZONE="$(echo "${existing_master}" | cut -f2)" @@ -1605,7 +1605,7 @@ function kube-down() { # Check if this are any remaining master replicas. local REMAINING_MASTER_COUNT=$(gcloud compute instances list \ --project "${PROJECT}" \ - --regexp "$(get-replica-name-regexp)" \ + --filter="name ~ '$(get-replica-name-regexp)'" \ --format "value(zone)" | wc -l) # In the replicated scenario, if there's only a single master left, we should also delete load balancer in front of it. @@ -1647,8 +1647,8 @@ function kube-down() { # Find out what minions are running. local -a minions minions=( $(gcloud compute instances list \ - --project "${PROJECT}" --zones "${ZONE}" \ - --regexp "${NODE_INSTANCE_PREFIX}-.+" \ + --project "${PROJECT}" \ + --filter="name ~ '${NODE_INSTANCE_PREFIX}-.+' AND zone:(${ZONE})" \ --format='value(name)') ) # If any minions are running, delete them in batches. while (( "${#minions[@]}" > 0 )); do @@ -1674,7 +1674,7 @@ function kube-down() { # first allows the master to cleanup routes itself. local TRUNCATED_PREFIX="${INSTANCE_PREFIX:0:26}" routes=( $(gcloud compute routes list --project "${PROJECT}" \ - --regexp "${TRUNCATED_PREFIX}-.{8}-.{4}-.{4}-.{4}-.{12}" \ + --filter="name ~ '${TRUNCATED_PREFIX}-.{8}-.{4}-.{4}-.{4}-.{12}'" \ --format='value(name)') ) while (( "${#routes[@]}" > 0 )); do echo Deleting routes "${routes[*]::${batch}}" @@ -1740,8 +1740,7 @@ function kube-down() { function get-replica-name() { echo $(gcloud compute instances list \ --project "${PROJECT}" \ - --zones "${ZONE}" \ - --regexp "$(get-replica-name-regexp)" \ + --filter="name ~ '$(get-replica-name-regexp)' AND zone:(${ZONE})" \ --format "value(name)" | head -n1) } @@ -1755,7 +1754,7 @@ function get-replica-name() { function get-all-replica-names() { echo $(gcloud compute instances list \ --project "${PROJECT}" \ - --regexp "$(get-replica-name-regexp)" \ + --filter="name ~ '$(get-replica-name-regexp)'" \ --format "value(name)" | tr "\n" "," | sed 's/,$//') } @@ -1767,7 +1766,7 @@ function get-master-replicas-count() { detect-project local num_masters=$(gcloud compute instances list \ --project "${PROJECT}" \ - --regexp "$(get-replica-name-regexp)" \ + --filter="name ~ '$(get-replica-name-regexp)'" \ --format "value(zone)" | wc -l) echo -n "${num_masters}" } @@ -1791,7 +1790,7 @@ function get-replica-name-regexp() { function set-replica-name() { local instances=$(gcloud compute instances list \ --project "${PROJECT}" \ - --regexp "$(get-replica-name-regexp)" \ + --filter="name ~ '$(get-replica-name-regexp)'" \ --format "value(name)") suffix="" @@ -1856,8 +1855,8 @@ function check-resources() { # Find out what minions are running. local -a minions minions=( $(gcloud compute instances list \ - --project "${PROJECT}" --zones "${ZONE}" \ - --regexp "${NODE_INSTANCE_PREFIX}-.+" \ + --project "${PROJECT}" \ + --filter="name ~ '${NODE_INSTANCE_PREFIX}-.+' AND zone:(${ZONE})" \ --format='value(name)') ) if (( "${#minions[@]}" > 0 )); then KUBE_RESOURCE_FOUND="${#minions[@]} matching matching ${NODE_INSTANCE_PREFIX}-.+" @@ -1876,7 +1875,7 @@ function check-resources() { local -a routes routes=( $(gcloud compute routes list --project "${PROJECT}" \ - --regexp "${INSTANCE_PREFIX}-minion-.{4}" --format='value(name)') ) + --filter="name ~ '${INSTANCE_PREFIX}-minion-.{4}'" --format='value(name)') ) if (( "${#routes[@]}" > 0 )); then KUBE_RESOURCE_FOUND="${#routes[@]} routes matching ${INSTANCE_PREFIX}-minion-.{4}" return 1 diff --git a/cluster/validate-cluster.sh b/cluster/validate-cluster.sh index da3cbcdc14e..77e2755c0d0 100755 --- a/cluster/validate-cluster.sh +++ b/cluster/validate-cluster.sh @@ -56,8 +56,8 @@ if [[ "${KUBERNETES_PROVIDER:-}" == "gce" ]]; then echo "Validating gce cluster, MULTIZONE=${MULTIZONE:-}" # In multizone mode we need to add instances for all nodes in the region. if [[ "${MULTIZONE:-}" == "true" ]]; then - EXPECTED_NUM_NODES=$(gcloud -q compute instances list --project="${PROJECT}" --format=[no-heading] --regexp="${NODE_INSTANCE_PREFIX}.*" \ - --zones=$(gcloud -q compute zones list --project="${PROJECT}" --filter=region=${REGION} --format=csv[no-heading]\(name\) | tr "\n" "," | sed "s/,$//") | wc -l) + EXPECTED_NUM_NODES=$(gcloud -q compute instances list --project="${PROJECT}" --format=[no-heading] \ + --filter="name ~ '${NODE_INSTANCE_PREFIX}.*' AND zone:($(gcloud -q compute zones list --project="${PROJECT}" --filter=region=${REGION} --format=csv[no-heading]\(name\) | tr "\n" "," | sed "s/,$//"))" | wc -l) echo "Computing number of nodes, NODE_INSTANCE_PREFIX=${NODE_INSTANCE_PREFIX}, REGION=${REGION}, EXPECTED_NUM_NODES=${EXPECTED_NUM_NODES}" fi fi diff --git a/hack/make-rules/test-e2e-node.sh b/hack/make-rules/test-e2e-node.sh index 8c1e2e1158e..1cff4c85d8e 100755 --- a/hack/make-rules/test-e2e-node.sh +++ b/hack/make-rules/test-e2e-node.sh @@ -76,7 +76,7 @@ if [ $remote = true ] ; then if [[ $hosts == "" && $images == "" && $image_config_file == "" ]]; then image_project=${IMAGE_PROJECT:-"cos-cloud"} gci_image=$(gcloud compute images list --project $image_project \ - --no-standard-images --regexp="cos-beta.*" --format="table[no-heading](name)") + --no-standard-images --filter="name ~ 'cos-beta.*'" --format="table[no-heading](name)") images=$gci_image metadata="user-data<${KUBE_ROOT}/test/e2e_node/jenkins/gci-init.yaml,gci-update-strategy=update_disabled" fi diff --git a/test/e2e/framework/ingress_utils.go b/test/e2e/framework/ingress_utils.go index 5aa5cbc1160..bbb5223ebec 100644 --- a/test/e2e/framework/ingress_utils.go +++ b/test/e2e/framework/ingress_utils.go @@ -763,7 +763,7 @@ func gcloudComputeResourceList(resource, regex, project string, out interface{}) // so we only look at stdout. command := []string{ "compute", resource, "list", - fmt.Sprintf("--regexp=%q", regex), + fmt.Sprintf("--filter='name ~ \"%q\"'", regex), fmt.Sprintf("--project=%v", project), "-q", "--format=json", }