(CommandList children: [ (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: [47 55] ) } spids: [46] ) ] spids: [44] ) (C {(export)} {(Lit_VarLike 'MASTER=') (BracedVarSub token: <VSub_Name MASTER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ('centos@172.10.0.11'))}) spids: [67 73] ) } ) (C {(export)} {(Lit_VarLike 'MASTER_IP=') (BracedVarSub token: <VSub_Name MASTER> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')}) spids: [78 82] ) } ) (C {(export)} {(Lit_VarLike 'MASTERS=') (DQ (BracedVarSub token: <VSub_Name MASTERS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{($ VSub_Name '$MASTER')}) spids: [98 102] ) ) } ) (FuncDef name: length-of body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:len) op:Equal rhs:{(0)} spids:[123])] spids: [121] ) (ForEach iter_name: part iter_words: [{($ VSub_Number '$1')}] do_arg_iter: False body: (DoGroup children: [(C {(let)} {(Lit_Other '+') (Lit_Other '+') (len)})] spids: [136 146] ) spids: [132 134] ) (C {(echo)} {($ VSub_Name '$len')}) ] spids: [118] ) spids: [112 117] ) (C {(export)} {(Lit_VarLike 'NUM_MASTERS=') (DQ (BracedVarSub token: <VSub_Name NUM_MASTERS> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [(C {(length-of)} {(DQ ($ VSub_Name '$MASTERS'))})] ) left_token: <Left_CommandSub '$('> spids: [165 171] ) } ) spids: [162 172] ) ) } ) (FuncDef name: default-advertise-address body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:masters_array) op: Equal rhs: {(ArrayLiteralPart words:[{(${ VSub_Name MASTERS)}])} spids: [194] ) ] spids: [192] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:master) op: Equal rhs: { (BracedVarSub token: <VSub_Name masters_array> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [205 210] ) } spids: [204] ) ] spids: [202] ) (C {(echo)} { (BracedVarSub token: <VSub_Name master> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')}) spids: [215 219] ) } ) ] spids: [185] ) spids: [179 184] ) (C {(export)} {(Lit_VarLike 'MASTER_ADVERTISE_ADDRESS=') (DQ (BracedVarSub token: <VSub_Name MASTER_ADVERTISE_ADDRESS> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children:[(C {(default-advertise-address)})]) left_token: <Left_CommandSub '$('> spids: [237 239] ) } ) spids: [234 240] ) ) } ) (C {(export)} {(Lit_VarLike 'MASTER_ADVERTISE_IP=') (DQ (BracedVarSub token: <VSub_Name MASTER_ADVERTISE_IP> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(getent)} {(hosts)} {(DQ (${ VSub_Name MASTER_ADVERTISE_ADDRESS))}) (C {(awk)} {(SQ <'{print $1; exit}'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [250 268] ) } ) spids: [247 269] ) ) } ) (C {(export)} {(Lit_VarLike 'NODES=') (DQ (BracedVarSub token: <VSub_Name NODES> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ('centos@172.10.0.12 centos@172.10.0.13'))} ) spids: [286 292] ) ) } ) (C {(export)} {(Lit_VarLike 'NUM_NODES=') (DQ (BracedVarSub token: <VSub_Name NUM_NODES> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [(C {(length-of)} {(DQ ($ VSub_Name '$NODES'))})] ) left_token: <Left_CommandSub '$('> spids: [306 312] ) } ) spids: [303 313] ) ) } ) (C {(export)} {(Lit_VarLike 'NUM_NODES=') (DQ (${ VSub_Name NUM_NODES))}) (FuncDef name: concat-etcd-servers body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:etcd_servers) op:Equal rhs:{(DQ )} spids:[344])] spids: [342] ) (ForEach iter_name: master iter_words: [{(${ VSub_Name MASTERS)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:master_ip) op: Equal rhs: { (BracedVarSub token: <VSub_Name master> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')}) spids: [366 370] ) } spids: [365] ) ] spids: [363] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {(DQ )} spids: [375] ) ] spids: [373] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$etcd_servers'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {(DQ (${ VSub_Name etcd_servers) (','))} spids: [396] ) ] spids: [396] ) ] spids: [16777215 393] ) ] spids: [16777215 405] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etcd_servers) op: Equal rhs: { (DQ (${ VSub_Name prefix) ('https://') (${ VSub_Name master_ip) (':2379')) } spids: [408] ) ] spids: [408] ) ] spids: [360 421] ) spids: [354 358] ) (C {(echo)} {(DQ ($ VSub_Name '$etcd_servers'))}) ] spids: [339] ) spids: [333 338] ) (C {(export)} {(Lit_VarLike 'ETCD_SERVERS=') (DQ (CommandSubPart command_list: (CommandList children:[(C {(concat-etcd-servers)})]) left_token: <Left_CommandSub '$('> spids: [437 439] ) ) } ) (FuncDef name: concat-etcd-initial-cluster body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:etcd_initial_cluster) op: Equal rhs: {(DQ )} spids: [463] ) ] spids: [461] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:num_infra) op:Equal rhs:{(0)} spids:[470])] spids: [468] ) (ForEach iter_name: master iter_words: [{(${ VSub_Name MASTERS)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:master_ip) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name master> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')}) spids: [492 496] ) ) } spids: [490] ) ] spids: [488] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$etcd_initial_cluster'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etcd_initial_cluster) op: PlusEqual rhs: {(DQ (','))} spids: [516] ) ] spids: [516] ) ] spids: [16777215 513] ) ] spids: [16777215 522] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:etcd_initial_cluster) op: PlusEqual rhs: { (DQ (infra) (${ VSub_Name num_infra) ('=https://') (${ VSub_Name master_ip) (':2380') ) } spids: [525] ) ] spids: [525] ) (C {(let)} {(Lit_Other '+') (Lit_Other '+') (num_infra)}) ] spids: [485 546] ) spids: [479 483] ) (C {(echo)} {(DQ ($ VSub_Name '$etcd_initial_cluster'))}) ] spids: [458] ) spids: [452 457] ) (C {(export)} {(Lit_VarLike 'ETCD_INITIAL_CLUSTER=') (DQ (CommandSubPart command_list: (CommandList children:[(C {(concat-etcd-initial-cluster)})]) left_token: <Left_CommandSub '$('> spids: [562 564] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CERT_DIR) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name CERT_DIR> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name root) (Lit_Slash /) (ca-cert)} ) spids: [570 578] ) ) } spids: [568] ) ] spids: [568] ) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name CERT_DIR))}) (C {(export)} {(Lit_VarLike 'CERT_DIR=') (DQ (CommandSubPart command_list: (CommandList children: [ (Sentence child: (C {(cd)} {(DQ (${ VSub_Name CERT_DIR))}) terminator: <Op_Semi ';'> ) (C {(pwd)}) ] ) left_token: <Left_CommandSub '$('> spids: [598 609] ) ) } ) (C {(export)} {(Lit_VarLike 'SERVICE_CLUSTER_IP_RANGE=') (BracedVarSub token: <VSub_Name SERVICE_CLUSTER_IP_RANGE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (192.168.3.0/24))}) spids: [622 628] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ENABLE_CLUSTER_DNS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_ENABLE_CLUSTER_DNS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [636 640] ) ) } spids: [634] ) ] spids: [634] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DNS_SERVER_IP) op: Equal rhs: { (BracedVarSub token: <VSub_Name DNS_SERVER_IP> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (192.168.3.100))}) spids: [647 653] ) } spids: [646] ) ] spids: [646] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DNS_DOMAIN) op: Equal rhs: { (BracedVarSub token: <VSub_Name DNS_DOMAIN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (cluster.local))}) spids: [656 662] ) } spids: [655] ) ] spids: [655] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ENABLE_CLUSTER_UI) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_ENABLE_CLUSTER_UI> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [670 674] ) ) } spids: [668] ) ] spids: [668] ) (C {(export)} {(Lit_VarLike 'FLANNEL_NET=') (BracedVarSub token: <VSub_Name FLANNEL_NET> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (172.16.0.0/16))}) spids: [684 690] ) } ) (C {(export)} {(Lit_VarLike 'ADMISSION_CONTROL=') (BracedVarSub token: <VSub_Name ADMISSION_CONTROL> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (DQ ( 'Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultTolerationSeconds,Priority,ResourceQuota' ) ) } ) spids: [702 708] ) } ) (C {(export)} {(Lit_VarLike 'DOCKER_OPTS=') (BracedVarSub token: <VSub_Name DOCKER_OPTS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ )}) spids: [720 725] ) } ) (C {(export)} {(Lit_VarLike 'PROCESS_CHECK_TIMEOUT=') (BracedVarSub token: <VSub_Name PROCESS_CHECK_TIMEOUT> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(180)}) spids: [735 739] ) } ) (C {(unset)} {(-f)} {(default-advertise-address)} {(concat-etcd-servers)} {(length-of)} {(concat-etcd-initial-cluster)} ) ] )