(List (= scope= flags=0 words=[] bindings=[('TMP_ROOT', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})][LIT_CHARS /../..]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS readlink]} {[LIT_CHARS -e]} {[VarSub TMP_ROOT]}) (Com {[LIT_CHARS perl]} {[LIT_CHARS -MCwd]} {[LIT_CHARS -e]} {[SQ ]} {[VarSub TMP_ROOT]}) )]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /test/kubemark/common.sh]]} ) (FunctionDef writeEnvironmentFiles [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /apiserver_flags]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [VarSub APISERVER_TEST_ARGS][LIT_CHARS "\n"][LIT_CHARS "--storage-backend="][VarSub STORAGE_BACKEND][LIT_CHARS "\n"][LIT_CHARS "--service-cluster-ip-range="][RIGHT_D_QUOTE "\""][VarSub SERVICE_CLUSTER_IP_RANGE][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i] [SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS //g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /apiserver_flags]]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /scheduler_flags]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [VarSub SCHEDULER_TEST_ARGS][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i] [SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS //g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /scheduler_flags]]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /controllers_flags]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [VarSub CONTROLLER_MANAGER_TEST_ARGS][LIT_CHARS "\n"][LIT_CHARS "--allocate-node-cidrs="][RIGHT_D_QUOTE "\""][VarSub ALLOCATE_NODE_CIDRS][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "--cluster-cidr="][RIGHT_D_QUOTE "\""][VarSub CLUSTER_IP_RANGE][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "--service-cluster-ip-range="][RIGHT_D_QUOTE "\""][VarSub SERVICE_CLUSTER_IP_RANGE][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "--terminated-pod-gc-threshold="][RIGHT_D_QUOTE "\""][VarSub TERMINATED_POD_GC_THRESHOLD][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i] [SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS //g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /controllers_flags]]} ) ) ) (= scope= flags=0 words=[] bindings=[('MAKE_DIR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/images/kubemark]]})]) (= scope= flags=0 words=[] bindings=[('KUBEMARK_BIN', {[DQ [ComSub (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS find-binary-for-platform]} {[LIT_CHARS kubemark]} {[LIT_CHARS linux/amd64]})]]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBEMARK_BIN]]}}) (List (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Copying kubemark to "][VarSub MAKE_DIR]]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub KUBEMARK_BIN]]} {[DQ [VarSub MAKE_DIR]]} ) (= scope= flags=0 words=[] bindings=[('CURR_DIR', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (Com {[LIT_CHARS cd]} {[DQ [VarSub MAKE_DIR]]} ) (= scope= flags=0 words=[] bindings=[('RETRIES', {[LIT_CHARS 3]})]) (For attempt [{[ComSub (Com {[LIT_CHARS seq]} {[LIT_CHARS 1]} {[VarSub RETRIES]})]}]) (If (Pipeline! (Com {[LIT_CHARS make]} ) ) (List (If (DBracket {B2 BINARY_INT_EQ {[ArithSub {A Atom NODE_ARITH_WORD {[VarSub attempt]}}]} {[DQ [VarSub RETRIES]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub color_red][LIT_CHARS "Make failed. Exiting."][VarSub color_norm]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [VarSub color_yellow][LIT_CHARS "Make attempt "][ArithSub {A Atom NODE_ARITH_WORD {[VarSub attempt]}}][LIT_CHARS " failed. Retrying."][VarSub color_norm]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS sleep]} {[ArithSub {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub attempt]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 5]}}}]} ) ) (ElseTrue) (Com {[LIT_CHARS break]} ) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS kubemark]} ) (Com {[LIT_CHARS cd]} {[VarSub CURR_DIR]} ) (= scope= flags=0 words=[] bindings=[('GCLOUD_COMMON_ARGS', {[DQ [LIT_CHARS "--project "][VarSub PROJECT][LIT_CHARS " --zone "][VarSub ZONE]]})]) (Com {[LIT_CHARS run-gcloud-compute-with-retries]} {[LIT_CHARS disks]} {[LIT_CHARS create]} {[DQ [VarSub MASTER_NAME][LIT_CHARS -pd]]} {[VarSub GCLOUD_COMMON_ARGS]} {[LIT_CHARS --type]} {[DQ [VarSub MASTER_DISK_TYPE]]} {[LIT_CHARS --size]} {[DQ [VarSub MASTER_DISK_SIZE]]} ) (Com {[LIT_CHARS run-gcloud-compute-with-retries]} {[LIT_CHARS addresses]} {[LIT_CHARS create]} {[DQ [VarSub MASTER_NAME][LIT_CHARS -ip]]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --region]} {[DQ [VarSub REGION]]} {[LIT_CHARS -q]} ) (= scope= flags=0 words=[] bindings=[('MASTER_IP', {[ComSub (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS addresses]} {[LIT_CHARS describe]} {[DQ [VarSub MASTER_NAME][LIT_CHARS -ip]]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --region]} {[DQ [VarSub REGION]]} {[LIT_CHARS -q]} {[LIT_CHARS --format] [LIT_DBRACKET_LIKE "="] [SQ ]})]})]) (Com {[LIT_CHARS run-gcloud-compute-with-retries]} {[LIT_CHARS instances]} {[LIT_CHARS create]} {[DQ [VarSub MASTER_NAME]]} {[VarSub GCLOUD_COMMON_ARGS]} {[LIT_CHARS --address]} {[DQ [VarSub MASTER_IP]]} {[LIT_CHARS --machine-type]} {[DQ [VarSub MASTER_SIZE]]} {[LIT_CHARS --image-project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub MASTER_IMAGE_PROJECT]]} {[LIT_CHARS --image]} {[DQ [VarSub MASTER_IMAGE]]} {[LIT_CHARS --tags]} {[DQ [VarSub MASTER_TAG]]} {[LIT_CHARS --network]} {[DQ [VarSub NETWORK]]} {[LIT_CHARS --scopes]} {[DQ [LIT_CHARS "storage-ro,compute-rw,logging-write"]]} {[LIT_CHARS --boot-disk-size]} {[DQ [VarSub MASTER_ROOT_DISK_SIZE]]} {[LIT_CHARS --disk]} {[DQ [LIT_CHARS "name="][VarSub MASTER_NAME][LIT_CHARS "-pd,device-name=master-pd,mode=rw,boot=no,auto-delete=no"]]} ) (Com {[LIT_CHARS run-gcloud-compute-with-retries]} {[LIT_CHARS firewall-rules]} {[LIT_CHARS create]} {[DQ [VarSub INSTANCE_PREFIX][LIT_CHARS -kubemark-master-https]]} {[LIT_CHARS --project]} {[DQ [VarSub PROJECT]]} {[LIT_CHARS --network]} {[DQ [VarSub NETWORK]]} {[LIT_CHARS --source-ranges]} {[DQ [LIT_CHARS 0.0.0.0/0]]} {[LIT_CHARS --target-tags]} {[DQ [VarSub MASTER_TAG]]} {[LIT_CHARS --allow]} {[DQ [LIT_CHARS "tcp:443"]]} ) (Com {[LIT_CHARS ensure-temp-dir]} ) (Com {[LIT_CHARS gen-kube-bearertoken]} ) (Com {[LIT_CHARS create-certs]} {[VarSub MASTER_IP]} ) (= scope= flags=0 words=[] bindings=[('KUBELET_TOKEN', {[ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "if="] [LIT_CHARS /dev/urandom] =} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 128] =} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS "=+/"]]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 32] =} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBE_PROXY_TOKEN', {[ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "if="] [LIT_CHARS /dev/urandom] =} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 128] =} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS "=+/"]]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 32] =} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =}) )]})]) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub CA_CERT_BASE64]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /ca.crt]]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBECFG_CERT_BASE64]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /kubecfg.crt]]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBECFG_KEY_BASE64]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /kubecfg.key]]} "> 1), > ) ) (While (List (Fork (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS ssh]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[DQ [VarSub MASTER_NAME]]} {[LIT_CHARS --command] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS ls]]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) (= scope= flags=0 words=[] bindings=[('password', {[ComSub (Com {[LIT_CHARS python]} {[LIT_CHARS -c]} {[SQ ]})]})]) (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS ssh]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[DQ [VarSub MASTER_NAME]]} {[LIT_CHARS --command] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "sudo mkdir /srv/kubernetes -p && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][VarSub MASTER_CERT_BASE64][LIT_CHARS " | base64 --decode > /srv/kubernetes/server.cert"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][VarSub MASTER_KEY_BASE64][LIT_CHARS " | base64 --decode > /srv/kubernetes/server.key"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][VarSub CA_CERT_BASE64][LIT_CHARS " | base64 --decode > /srv/kubernetes/ca.crt"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][VarSub KUBECFG_CERT_BASE64][LIT_CHARS " | base64 --decode > /srv/kubernetes/kubecfg.crt"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][VarSub KUBECFG_KEY_BASE64][LIT_CHARS " | base64 --decode > /srv/kubernetes/kubecfg.key"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\\""][VarSub KUBE_BEARER_TOKEN][LIT_CHARS ",admin,admin"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " > /srv/kubernetes/known_tokens.csv"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\\""][VarSub KUBELET_TOKEN][LIT_CHARS ",kubelet,kubelet"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " >> /srv/kubernetes/known_tokens.csv"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\\""][VarSub KUBE_PROXY_TOKEN][LIT_CHARS ",kube_proxy,kube_proxy"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " >> /srv/kubernetes/known_tokens.csv"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " && "][LIT_CHARS " sudo bash -c "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "echo "][VarSub password][LIT_CHARS ",admin,admin > /srv/kubernetes/basic_auth.csv"][\ LIT_ESCAPED_CHAR "\\\""]]} ) (Com {[LIT_CHARS writeEnvironmentFiles]} ) (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS copy-files]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[DQ [VarSub SERVER_BINARY_TAR]]} {[DQ [VarSub KUBEMARK_DIRECTORY][LIT_CHARS /start-kubemark-master.sh]]} {[DQ [VarSub KUBEMARK_DIRECTORY][LIT_CHARS /configure-kubectl.sh]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /apiserver_flags]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /scheduler_flags]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /controllers_flags]]} {[DQ [VarSub MASTER_NAME]] [LIT_OTHER ":"] [LIT_TILDE "~"]} ) (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS ssh]} {[DQ [VarSub MASTER_NAME]]} {[LIT_CHARS --zone] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ZONE]]} {[LIT_CHARS --project] [LIT_DBRACKET_LIKE "="] [DQ [VarSub PROJECT]]} {[LIT_CHARS --command] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "chmod a+x configure-kubectl.sh && chmod a+x start-kubemark-master.sh && "][LIT_CHARS " sudo ./start-kubemark-master.sh "][VarSub EVENT_STORE_IP test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 127.0.0.1]}][LIT_CHARS " "][VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 0]}][LIT_CHARS " "][VarSub ETCD_VERSION test_op=VS_TEST_COLON_HYPHEN {}]]} ) (= scope= flags=0 words=[] bindings=[('KUBECONFIG_CONTENTS', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "apiVersion: v1\n"][LIT_CHARS "kind: Config\n"][LIT_CHARS "users:\n"][LIT_CHARS "- name: kubelet\n"][LIT_CHARS " user:\n"][LIT_CHARS " client-certificate-data: "]] [VarSub KUBELET_CERT_BASE64] [DQ [LIT_CHARS "\n"][LIT_CHARS " client-key-data: "]] [VarSub KUBELET_KEY_BASE64] [DQ [LIT_CHARS "\n"][LIT_CHARS "clusters:\n"][LIT_CHARS "- name: kubemark\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " certificate-authority-data: "]] [VarSub CA_CERT_BASE64] [DQ [LIT_CHARS "\n"][LIT_CHARS " server: https://"][VarSub MASTER_IP][LIT_CHARS "\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: kubemark\n"][LIT_CHARS " user: kubelet\n"][LIT_CHARS " name: kubemark-context\n"][LIT_CHARS "current-context: kubemark-context"]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\r"]]}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBECONFIG_SECRET', {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /kubeconfig_secret.json]]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub KUBECONFIG_SECRET]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "{\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS apiVersion][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS v1][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS kind][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS Secret][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS metadata][RIGHT_D_QUOTE "\""][LIT_CHARS ": {\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS name][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS kubeconfig][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " },\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS type][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS Opaque][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS data][RIGHT_D_QUOTE "\""][LIT_CHARS ": {\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS kubeconfig][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][VarSub KUBECONFIG_CONTENTS][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (= scope= flags=0 words=[] bindings=[('NODE_CONFIGMAP', {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /node_config_map.json]]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub NODE_CONFIGMAP]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "{\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS apiVersion][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS v1][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS kind][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS ConfigMap][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS metadata][RIGHT_D_QUOTE "\""][LIT_CHARS ": {\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS name][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][LIT_CHARS node-configmap][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " },\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS data][RIGHT_D_QUOTE "\""][LIT_CHARS ": {\n"][LIT_CHARS " "][RIGHT_D_QUOTE "\""][LIT_CHARS content.type][RIGHT_D_QUOTE "\""][LIT_CHARS ": "][RIGHT_D_QUOTE "\""][VarSub TEST_CLUSTER_API_CONTENT_TYPE][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) (= scope= flags=0 words=[] bindings=[('LOCAL_KUBECONFIG', {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /kubeconfig.kubemark]]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub LOCAL_KUBECONFIG]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "apiVersion: v1\n"][LIT_CHARS "kind: Config\n"][LIT_CHARS "users:\n"][LIT_CHARS "- name: admin\n"][LIT_CHARS " user:\n"][LIT_CHARS " client-certificate-data: "][RIGHT_D_QUOTE "\""][VarSub KUBECFG_CERT_BASE64][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " client-key-data: "][RIGHT_D_QUOTE "\""][VarSub KUBECFG_KEY_BASE64][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " username: admin\n"][LIT_CHARS " password: admin\n"][LIT_CHARS "clusters:\n"][LIT_CHARS "- name: kubemark\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " certificate-authority-data: "][RIGHT_D_QUOTE "\""][VarSub CA_CERT_BASE64][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS " server: https://"][VarSub MASTER_IP][LIT_CHARS "\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: kubemark\n"][LIT_CHARS " user: admin\n"][LIT_CHARS " name: kubemark-context\n"][LIT_CHARS "current-context: kubemark-context\n"]]} 0), > ) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s/##numreplicas##/"][VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 10]}][LIT_CHARS /g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /hollow-node_template.json]]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /hollow-node.json]]} "> 1), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i] [SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/##project##/"][VarSub PROJECT][LIT_CHARS /g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /hollow-node.json]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /addons]]} ) (Com {[LIT_CHARS true]} ) ) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s/##MASTER_IP##/"][VarSub MASTER_IP][LIT_CHARS /g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /heapster_template.json]]} < (FilenameRedirectNode filename={[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /addons/heapster.json]]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('metrics_mem_per_node', {[LIT_CHARS 4]})]) (= scope= flags=0 words=[] bindings=[('metrics_mem', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 200]}} {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub metrics_mem_per_node]}} {A Atom NODE_ARITH_WORD {[VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 10]}]}}}}]})]) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i] [SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/##METRICS_MEM##/"][VarSub metrics_mem][LIT_CHARS /g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /addons/heapster.json]]} ) (= scope= flags=0 words=[] bindings=[('eventer_mem_per_node', {[LIT_CHARS 500]})]) (= scope= flags=0 words=[] bindings=[('eventer_mem', {[ArithSub {A2 AS_OP_PLUS {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 200]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1024]}}} {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub eventer_mem_per_node]}} {A Atom NODE_ARITH_WORD {[VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 10]}]}}}}]})]) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i] [SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/##EVENTER_MEM##/"][VarSub eventer_mem][LIT_CHARS /g]]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /addons/heapster.json]]} ) (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /kubemark-ns.json]]} ) (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[DQ [VarSub KUBECONFIG_SECRET]]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS kubemark]]} ) (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[DQ [VarSub NODE_CONFIGMAP]]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS kubemark]]} ) (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /addons]]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS kubemark]]} ) (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[DQ [VarSub RESOURCE_DIRECTORY][LIT_CHARS /hollow-node.json]]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS kubemark]]} ) (Com {[LIT_CHARS rm]} {[DQ [VarSub KUBECONFIG_SECRET]]} ) (Com {[LIT_CHARS rm]} {[DQ [VarSub NODE_CONFIGMAP]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for all HollowNodes to become Running..."]]} ) (= scope= flags=0 words=[] bindings=[('start', {[ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]})]) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('nodes', {[ComSub (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS --kubeconfig] [LIT_DBRACKET_LIKE "="] [DQ [VarSub LOCAL_KUBECONFIG]]} {[LIT_CHARS get]} {[LIT_CHARS node]})]})]) (Com {[LIT_CHARS true]} ) ) (= scope= flags=0 words=[] bindings=[('ready', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub nodes]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS NotReady]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (While (DBracket {B2 BINARY_INT_GE {[DQ [VarSub ready]]} {[DQ [VarSub NUM_NODES]]}}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS .]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) (= scope= flags=0 words=[] bindings=[('now', {[ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub now]}} {A Atom NODE_ARITH_WORD {[VarSub start]}}}]} {[LIT_CHARS -gt]} {[LIT_CHARS 1800]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ ]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Timeout waiting for all HollowNodes to become Running"]]} ) (If (List (Fork (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS --kubeconfig] [LIT_DBRACKET_LIKE "="] [DQ [VarSub LOCAL_KUBECONFIG]]} {[LIT_CHARS get]} {[LIT_CHARS node]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Found only "][VarSub ready][LIT_CHARS " ready Nodes while waiting for "][VarSub NUM_NODES][LIT_CHARS .]]} ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Got error while trying to list Nodes. Probably API server is down."]]} ) ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('pods', {[ComSub (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS get]} {[LIT_CHARS pods]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [LIT_CHARS kubemark]})]})]) (Com {[LIT_CHARS true]} ) ) (= scope= flags=0 words=[] bindings=[('running', {[ArithSub {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub pods]]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS Running]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}}]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub running][LIT_CHARS " HollowNode pods are reported as 'Running'"]]} ) (= scope= flags=0 words=[] bindings=[('not_running', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub pods]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS Running]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub not_running][LIT_CHARS " HollowNode pods are reported as NOT 'Running'"]]} ) (Com {[LIT_CHARS echo]} {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub pods]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS Running]]}) )]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('nodes', {[ComSub (Com {[DQ [VarSub KUBECTL]]} {[LIT_CHARS --kubeconfig] [LIT_DBRACKET_LIKE "="] [DQ [VarSub LOCAL_KUBECONFIG]]} {[LIT_CHARS get]} {[LIT_CHARS node]})]})]) (Com {[LIT_CHARS true]} ) ) (= scope= flags=0 words=[] bindings=[('ready', {[ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub nodes]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS NotReady]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ ]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Password to kubemark master: "][VarSub password]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Kubeconfig for kubemark master is written in "][VarSub LOCAL_KUBECONFIG]]} ) )