(CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} { (BracedVarSub token: <VSub_Name UTIL_SH_DEBUG> suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(x)}) spids: [54 58] ) } {(Lit_Other "]")} ) (C {(set)} {(-x)}) ] op_id: Op_DAmp ) (AndOr children: [ (SimpleCommand words: [{(command)} {(-v)} {(kubectl)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[75]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[78]) ] ) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ("kubectl not found in path. Aborting."))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[87])] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [83] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub "$("> spids: [104 112] ) (/../..) } spids: [103] ) ] spids: [103] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub "$("> spids: [118 126] ) } spids: [117] ) ] spids: [115] ) (C {(source)} { (DQ ($ VSub_Name "$ROOT") (/) (BracedVarSub token: <VSub_Name KUBE_CONFIG_FILE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (config-default.sh))}) spids: [133 139] ) ) } ) (C {(source)} {(DQ ($ VSub_Name "$KUBE_ROOT") (/cluster/common.sh))}) (C {(export)} {(Lit_VarLike "LIBVIRT_DEFAULT_URI=") (qemu) (Lit_Other ":") (///system)}) (C {(export)} {(Lit_VarLike "SERVICE_ACCOUNT_LOOKUP=") (BracedVarSub token: <VSub_Name SERVICE_ACCOUNT_LOOKUP> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [160 164] ) } ) (C {(export)} {(Lit_VarLike "ADMISSION_CONTROL=") (BracedVarSub token: <VSub_Name ADMISSION_CONTROL> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { ( "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,ResourceQuota" ) } ) spids: [169 173] ) } ) (Assignment keyword: Assign_Readonly pairs: [(assign_pair lhs:(LhsName name:POOL) op:Equal rhs:{(kubernetes)} spids:[177])] spids: [175] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:POOL_PATH) op: Equal rhs: {(/var/lib/libvirt/images/kubernetes)} spids: [182] ) ] spids: [180] ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ (${ VSub_Name POOL_PATH))} {(Lit_Other "]")}) (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ($ VSub_Name "$POOL_PATH"))} {(does)} {(not)} {(exist)}) terminator: <Op_Semi ";"> ) (C {(exit)} {(1)}) ] ) spids: [202 221] ) ] op_id: Op_DAmp ) (FuncDef name: create-kubelet-kubeconfig body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:apiserver_address) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [241] ) ] spids: [239] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:destination) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [251] ) ] spids: [249] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: {(DQ (${ VSub_Name apiserver_address))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Must provide API server address to create Kubelet kubeconfig file!"))} ) (C {(exit)} {(1)}) ] spids: [-1 274] ) ] spids: [-1 289] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ (${ VSub_Name destination))}) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Must provide destination path to create Kubelet kubeconfig file!"))} ) (C {(exit)} {(1)}) ] spids: [-1 307] ) ] spids: [-1 322] ) (C {(echo)} {(DQ ("Creating Kubelet kubeconfig file"))}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dest_dir) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name destination))})] ) left_token: <Left_CommandSub "$("> spids: [336 344] ) ) } spids: [334] ) ] spids: [332] ) (Sentence child: (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name dest_dir))}) terminator: <Op_Amp "&"> ) (AndOr children: [ (SimpleCommand redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[359])] ) (C {(sudo)} {(mkdir)} {(-p)} {(DQ (${ VSub_Name dest_dir))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sudo) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (C {(test)} {(-w)} {(DQ (${ VSub_Name dest_dir))}) (C {(echo)} {(DQ ("sudo -E"))}) ] op_id: Op_DPipe ) ] ) left_token: <Left_CommandSub "$("> spids: [378 396] ) } spids: [377] ) ] spids: [377] ) (Pipeline children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("apiVersion: v1\n") ("kind: Config\n") ("clusters:\n") (" - cluster:\n") (" server: ") (${ VSub_Name apiserver_address) ("\n") (" name: local\n") ("contexts:\n") (" - context:\n") (" cluster: local\n") (" name: local\n") ("current-context: local\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [401] ) ] ) (SimpleCommand words: [{(${ VSub_Name sudo)} {(tee)} {(DQ (${ VSub_Name destination))}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[418])] ) ] negated: False ) ] spids: [236] ) spids: [230 235] ) (FuncDef name: join body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [464] ) ] spids: [462] ) (C {(shift)}) (C {(echo)} {(DQ ($ VSub_Star "$*"))}) ] spids: [459] ) spids: [455 458] ) (FuncDef name: detect-master body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_MASTER_IP) op: Equal rhs: {($ VSub_Name "$MASTER_IP")} spids: [492] ) ] spids: [492] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_MASTER) op: Equal rhs: {($ VSub_Name "$MASTER_NAME")} spids: [496] ) ] spids: [496] ) (C {(export)} {(Lit_VarLike "KUBERNETES_MASTER=") (http) (Lit_Other ":") (//) ($ VSub_Name "$KUBE_MASTER_IP") (Lit_Other ":") (8080) } ) (C {(echo)} {(DQ ("KUBE_MASTER_IP: ") ($ VSub_Name "$KUBE_MASTER_IP"))}) (C {(echo)} {(DQ ("KUBE_MASTER: ") ($ VSub_Name "$KUBE_MASTER"))}) ] spids: [489] ) spids: [485 488] ) (FuncDef name: detect-nodes body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_NODE_IP_ADDRESSES) op: Equal rhs: { (ArrayLiteralPart words: [ { (DQ (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (WholeArray op_id:Lit_At) spids: [542 547] ) ) } ] ) } spids: [539] ) ] spids: [539] ) ] spids: [536] ) spids: [532 535] ) (FuncDef name: generate_certs body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:node_names) op: Equal rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_At "@"))}])} spids: [561] ) ] spids: [561] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tempdir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-d)})]) left_token: <Left_CommandSub "$("> spids: [576 580] ) } spids: [575] ) ] spids: [575] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CA_KEY) op: Equal rhs: { (BracedVarSub token: <VSub_Name CA_KEY> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ($ VSub_Name "$tempdir") (/ca-key.pem))} ) spids: [584 591] ) } spids: [583] ) ] spids: [583] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CA_CERT) op: Equal rhs: { (BracedVarSub token: <VSub_Name CA_CERT> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ($ VSub_Name "$tempdir") (/ca.pem))} ) spids: [595 602] ) } spids: [594] ) ] spids: [594] ) (SimpleCommand words: [{(openssl)} {(genrsa)} {(-out)} {(DQ (${ VSub_Name CA_KEY))} {(2048)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[619])] ) (SimpleCommand words: [ {(openssl)} {(req)} {(-x509)} {(-new)} {(-nodes)} {(-key)} {(DQ (${ VSub_Name CA_KEY))} {(-days)} {(10000)} {(-out)} {(DQ (${ VSub_Name CA_CERT))} {(-subj)} {(DQ ("/CN=kube-ca"))} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[659])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_KEY) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_KEY> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ($ VSub_Name "$tempdir") (/apiserver-key.pem))} ) spids: [669 676] ) } spids: [668] ) ] spids: [668] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:API_SERVER_CERT_REQ) op: Equal rhs: { (BracedVarSub token: <VSub_Name API_SERVER_CERT_REQ> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ($ VSub_Name "$tempdir") (/apiserver.csr))} ) spids: [680 687] ) } spids: [679] ) ] spids: [679] ) (SimpleCommand words: [{(openssl)} {(genrsa)} {(-out)} {(DQ (${ VSub_Name KUBE_KEY))} {(2048)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[704])] ) (SimpleCommand words: [ {(openssl)} {(req)} {(-new)} {(-key)} {(DQ (${ VSub_Name KUBE_KEY))} {(-out)} {(DQ (${ VSub_Name API_SERVER_CERT_REQ))} {(-subj)} {(DQ ("/CN=kube-apiserver"))} {(-config)} {(cluster/libvirt-coreos/openssl.cnf)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[748])] more_env: [ (env_pair name: KUBERNETES_SVC val: { (BracedVarSub token: <VSub_Name SERVICE_CLUSTER_IP_RANGE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")}) spids: [709 713] ) (.1) } spids: [708] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_CERT) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_CERT> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ($ VSub_Name "$tempdir") (/apiserver.pem))} ) spids: [753 760] ) } spids: [752] ) ] spids: [752] ) (SimpleCommand words: [ {(openssl)} {(x509)} {(-req)} {(-in)} {(DQ (${ VSub_Name API_SERVER_CERT_REQ))} {(-CA)} {(DQ (${ VSub_Name CA_CERT))} {(-CAkey)} {(DQ (${ VSub_Name CA_KEY))} {(-CAcreateserial)} {(-out)} {(DQ (${ VSub_Name KUBE_CERT))} {(-days)} {(365)} {(-extensions)} {(v3_req)} {(-extfile)} {(cluster/libvirt-coreos/openssl.cnf)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[823])] more_env: [ (env_pair name: KUBERNETES_SVC val: { (BracedVarSub token: <VSub_Name SERVICE_CLUSTER_IP_RANGE> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")}) spids: [764 768] ) (.1) } spids: [763] ) ] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/certs))}) (C {(cp)} {(DQ (${ VSub_Name KUBE_CERT))} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/certs))} ) (C {(cp)} {(DQ (${ VSub_Name KUBE_KEY))} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/certs))} ) (C {(cp)} {(DQ (${ VSub_Name CA_CERT))} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/certs))}) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w:{($ VSub_Name "$NUM_NODES")}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (SimpleCommand words: [ {(openssl)} {(genrsa)} {(-out)} {($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [927 932] ) (-node-key.pem) } {(2048)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[937])] ) (C {(cp)} { (DQ ($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [946 951] ) (-node-key.pem) ) } {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/certs))} ) (SimpleCommand words: [ {(openssl)} {(req)} {(-new)} {(-key)} {($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [979 984] ) (-node-key.pem) } {(-out)} {($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [991 996] ) (-node.csr) } {(-subj)} { (DQ ("/CN=") (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1003 1008] ) ) } {(-config)} {(cluster/libvirt-coreos/node-openssl.cnf)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1015])] more_env: [ (env_pair name: WORKER_IP val: { (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [962 967] ) } spids: [961] ) ] ) (SimpleCommand words: [ {(openssl)} {(x509)} {(-req)} {(-in)} {($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1037 1042] ) (-node.csr) } {(-CA)} {(DQ (${ VSub_Name CA_CERT))} {(-CAkey)} {(DQ (${ VSub_Name CA_KEY))} {(-CAcreateserial)} {(-out)} {($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1067 1072] ) (-node.pem) } {(-days)} {(365)} {(-extensions)} {(v3_req)} {(-extfile)} {(cluster/libvirt-coreos/node-openssl.cnf)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1087])] more_env: [ (env_pair name: WORKER_IP val: { (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1020 1025] ) } spids: [1019] ) ] ) (C {(cp)} { (DQ ($ VSub_Name "$tempdir") (/) (BracedVarSub token: <VSub_Name node_names> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [1096 1101] ) (-node.pem) ) } {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/certs))} ) ] spids: [916 1111] ) ) (C {(echo)} {(DQ ("TLS assets generated..."))}) ] spids: [558] ) spids: [554 557] ) (FuncDef name: setup_registry_proxy body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$ENABLE_CLUSTER_REGISTRY"))} right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} {(DQ (./cluster/saltbase/salt/kube-registry-proxy/kube-registry-proxy.yaml))} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/manifests))} ) ] spids: [-1 1150] ) ] spids: [-1 1165] ) ] spids: [1130] ) spids: [1126 1129] ) (FuncDef name: verify-prereqs body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(which)} {(virsh)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1188] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("Can't find virsh in PATH, please fix and retry."))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1201])] ) (C {(exit)} {(1)}) ] spids: [-1 1192] ) ] spids: [-1 1210] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(virsh)} {(nodeinfo)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1221] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [(C {(exit)} {(1)})] spids: [-1 1225] ) ] spids: [-1 1233] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(/sys/kernel/mm/ksm/run)} spids: [1242] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [1241 1244] ) ) } right: {(DQ (1))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("KSM is not enabled"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1265])] ) (SimpleCommand words: [ {(echo)} {(DQ ("Enabling it would reduce the memory footprint of large clusters"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1275])] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_t child:{(0)})) terminator: <Op_Semi ";"> ) ] action: [ (C {(read)} {(-t)} {(5)} {(-n)} {(1)} {(-p)} {(DQ ("Do you want to enable KSM (requires root password) (y/n)? "))} {(answer)} ) (C {(echo)} {(DQ )}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$answer"))} right: {(SQ <y>)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(su)} {(-c)} {(SQ <"echo 1 > /sys/kernel/mm/ksm/run">)})] spids: [-1 1335] ) ] spids: [-1 1347] ) ] spids: [-1 1290] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ("You can enable it with (as root):"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1359])] ) (SimpleCommand words: [{(echo)} {(DQ )}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1368])] ) (SimpleCommand words: [{(echo)} {(DQ (" echo 1 > /sys/kernel/mm/ksm/run"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1378])] ) (SimpleCommand words: [{(echo)} {(DQ )}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1387])] ) ] spids: [1350 1391] ) ] spids: [-1 1256] ) ] spids: [-1 1394] ) ] spids: [1177] ) spids: [1173 1176] ) (FuncDef name: destroy-pool body: (BraceGroup children: [ (AndOr children: [ (SimpleCommand words: [{(virsh)} {(pool-info)} {($ VSub_Name "$POOL")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1427] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1430]) ] ) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$POOL_PATH")) (/kubernetes/) (Lit_Other "*")}) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$POOL_PATH")) (/kubernetes_config) (Lit_Other "*") (/) (Lit_Other "*")} ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:vol) op:Equal spids:[1465])] spids: [1463] ) (Pipeline children: [ (C {(virsh)} {(vol-list)} {($ VSub_Name "$POOL")}) (C {(awk)} {(SQ <"NR>2 && !/^$/ && $1 ~ /^kubernetes/ {print $1}">)}) (While cond: [(Sentence child:(C {(read)} {(vol)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (C {(virsh)} {(vol-delete)} {($ VSub_Name "$vol")} {(--pool)} {($ VSub_Name "$POOL")} ) ] spids: [1493 1507] ) ) ] negated: False ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Number "$1"))} right: {(SQ <keep_base_image>)} ) ) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DAmp ) (C {(set)} {(Lit_Other "+") (e)}) (C {(virsh)} {(vol-delete)} {(coreos_base.img)} {(--pool)} {($ VSub_Name "$POOL")}) (C {(virsh)} {(pool-destroy)} {($ VSub_Name "$POOL")}) (C {(rmdir)} {(DQ ($ VSub_Name "$POOL_PATH"))}) (C {(set)} {(-e)}) ] spids: [1418] ) spids: [1414 1417] ) (FuncDef name: initialize-pool body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$POOL_PATH"))}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(virsh)} {(pool-info)} {($ VSub_Name "$POOL")}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1604] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1607] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(virsh)} {(pool-create-as)} {($ VSub_Name "$POOL")} {(dir)} {(--target)} {(DQ ($ VSub_Name "$POOL_PATH"))} ) ] spids: [-1 1611] ) ] spids: [-1 1629] ) (C {(wget)} {(-N)} {(-P)} {(DQ ($ VSub_Name "$ROOT"))} {(https) (Lit_Other ":") (//) (BracedVarSub token: <VSub_Name COREOS_CHANNEL> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(alpha)}) spids: [1646 1650] ) (.release.core-os.net/amd64-usr/current/coreos_production_qemu_image.img.bz2) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_nt left: {(DQ ($ VSub_Name "$ROOT") (/coreos_production_qemu_image.img.bz2))} right: {(DQ ($ VSub_Name "$POOL_PATH") (/coreos_base.img))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(bunzip2)} {(-f)} {(-k)} {(DQ ($ VSub_Name "$ROOT") (/coreos_production_qemu_image.img.bz2))} ) (AndOr children: [ (SimpleCommand words: [ {(virsh)} {(vol-delete)} {(coreos_base.img)} {(--pool)} {($ VSub_Name "$POOL")} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1698] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) ] spids: [-1 1673] ) ] spids: [-1 1707] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(virsh)} {(vol-list)} {($ VSub_Name "$POOL")}) (C {(grep)} {(-q)} {(coreos_base.img)}) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(virsh)} {(vol-create-as)} {($ VSub_Name "$POOL")} {(coreos_base.img)} {(10G)} {(--format)} {(qcow2)} ) (C {(virsh)} {(vol-upload)} {(coreos_base.img)} {(DQ ($ VSub_Name "$ROOT") (/coreos_production_qemu_image.img))} {(--pool)} {($ VSub_Name "$POOL")} ) ] spids: [-1 1729] ) ] spids: [-1 1763] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes))}) (C {(kube-push-internal)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/manifests))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$ENABLE_NODE_LOGGING"))} right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$LOGGING_DESTINATION"))} right: {(DQ (elasticsearch))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} { (DQ ($ VSub_Name "$KUBE_ROOT") (/cluster/saltbase/salt/fluentd-es/fluentd-es.manifest) ) } {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/manifests))} ) ] spids: [-1 1828] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$LOGGING_DESTINATION"))} right: {(DQ (gcp))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(cp)} { (DQ ($ VSub_Name "$KUBE_ROOT") (/cluster/saltbase/salt/fluentd-gcp/fluentd-gcp.manifest) ) } {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/manifests))} ) ] spids: [1844 1861] ) ] spids: [-1 1877] ) ] spids: [-1 1808] ) ] spids: [-1 1880] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/addons))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$ENABLE_CLUSTER_DNS"))} right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(render-template)} {(DQ ($ VSub_Name "$ROOT") (/namespace.yaml))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/addons/namespace.yaml))} spids: [1921] ) ] ) (SimpleCommand words: [{(render-template)} {(DQ ($ VSub_Name "$ROOT") (/kube-dns.yaml))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/addons/kube-dns.yaml))} spids: [1936] ) ] ) ] spids: [-1 1911] ) ] spids: [-1 1944] ) (C {(virsh)} {(pool-refresh)} {($ VSub_Name "$POOL")}) ] spids: [1582] ) spids: [1578 1581] ) (FuncDef name: destroy-network body: (BraceGroup children: [ (C {(set)} {(Lit_Other "+") (e)}) (C {(virsh)} {(net-destroy)} {(kubernetes_global)}) (C {(virsh)} {(net-destroy)} {(kubernetes_pods)}) (C {(set)} {(-e)}) ] spids: [1961] ) spids: [1957 1960] ) (FuncDef name: initialize-network body: (BraceGroup children: [ (C {(virsh)} {(net-create)} {(DQ ($ VSub_Name "$ROOT") (/network_kubernetes_global.xml))}) (C {(virsh)} {(net-create)} {(DQ ($ VSub_Name "$ROOT") (/network_kubernetes_pods.xml))}) ] spids: [1995] ) spids: [1991 1994] ) (FuncDef name: render-template body: (BraceGroup children: [ (C {(eval)} { (DQ ("echo ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (CommandSubPart command_list: (CommandList children:[(C {(cat)} {($ VSub_Number "$1")})]) left_token: <Left_CommandSub "$("> spids: [2032 2036] ) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } ) ] spids: [2024] ) spids: [2020 2023] ) (FuncDef name: wait-cluster-readiness body: (BraceGroup children: [ (C {(echo)} {(DQ ("Wait for cluster readiness"))}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:timeout) op:Equal rhs:{(120)} spids:[2060])] spids: [2058] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {($ VSub_Name "$timeout")} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nb_ready_nodes) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (Pipeline children: [ (SimpleCommand words: [ {(kubectl)} {(get)} {(nodes)} {(-o)} {(go-template) (Lit_Other "=") (DQ ( "{{range.items}}{{range.status.conditions}}{{.type}}{{end}}:{{end}}" ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [2096] ) ] ) (C {(tr)} {(SQ <":">)} {(SQ <"\\n">)}) (C {(grep)} {(-c)} {(Ready)}) ] negated: False ) (C {(true)}) ] op_id: Op_DPipe ) ] ) left_token: <Left_CommandSub "$("> spids: [2081 2122] ) } spids: [2080] ) ] spids: [2080] ) (C {(echo)} { (DQ ("Nb ready nodes: ") ($ VSub_Name "$nb_ready_nodes") (" / ") ($ VSub_Name "$NUM_NODES") ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_Name "$nb_ready_nodes"))} right: {(DQ ($ VSub_Name "$NUM_NODES"))} ) ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 2152] ) ] spids: [-1 2160] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:timeout) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$timeout")}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2165 2170] ) } spids: [2164] ) ] spids: [2164] ) (C {(sleep)} {(.5)}) ] spids: [2077 2178] ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2047] ) spids: [2043 2046] ) (FuncDef name: kube-up body: (BraceGroup children: [ (C {(detect-master)}) (C {(detect-nodes)}) (C {(initialize-pool)} {(keep_base_image)}) (C {(generate_certs)} { (DQ (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (WholeArray op_id:Lit_At) spids: [2213 2218] ) ) } ) (C {(setup_registry_proxy)}) (C {(initialize-network)}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:ssh_keys) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(TildeSubPart prefix:"") (/.ssh/) (Lit_Other "*") (.pub)} ) (C {(sed)} {(SQ <"s/^/ - /">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2233 2248] ) ) } spids: [2231] ) ] spids: [2229] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:kubernetes_dir) op: Equal rhs: {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes))} spids: [2254] ) ] spids: [2252] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[2264])] spids: [2262] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:i) right: (ArithWord w:{($ VSub_Name "$NUM_NODES")}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name "$i")} right: {($ VSub_Name "$NUM_NODES")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(etcd2_initial_cluster) (Lit_Other "[") ($ VSub_Name "$i") (Lit_Other "]") (Lit_Other "=") (DQ (${ VSub_Name MASTER_NAME) ("=http://") (${ VSub_Name MASTER_IP) (":2380")) } ) ] spids: [-1 2310] ) ] else_action: [ (C {(etcd2_initial_cluster) (Lit_Other "[") ($ VSub_Name "$i") (Lit_Other "]") (Lit_Other "=") (DQ (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [2339 2344] ) ("=http://") (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [2346 2351] ) (":2380") ) } ) ] spids: [2330 2356] ) ] spids: [2294 2359] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etcd2_initial_cluster) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(join)} {(Lit_Comma ",")} { (DQ (BracedVarSub token: <VSub_Name etcd2_initial_cluster> bracket_op: (WholeArray op_id:Lit_At) spids: [2369 2374] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [2363 2376] ) } spids: [2362] ) ] spids: [2362] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:machines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(join)} {(Lit_Comma ",")} { (DQ (BracedVarSub token: <VSub_Name KUBE_NODE_IP_ADDRESSES> bracket_op: (WholeArray op_id:Lit_At) spids: [2388 2393] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [2382 2395] ) } spids: [2381] ) ] spids: [2379] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_LessEqual left: (ArithVarRef name:i) right: (ArithWord w:{($ VSub_Name "$NUM_NODES")}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name "$i")} right: {($ VSub_Name "$NUM_NODES")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:type) op: Equal rhs: {(master)} spids: [2445] ) ] spids: [2445] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {($ VSub_Name "$MASTER_NAME")} spids: [2449] ) ] spids: [2449] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:public_ip) op: Equal rhs: {($ VSub_Name "$MASTER_IP")} spids: [2453] ) ] spids: [2453] ) ] spids: [-1 2442] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:type) op: Equal rhs: {(node-) (CommandSubPart command_list: (CommandList children: [(C {(printf)} {(DQ ("%02d"))} {($ VSub_Name "$i")})] ) left_token: <Left_CommandSub "$("> spids: [2462 2470] ) } spids: [2460] ) ] spids: [2460] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [2474 2479] ) } spids: [2473] ) ] spids: [2473] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:public_ip) op: Equal rhs: { (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [2483 2488] ) } spids: [2482] ) ] spids: [2482] ) ] spids: [2457 2491] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:image) op: Equal rhs: {($ VSub_Name "$name") (.img)} spids: [2494] ) ] spids: [2494] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:config) op: Equal rhs: {(kubernetes_config_) ($ VSub_Name "$type")} spids: [2499] ) ] spids: [2499] ) (C {(virsh)} {(vol-create-as)} {($ VSub_Name "$POOL")} {($ VSub_Name "$image")} {(10G)} {(--format)} {(qcow2)} {(--backing-vol)} {(coreos_base.img)} {(--backing-vol-format)} {(qcow2)} ) (C {(mkdir)} {(-p)} { (DQ ($ VSub_Name "$POOL_PATH") (/) ($ VSub_Name "$config") (/openstack/latest)) } ) (SimpleCommand words: [{(render-template)} {(DQ ($ VSub_Name "$ROOT") (/user_data.yml))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: { (DQ ($ VSub_Name "$POOL_PATH") (/) ($ VSub_Name "$config") (/openstack/latest/user_data) ) } spids: [2548] ) ] ) (C {(virsh)} {(pool-refresh)} {($ VSub_Name "$POOL")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:domain_xml) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(mktemp)})]) left_token: <Left_CommandSub "$("> spids: [2567 2569] ) } spids: [2566] ) ] spids: [2566] ) (SimpleCommand words: [{(render-template)} {($ VSub_Name "$ROOT") (/coreos.xml)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$domain_xml")} spids: [2577] ) ] ) (C {(virsh)} {(create)} {($ VSub_Name "$domain_xml")}) (C {(rm)} {($ VSub_Name "$domain_xml")}) ] spids: [2426 2594] ) ) (C {(export)} {(Lit_VarLike "KUBE_SERVER=") (DQ ("http://192.168.10.1:8080"))}) (C {(export)} {(Lit_VarLike "CONTEXT=") (DQ (libvirt-coreos))}) (C {(create-kubeconfig)}) (C {(create-kubelet-kubeconfig)} {(DQ ("http://") (${ VSub_Name MASTER_IP) (":8080"))} {(DQ (${ VSub_Name POOL_PATH) (/kubernetes/kubeconfig/kubelet.kubeconfig))} ) (C {(wait-cluster-readiness)}) (C {(echo)} {(DQ ("Kubernetes cluster is running. The master is running at:"))}) (C {(echo)}) (C {(echo)} {(DQ (" http://") (${ VSub_Name KUBE_MASTER_IP) (":8080"))}) (C {(echo)}) (C {(echo)} {(DQ ("You can control the Kubernetes cluster with: 'kubectl'"))}) (C {(echo)} { (DQ ("You can connect on the master with: 'ssh core@") (${ VSub_Name KUBE_MASTER_IP) ("'") ) } ) (C {(wait-registry-readiness)}) ] spids: [2196] ) spids: [2192 2195] ) (FuncDef name: create_registry_rc body: (BraceGroup children: [ (C {(echo)} {(DQ (" Create registry replication controller"))}) (C {(kubectl)} {(create)} {(-f)} {($ VSub_Name "$ROOT") (/registry-rc.yaml)}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:timeout) op:Equal rhs:{(120)} spids:[2717])] spids: [2715] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {($ VSub_Name "$timeout")} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:phase) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(kubectl)} {(get)} {(pods)} {(-n)} {(kube-system)} {(-lk8s-app) (Lit_Other "=") (kube-registry)} {(--output) (Lit_Other "=") (SQ <"jsonpath={.items..status.phase}">)} ) ] ) left_token: <Left_CommandSub "$("> spids: [2738 2758] ) } spids: [2737] ) ] spids: [2737] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$phase"))} {(Lit_Other "=")} {(DQ (Running))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 2778] ) ] spids: [-1 2786] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:timeout) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$timeout")}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2790 2795] ) } spids: [2789] ) ] spids: [2789] ) (C {(sleep)} {(.5)}) ] spids: [2734 2803] ) ) ] spids: [2695] ) spids: [2689 2694] ) (FuncDef name: create_registry_svc body: (BraceGroup children: [ (C {(echo)} {(DQ (" Create registry service"))}) (C {(kubectl)} {(create)} {(-f)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/addons/registry/registry-svc.yaml))} ) ] spids: [2815] ) spids: [2809 2814] ) (FuncDef name: wait-registry-readiness body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_Name "$ENABLE_CLUSTER_REGISTRY"))} right: {(DQ (true))} ) ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [-1 2867] ) ] spids: [-1 2875] ) (C {(echo)} {(DQ ("Wait for registry readiness..."))}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:timeout) op:Equal rhs:{(120)} spids:[2887])] spids: [2885] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {($ VSub_Name "$timeout")} right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:phase) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(kubectl)} {(get)} {(namespaces)} {(--output) (Lit_Other "=") (Lit_VarLike "jsonpath=") (SQ < "{.items[?(@.metadata.name==\"kube-system\")].status.phase}" > ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [2908 2921] ) } spids: [2907] ) ] spids: [2907] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$phase"))} {(Lit_Other "=")} {(DQ (Active))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(create_registry_rc)}) (C {(create_registry_svc)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [-1 2941] ) ] spids: [-1 2955] ) (C {(echo)} {(DQ ("waiting for namespace kube-system"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:timeout) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$timeout")}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2966 2971] ) } spids: [2965] ) ] spids: [2965] ) (C {(sleep)} {(.5)}) ] spids: [2904 2979] ) ) ] spids: [2847] ) spids: [2841 2846] ) (FuncDef name: kube-down body: (BraceGroup children: [ (Pipeline children: [ (C {(virsh)} {(list)}) (C {(awk)} {(SQ <"NR>2 && !/^$/ && $2 ~ /^kubernetes/ {print $2}">)}) (While cond: [(Sentence child:(C {(read)} {(dom)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [(C {(virsh)} {(destroy)} {($ VSub_Name "$dom")})] spids: [3017 3027] ) ) ] negated: False ) (C {(destroy-pool)} {(keep_base_image)}) (C {(destroy-network)}) ] spids: [2991] ) spids: [2987 2990] ) (FuncDef name: upload-server-tars body: (BraceGroup children: [ (C {(tar)} {(-x)} {(-C)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes))} {(-f)} {(DQ ($ VSub_Name "$SERVER_BINARY_TAR"))} {(kubernetes)} ) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/bin))}) (C {(mv)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/kubernetes/server/bin))} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/bin))} ) (C {(chmod)} {(-R)} {(755)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/bin))}) (C {(rm)} {(-fr)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/kubernetes))}) ] spids: [3047] ) spids: [3043 3046] ) (FuncDef name: kube-push body: (BraceGroup children: [ (C {(kube-push-internal)}) (C {(ssh-to-node)} {(DQ ($ VSub_Name "$MASTER_NAME"))} {(DQ ("sudo systemctl restart kube-apiserver kube-controller-manager kube-scheduler"))} ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:NUM_NODES) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(ssh-to-node)} { (DQ (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [3168 3173] ) ) } {(DQ ("sudo systemctl restart kubelet kube-proxy"))} ) ] spids: [3162 3181] ) ) (C {(wait-cluster-readiness)}) ] spids: [3124] ) spids: [3120 3123] ) (FuncDef name: kube-push-internal body: (BraceGroup children: [ (Case to_match: { (DQ (BracedVarSub token: <VSub_Name KUBE_PUSH> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(release)}) spids: [3199 3203] ) ) } arms: [ (case_arm pat_list: [{(release)}] action: [(C {(kube-push-release)})] spids: [3209 3210 3214 -1] ) (case_arm pat_list: [{(Assign_Local local)}] action: [(C {(kube-push-local)})] spids: [3217 3218 3222 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} { (DQ ("The only known push methods are ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (release) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" to use the release tarball or ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (local) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" to use the binaries built by make. KUBE_PUSH is set ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$KUBE_PUSH") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3246])] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [3225 3226 3253 -1] ) ] spids: [3196 3206 3256] ) ] spids: [3193] ) spids: [3189 3192] ) (FuncDef name: kube-push-release body: (BraceGroup children:[(C {(find-release-tars)})(C {(upload-server-tars)})] spids:[3265]) spids: [3261 3264] ) (FuncDef name: kube-push-local body: (BraceGroup children: [ (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$POOL_PATH") ("/kubernetes/bin/*"))}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/bin))}) (C {(cp)} {(DQ (${ VSub_Name KUBE_ROOT) (/_output/local/go/bin)) (/) (Lit_Other "*")} {(DQ ($ VSub_Name "$POOL_PATH") (/kubernetes/bin))} ) ] spids: [3280] ) spids: [3276 3279] ) (FuncDef name: test-build-release body: (BraceGroup children:[(C {(echo)} {(DQ (TODO))})] spids:[3329]) spids: [3325 3328] ) (FuncDef name: test-setup body: (BraceGroup children: [(C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kube-up.sh))})] spids: [3348] ) spids: [3344 3347] ) (FuncDef name: test-teardown body: (BraceGroup children:[(C {(kube-down)})] spids:[3368]) spids: [3364 3367] ) (FuncDef name: ssh-to-node body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:node) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [3388] ) ] spids: [3386] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [3396] ) ] spids: [3394] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:machine) op:Equal spids:[3404])] spids: [3402] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$node"))} right: {(DQ ($ VSub_Name "$MASTER_IP"))} ) ) (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$node"))} right: {(Lit_Other "^") (DQ ($ VSub_Name "$NODE_IP_BASE"))} ) ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: {(DQ ($ VSub_Name "$node"))} spids: [3445] ) ] spids: [3445] ) ] spids: [-1 3442] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$node"))} right: {(DQ ($ VSub_Name "$MASTER_NAME"))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: {(DQ ($ VSub_Name "$MASTER_IP"))} spids: [3471] ) ] spids: [3471] ) ] spids: [3451 3468] ) ] else_action: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:NUM_NODES) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$node"))} right: { (DQ (BracedVarSub token: <VSub_Name NODE_NAMES> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$i")}) ) spids: [3515 3520] ) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:machine) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name NODE_IPS> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$i")}) ) spids: [3531 3536] ) ) } spids: [3529] ) ] spids: [3529] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [-1 3526] ) ] spids: [-1 3543] ) ] spids: [3501 3546] ) ) ] spids: [3477 3549] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(DQ ($ VSub_Name "$machine"))}) ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name "$node") (" is an unknown machine to ssh to"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[3575])] ) ] spids: [-1 3565] ) ] spids: [-1 3579] ) (C {(ssh)} {(-o)} {(Lit_VarLike "ConnectTimeout=") (30)} {(-o)} {(Lit_VarLike "StrictHostKeyChecking=") (no)} {(-o)} {(Lit_VarLike "UserKnownHostsFile=") (/dev/null)} {(-o)} {(Lit_VarLike "ControlMaster=") (no)} {(DQ ("core@") ($ VSub_Name "$machine"))} {(DQ ($ VSub_Name "$cmd"))} ) ] spids: [3383] ) spids: [3379 3382] ) (FuncDef name: prepare-e2e body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ("libvirt-coreos doesn't need special preparations for e2e tests"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[3634])] ) ] spids: [3625] ) spids: [3619 3624] ) ] )