(List (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /../..]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/][VarSub KUBE_CONFIG_FILE test_op=VS_TEST_HYPHEN {[DQ [LIT_CHARS config-default.sh]]}]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/common.sh]]} ) (FunctionDef detect-master [] (List (= scope= flags=0 words=[] bindings=[('KUBE_MASTER_IP', {[VarSub MASTER_IP]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBE_MASTER_IP: "][VarSub KUBE_MASTER_IP]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (FunctionDef detect-nodes [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Nodes already detected"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('KUBE_NODE_IP_ADDRESSES', {[Array {[DQ [VarSub NODE_IPS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]})]) ) ) (FunctionDef verify-prereqs [] (List (For x [{[LIT_CHARS vagrant]}]) (If (Pipeline! (Com {[LIT_CHARS which]} {[DQ [VarSub x]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find "][VarSub x][LIT_CHARS " in PATH, please fix and retry."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('vagrant_plugins', {[ComSub (Pipeline (Com {[LIT_CHARS vagrant]} {[LIT_CHARS plugin]} {[LIT_CHARS list]}) (Com {[LIT_CHARS sed]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('providers', {[Array {OP_NEWLINE "\n"} {[SQ ]} {[LIT_CHARS vmware_fusion]} {[LIT_CHARS vagrant-vmware-fusion]} {OP_NEWLINE "\n"} {[SQ ]} {[LIT_CHARS vmware_workstation]} {[LIT_CHARS vagrant-vmware-workstation]} {OP_NEWLINE "\n"} {[LIT_CHARS prlctl]} {[LIT_CHARS parallels]} {[LIT_CHARS vagrant-parallels]} {OP_NEWLINE "\n"} {[LIT_CHARS VBoxManage]} {[LIT_CHARS virtualbox]} {[SQ ]} {OP_NEWLINE "\n"} {[LIT_CHARS virsh]} {[LIT_CHARS libvirt]} {[LIT_CHARS vagrant-libvirt]} {OP_NEWLINE "\n"} {[SQ ]} {[LIT_CHARS vsphere]} {[LIT_CHARS vagrant-vsphere]} {OP_NEWLINE "\n"}]})]) (= scope= flags=0 words=[] bindings=[('provider_found', {[SQ ]})]) (= scope= flags=0 words=[{[LIT_CHARS provider_bin]}] bindings=[]) (= scope= flags=0 words=[{[LIT_CHARS provider_name]}] bindings=[]) (= scope= flags=0 words=[{[LIT_CHARS provider_plugin_re]}] bindings=[]) (While (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub providers bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('provider_bin', {[VarSub providers bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]})]) (= scope= flags=0 words=[] bindings=[('provider_name', {[VarSub providers bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]})]) (= scope= flags=0 words=[] bindings=[('provider_plugin_re', {[VarSub providers bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}})]})]) (= scope= flags=0 words=[] bindings=[('providers', {[Array {[DQ [VarSub providers bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}} None]]]}]})]) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub VAGRANT_DEFAULT_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub VAGRANT_DEFAULT_PROVIDER]]} {[LIT_NEQUAL "!="]} {[DQ [VarSub provider_name]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (Com {[LIT_CHARS continue]} ) ) (If (AndOr OP_AND_IF (Subshell (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub provider_bin]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS which]} {[DQ [VarSub provider_bin]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) ) (Subshell (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub provider_plugin_re]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub vagrant_plugins]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -E]} {[DQ [LIT_CHARS "^"][VarSub provider_plugin_re][LIT_OTHER "$"]]}) )]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) ) (List (= scope= flags=0 words=[] bindings=[('provider_found', {[DQ [VarSub provider_name]]})]) (Com {[LIT_CHARS break]} ) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub provider_found]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub VAGRANT_DEFAULT_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find the necessary components for the "][VarSub VAGRANT_DEFAULT_PROVIDER][LIT_CHARS " vagrant provider."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Possible reasons could be: "]]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [\ LIT_ESCAPED_CHAR "\\t"][LIT_CHARS "- vmrun utility is not in your path"]]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [\ LIT_ESCAPED_CHAR "\\t"][LIT_CHARS "- Vagrant plugin was not found."]]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[DQ [\ LIT_ESCAPED_CHAR "\\t"][LIT_CHARS "- VAGRANT_DEFAULT_PROVIDER is set, but not found."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Please fix and retry."]]} ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find the necessary components for any viable vagrant providers (e.g., virtualbox), please fix and retry."]]} ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=1 words=[] bindings=[('VAGRANT_CWD', {[DQ [VarSub KUBE_ROOT]]})]) (= scope= flags=1 words=[] bindings=[('USING_KUBE_SCRIPTS', {[LIT_CHARS true]})]) ) ) (FunctionDef ensure-temp-dir [] (If (DBracket {B1 UNARY_STRING_z {[VarSub KUBE_TEMP test_op=VS_TEST_HYPHEN {}]}}) (List (= scope= flags=1 words=[] bindings=[('KUBE_TEMP', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS -t]} {[LIT_CHARS kubernetes.XXXXXX]})]})]) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS EXIT]} ) ) ) ) (FunctionDef create-provision-scripts [] (List (Com {[LIT_CHARS ensure-temp-dir]} ) (Subshell (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#! /bin/bash"]]} ) (Com {[LIT_CHARS echo-kube-env]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_IP='"][VarSub MASTER_IP][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CONTAINER_ADDR='"][VarSub MASTER_CONTAINER_ADDR][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CONTAINER_NETMASK='"][VarSub MASTER_CONTAINER_NETMASK][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/provision-utils.sh]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/provision-network-master.sh]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/provision-master.sh]]} ) ) ) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (Subshell (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#! /bin/bash"]]} ) (Com {[LIT_CHARS echo-kube-env]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_NAME=("][VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})][LIT_CHARS ")"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_IP='"][VarSub NODE_IPS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_ID='"][VarSub i][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CONTAINER_ADDR='"][VarSub NODE_CONTAINER_ADDRS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CONTAINER_NETMASK='"][VarSub NODE_CONTAINER_NETMASKS bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/provision-utils.sh]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/provision-network-node.sh]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/vagrant/provision-node.sh]]} ) ) ) ) ) ) (FunctionDef echo-kube-env [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBE_ROOT=/vagrant"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "INSTANCE_PREFIX='"][VarSub INSTANCE_PREFIX][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MASTER_NAME='"][VarSub INSTANCE_PREFIX][LIT_CHARS "-master'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MASTER_IP='"][VarSub MASTER_IP][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_NAMES=("][VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS ")"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_IPS=("][VarSub NODE_IPS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS ")"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "DEFAULT_NETWORK_IF_NAME="][VarSub DEFAULT_NETWORK_IF_NAME]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CONTAINER_SUBNET='"][VarSub CONTAINER_SUBNET][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CLUSTER_IP_RANGE='"][VarSub CLUSTER_IP_RANGE][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MASTER_CONTAINER_SUBNET='"][VarSub MASTER_CONTAINER_SUBNET][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_CONTAINER_NETMASKS='"][VarSub NODE_CONTAINER_NETMASKS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NODE_CONTAINER_SUBNETS=("][VarSub NODE_CONTAINER_SUBNETS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS ")"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "SERVICE_CLUSTER_IP_RANGE='"][VarSub SERVICE_CLUSTER_IP_RANGE][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MASTER_USER='"][VarSub MASTER_USER][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MASTER_PASSWD='"][VarSub MASTER_PASSWD][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBE_USER='"][VarSub KUBE_USER][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBE_PASSWORD='"][VarSub KUBE_PASSWORD][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBE_BEARER_TOKEN='"][VarSub KUBE_BEARER_TOKEN][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_CLUSTER_MONITORING='"][VarSub ENABLE_CLUSTER_MONITORING][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_CLUSTER_LOGGING='"][VarSub ENABLE_CLUSTER_LOGGING test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ELASTICSEARCH_LOGGING_REPLICAS='"][VarSub ELASTICSEARCH_LOGGING_REPLICAS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 1]}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_NODE_LOGGING='"][VarSub ENABLE_NODE_LOGGING test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_CLUSTER_UI='"][VarSub ENABLE_CLUSTER_UI][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_HOSTPATH_PROVISIONER='"][VarSub ENABLE_HOSTPATH_PROVISIONER test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "LOGGING_DESTINATION='"][VarSub LOGGING_DESTINATION test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_CLUSTER_DNS='"][VarSub ENABLE_CLUSTER_DNS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "DNS_SERVER_IP='"][VarSub DNS_SERVER_IP test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "DNS_DOMAIN='"][VarSub DNS_DOMAIN test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "DNS_REPLICAS='"][VarSub DNS_REPLICAS test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "RUNTIME_CONFIG='"][VarSub RUNTIME_CONFIG test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ADMISSION_CONTROL='"][VarSub ADMISSION_CONTROL test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "DOCKER_OPTS='"][VarSub EXTRA_DOCKER_OPTS test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "VAGRANT_DEFAULT_PROVIDER='"][VarSub VAGRANT_DEFAULT_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBELET_TOKEN='"][VarSub KUBELET_TOKEN test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBE_PROXY_TOKEN='"][VarSub KUBE_PROXY_TOKEN test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "MASTER_EXTRA_SANS='"][VarSub MASTER_EXTRA_SANS test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ENABLE_CPU_CFS_QUOTA='"][VarSub ENABLE_CPU_CFS_QUOTA][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "NETWORK_PROVIDER='"][VarSub NETWORK_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "OPENCONTRAIL_TAG='"][VarSub OPENCONTRAIL_TAG test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "OPENCONTRAIL_KUBERNETES_TAG='"][VarSub OPENCONTRAIL_KUBERNETES_TAG test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "OPENCONTRAIL_PUBLIC_SUBNET='"][VarSub OPENCONTRAIL_PUBLIC_SUBNET test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "E2E_STORAGE_TEST_ENVIRONMENT='"][VarSub E2E_STORAGE_TEST_ENVIRONMENT test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "CUSTOM_FEDORA_REPOSITORY_URL='"][VarSub CUSTOM_FEDORA_REPOSITORY_URL test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "EVICTION_HARD='"][VarSub EVICTION_HARD test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "'"]]} ) ) ) (FunctionDef verify-cluster [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Each machine instance has been created/updated."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Now waiting for the Salt provisioning process to complete on each machine."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " This can take some time based on your network, disk, and cpu speed."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " It is possible for an error to occur during Salt provision of cluster and this could loop forever."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Validating master"]]} ) (= scope= flags=0 words=[] bindings=[('machine', {[DQ [LIT_CHARS master]]})]) (= scope= flags=0 words=[{[LIT_CHARS -a]}] bindings=[('required_processes', {[Array {[DQ [LIT_CHARS kube-apiserver]]} {[DQ [LIT_CHARS kube-scheduler]]} {[DQ [LIT_CHARS kube-controller-manager]]} {[DQ [LIT_CHARS kubelet]]} {[DQ [LIT_CHARS docker]]}]})]) (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 1]]})]) (While (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub validated]]} {[DQ [LIT_CHARS 0]]}}) (List (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 0]]})]) (For process [{[DQ [VarSub required_processes bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (AndOr OP_OR_IF (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[DQ [VarSub machine]]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "pgrep -f "][VarSub process]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS .]]} ) (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 1]]})]) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 2]} ) ) ) ) ) ) (= scope= flags=0 words=[{[LIT_CHARS i]}] bindings=[]) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Validating "][VarSub VAGRANT_NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]]} ) (= scope= flags=0 words=[] bindings=[('machine', {[VarSub VAGRANT_NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]})]) (= scope= flags=0 words=[{[LIT_CHARS -a]}] bindings=[('required_processes', {[Array {[DQ [LIT_CHARS kube-proxy]]} {[DQ [LIT_CHARS kubelet]]} {[DQ [LIT_CHARS docker]]}]})]) (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 1]]})]) (While (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub validated]]} {[DQ [LIT_CHARS 0]]}}) (List (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 0]]})]) (For process [{[DQ [VarSub required_processes bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (AndOr OP_OR_IF (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[DQ [VarSub machine]]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "pgrep -f "][VarSub process]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS .]]} ) (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 1]]})]) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 2]} ) ) ) ) ) ) ) ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for each node to be registered with cloud provider"]]} ) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (List (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 0]]})]) (While (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub validated]]} {[DQ [LIT_CHARS 1]]}}) (List (= scope= flags=0 words=[] bindings=[('nodes', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS get]} {[LIT_CHARS nodes]} {[LIT_CHARS -o]} {[LIT_CHARS name]} {[LIT_CHARS --api-version] [LIT_DBRACKET_LIKE "="] [LIT_CHARS v1]})]})]) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('validated', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub nodes]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -c]} {[DQ [VarSub NODE_NAMES bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]]}) )]})]) (List (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS .]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 2]} ) (= scope= flags=0 words=[] bindings=[('validated', {[DQ [LIT_CHARS 0]]})]) ) ) ) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Validating we can run kubectl commands."]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS master]} {[LIT_CHARS --command]} {[DQ [LIT_CHARS "kubectl get pods"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "WARNING: kubectl to localhost failed. This could mean localhost is not bound to an IP"]]} ) ) (Subshell (List (Com {[LIT_CHARS get-kubeconfig-basicauth]} ) (Com {[LIT_CHARS get-kubeconfig-bearertoken]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Kubernetes cluster is running."]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The master is running at:"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " https://"][VarSub MASTER_IP]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Administer and visualize its resources using Cockpit:"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " https://"][VarSub MASTER_IP][LIT_CHARS ":9090"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For more information on Cockpit, visit http://cockpit-project.org"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The user name and password to use is located in "][VarSub KUBECONFIG]]} ) (Com {[LIT_CHARS echo]} ) ) ) ) ) (FunctionDef kube-up [] (List (Com {[LIT_CHARS load-or-gen-kube-basicauth]} ) (Com {[LIT_CHARS load-or-gen-kube-bearertoken]} ) (Com {[LIT_CHARS get-tokens]} ) (Com {[LIT_CHARS create-provision-scripts]} ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS up]} {[LIT_CHARS --no-parallel]} ) (= scope= flags=1 words=[] bindings=[('KUBE_CERT', {[DQ [LIT_CHARS /tmp/][VarSub RANDOM][LIT_CHARS -kubecfg.crt]]})]) (= scope= flags=1 words=[] bindings=[('KUBE_KEY', {[DQ [LIT_CHARS /tmp/][VarSub RANDOM][LIT_CHARS -kubecfg.key]]})]) (= scope= flags=1 words=[] bindings=[('CA_CERT', {[DQ [LIT_CHARS /tmp/][VarSub RANDOM][LIT_CHARS -kubernetes.ca.crt]]})]) (= scope= flags=1 words=[] bindings=[('CONTEXT', {[DQ [LIT_CHARS vagrant]]})]) (Subshell (List (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]} ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS master]} {[LIT_CHARS --]} {[LIT_CHARS sudo]} {[LIT_CHARS cat]} {[LIT_CHARS /srv/kubernetes/kubecfg.crt]} < (FilenameRedirectNode filename={[DQ [VarSub KUBE_CERT]]} "> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS master]} {[LIT_CHARS --]} {[LIT_CHARS sudo]} {[LIT_CHARS cat]} {[LIT_CHARS /srv/kubernetes/kubecfg.key]} < (FilenameRedirectNode filename={[DQ [VarSub KUBE_KEY]]} "> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[LIT_CHARS master]} {[LIT_CHARS --]} {[LIT_CHARS sudo]} {[LIT_CHARS cat]} {[LIT_CHARS /srv/kubernetes/ca.crt]} < (FilenameRedirectNode filename={[DQ [VarSub CA_CERT]]} "> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS create-kubeconfig]} ) (Com {[LIT_CHARS create-kubeconfig-for-federation]} ) ) ) (Com {[LIT_CHARS verify-cluster]} ) ) ) (FunctionDef kube-down [] (Com {[LIT_CHARS vagrant]} {[LIT_CHARS destroy]} {[LIT_CHARS -f]} ) ) (FunctionDef kube-push [] (List (Com {[LIT_CHARS get-kubeconfig-basicauth]} ) (Com {[LIT_CHARS get-kubeconfig-bearertoken]} ) (Com {[LIT_CHARS create-provision-scripts]} ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS provision]} ) ) ) (FunctionDef test-build-release [] (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /build-tools/release.sh]]} ) ) (FunctionDef test-setup [] (List (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kube-up.sh]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Vagrant test setup complete"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (FunctionDef test-teardown [] (Com {[LIT_CHARS kube-down]} ) ) (FunctionDef find-vagrant-name-by-ip [] (List (= scope= flags=0 words=[] bindings=[('ip', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('ip_pattern', {[DQ [VarSub NODE_IP_BASE][LIT_CHARS "(.*)"]]})]) (AndOr OP_OR_IF (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub ip]} {[VarSub ip_pattern]}}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS node-][ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub BASH_REMATCH bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]]} ) ) ) (FunctionDef find-vagrant-name-by-node-name [] (List (= scope= flags=0 words=[] bindings=[('ip', {[DQ [VarSub 1]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub ip]]} {[DQ [VarSub INSTANCE_PREFIX][LIT_CHARS -master]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS master]]} ) (Com {[LIT_CHARS return]} {[VarSub ?]} ) ) ) (= scope= flags=0 words=[] bindings=[('ip_pattern', {[DQ [VarSub INSTANCE_PREFIX][LIT_CHARS "-node-(.*)"]]})]) (AndOr OP_OR_IF (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub ip]} {[VarSub ip_pattern]}}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS node-][VarSub BASH_REMATCH bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]]} ) ) ) (FunctionDef ssh-to-node [] (List (= scope= flags=0 words=[] bindings=[('node', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('cmd', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[{[LIT_CHARS machine]}] bindings=[]) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('machine', {[ComSub (Com {[LIT_CHARS find-vagrant-name-by-ip]} {[VarSub node]})]})]) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (DBracket {B1 UNARY_STRING_n {[VarSub machine test_op=VS_TEST_HYPHEN {}]}}) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('machine', {[ComSub (Com {[LIT_CHARS find-vagrant-name-by-node-name]} {[VarSub node]})]})]) (Com {[LIT_CHARS true]} ) ) ) (AndOr OP_OR_IF (DBracket {B1 UNARY_STRING_n {[VarSub machine test_op=VS_TEST_HYPHEN {}]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Cannot find machine to ssh to: "][VarSub 1]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS vagrant]} {[LIT_CHARS ssh]} {[DQ [VarSub machine]]} {[LIT_CHARS -c]} {[DQ [VarSub cmd]]} ) ) ) (FunctionDef prepare-e2e [] (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Vagrant doesn't need special preparations for e2e tests"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) (FunctionDef get-tokens [] (List (= 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] =}) )]})]) ) ) )