(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:is_push) op: assign_op.Equal rhs: {($ Id.VSub_At '$@')} spids: [66] ) ] ) (command.ShFunction name: ensure-basic-networking body: (command.BraceGroup children: [ (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:91) cond: [ (command.Sentence child: (command.Simple words: [{(getent)} {(hosts)} {(metadata.google.internal)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:99) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:101) ) ] body: (command.DoGroup children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'Waiting for functional DNS (trying to resolve metadata.google.internal)...' span_id: 109 ) ) } ) (C {(sleep)} {(3)}) ] ) ) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:121) cond: [ (command.Sentence child: (command.Simple words: [ {(getent)} {(hosts)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:127) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {(hostname)} {(-f)}) (C {(echo)} {(_error_)})] ) ] ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:139) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:141) ) ] body: (command.DoGroup children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'Waiting for functional DNS (trying to resolve my own FQDN)...' span_id: 149 ) ) } ) (C {(sleep)} {(3)}) ] ) ) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:161) cond: [ (command.Sentence child: (command.Simple words: [ {(getent)} {(hosts)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:167) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {(hostname)} {(-i)}) (C {(echo)} {(_error_)})] ) ] ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:179) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:181) ) ] body: (command.DoGroup children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'Waiting for functional DNS (trying to resolve my own IP)...' span_id: 189 ) ) } ) (C {(sleep)} {(3)}) ] ) ) (C {(echo)} { (DQ ('Networking functional on ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:206) command_list: (command.CommandList children:[(C {(hostname)})]) ) (' (') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:210) command_list: (command.CommandList children:[(C {(hostname)} {(-i)})]) ) (')') ) } ) ] ) ) (command.ShFunction name: ensure-packages body: (command.BraceGroup children:[(C {(Id.Lit_Other ':')})]) ) (command.ShFunction name: create-node-pki body: (command.BraceGroup children: [ (C {(echo)} {(DQ ('Creating node pki files'))}) (C {(local)} {(-r)} {(Id.Lit_VarLike 'pki_dir=') (DQ (/etc/kubernetes/pki))}) (C {(mkdir)} {(-p)} {(DQ (${ Id.VSub_Name pki_dir))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:CA_CERT_BUNDLE span_id:281) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:287) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CA_CERT_BUNDLE) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CA_CERT))} spids: [292] ) ] ) ] spids: [273 289] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CA_CERT_BUNDLE_PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name pki_dir) (/ca-certificates.crt))} spids: [304] ) ] ) (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name CA_CERT_BUNDLE))}) (command.Simple words: [{(base64)} {(--decode)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:327) fd: -1 arg_word: {(DQ (${ Id.VSub_Name CA_CERT_BUNDLE_PATH))} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBELET_CERT span_id: 347 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBELET_KEY span_id: 360 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:366) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_CERT_PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name pki_dir) (/kubelet.crt))} spids: [371] ) ] ) (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name KUBELET_CERT))}) (command.Simple words: [{(base64)} {(--decode)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:394) fd: -1 arg_word: {(DQ (${ Id.VSub_Name KUBELET_CERT_PATH))} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_KEY_PATH) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name pki_dir) (/kubelet.key))} spids: [404] ) ] ) (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name KUBELET_KEY))}) (command.Simple words: [{(base64)} {(--decode)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:427) fd: -1 arg_word: {(DQ (${ Id.VSub_Name KUBELET_KEY_PATH))} ) ] ) ] negated: F ) ] spids: [337 368] ) ] ) (C {(ln)} {(-sf)} {(DQ (${ Id.VSub_Name CA_CERT_BUNDLE_PATH))} {(/etc/kubernetes/ca.crt)}) ] ) ) (command.ShFunction name: ensure-local-disks body: (command.BraceGroup children: [ (command.ForEach iter_name: ssd iter_words: [{(/dev/disk/by-id/google-local-ssd-) (Id.Lit_Star '*')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(DQ ($ Id.VSub_DollarName '$ssd'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:497) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ssdnum) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:503) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$ssd')}) (C {(sed)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: 's/\\/dev\\/disk\\/by-id\\/google-local-ssd-\\([0-9]*\\)/\\1/' span_id: 531 ) ) } ) ] negated: F ) ] ) ) } spids: [502] ) ] ) (C {(echo)} { (DQ ('Formatting and mounting local SSD ') ($ Id.VSub_DollarName '$ssd') (' to /mnt/disks/ssd') ($ Id.VSub_DollarName '$ssdnum') ) } ) (C {(mkdir)} {(-p)} {(/mnt/disks/ssd) ($ Id.VSub_DollarName '$ssdnum')}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(/usr/share/google/safe_format_and_mount)} {(-m)} {(DQ ('mkfs.ext4 -F'))} {(DQ (${ Id.VSub_Name ssd))} {(/mnt/disks/ssd) ($ Id.VSub_DollarName '$ssdnum')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:571) fd: -1 arg_word: {(/var/log/local-ssd-) ($ Id.VSub_DollarName '$ssdnum') (-mount.log) } ) ] ) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (DQ ('Local SSD ') ($ Id.VSub_DollarName '$ssdnum') (' mount failed, review /var/log/local-ssd-') ($ Id.VSub_DollarName '$ssdnum') (-mount.log) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:591) ) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Return val: return span_id: 593 ) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:596) ) ] ) ] ) ] spids: [486 499] ) ] else_action: [(C {(echo)} {(DQ ('No local SSD disks found.'))})] ) ] ) ) ] ) ) (command.ShFunction name: config-ip-firewall body: (command.BraceGroup children: [ (C {(echo)} {(DQ ('Configuring IP firewall rules'))}) (C {(iptables)} {(-N)} {(KUBE-METADATA-SERVER)}) (C {(iptables)} {(-I)} {(FORWARD)} {(-p)} {(tcp)} {(-d)} {(169.254.169.254)} {(--dport)} {(80)} {(-j)} {(KUBE-METADATA-SERVER)} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_FIREWALL_METADATA_SERVER span_id: 673 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:679) ) ] action: [(C {(iptables)} {(-A)} {(KUBE-METADATA-SERVER)} {(-j)} {(DROP)})] spids: [665 681] ) ] ) ] ) ) (command.ShFunction name: ensure-install-dir body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INSTALL_DIR) op: assign_op.Equal rhs: {(DQ (/var/cache/kubernetes-install))} spids: [709] ) ] ) (C {(mkdir)} {(-p)} {(${ Id.VSub_Name INSTALL_DIR)}) (C {(cd)} {(${ Id.VSub_Name INSTALL_DIR)}) ] ) ) (command.ShFunction name: salt-apiserver-timeout-grain body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:744) fd: -1 here_begin: {(EOF)} here_end_span_id: 754 stdin_parts: [(" minRequestTimeout: '") ($ Id.VSub_Number '$1') ("'\n")] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:747) fd: -1 arg_word: {(/etc/salt/minion.d/grains.conf)} ) ] ) ] ) ) (command.ShFunction name: set-broken-motd body: (command.BraceGroup children: [ (command.Simple words: [ {(echo)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: '\\nBroken (or in progress) Kubernetes node setup! Suggested first step:\\n tail /var/log/startupscript.log\\n' span_id: 772 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:775) fd: -1 arg_word: {(/etc/motd)} ) ] ) ] ) ) (command.ShFunction name: reset-motd body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'version=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:801) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(/usr/local/bin/kubelet)} {(--version) (Id.Lit_Equals '=') (true)}) (C {(cut)} {(-f2)} {(-d)} {(DQ (' '))}) ] negated: F ) ] ) ) ) } ) (C {(local)} {(Id.Lit_VarLike 'gitref=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:835) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name version))}) (C {(sed)} {(-r)} { (DQ ('s/(v[0-9]+') (Id.Lit_Other '\\') ('.[0-9]+') (Id.Lit_Other '\\') ('.[0-9]+)(-[a-z]+') (Id.Lit_Other '\\') ('.[0-9]+)?.*/') (Id.Lit_Other '\\') (1) (Id.Lit_Other '\\') (2/g) ) } ) ] negated: F ) ] ) ) ) } ) (C {(local)} {(Id.Lit_VarLike 'devel=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name gitref))} right: {(DQ (${ Id.VSub_Name version))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:893) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:devel) op: assign_op.Equal rhs: { (DQ ('\n') ( 'Note: This looks like a development version, which might not be present on GitHub.\n' ) ("If it isn't, the closest tag is at:\n") (' https://github.com/kubernetes/kubernetes/tree/') (${ Id.VSub_Name gitref) ('\n') ) } spids: [898] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gitref) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:version span_id:914) suffix_op: (suffix_op.PatSub pat: {('*+')} replace: (word.Empty) replace_mode: Id.Lit_Slash ) ) ) } spids: [911] ) ] ) ] spids: [874 895] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:928) fd: -1 arg_word: {(/etc/motd)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:932) fd: -1 here_begin: {(EOF)} here_end_span_id: 968 stdin_parts: [ ('\n') ('Welcome to Kubernetes ') (${ Id.VSub_Name version) ('!\n') ('\n') ('You can find documentation for Kubernetes at:\n') (' http://docs.kubernetes.io/\n') ('\n') ('The source for this release can be found at:\n') (' /usr/local/share/doc/kubernetes/kubernetes-src.tar.gz\n') ('Or you can download it at:\n') (' https://storage.googleapis.com/kubernetes-release/release/') (${ Id.VSub_Name version) ('/kubernetes-src.tar.gz\n') ('\n') ('It is based on the Kubernetes source at:\n') (' https://github.com/kubernetes/kubernetes/tree/') (${ Id.VSub_Name gitref) ('\n') (${ Id.VSub_Name devel) ('\n') ('For Kubernetes copyright and licensing information, see:\n') (' /usr/local/share/doc/kubernetes/LICENSES\n') ('\n') ] ) ] ) ] ) ) (command.ShFunction name: curl-metadata body: (command.BraceGroup children: [ (C {(curl)} {(--fail)} {(--retry)} {(5)} {(--silent)} {(-H)} {(SQ (Token id:Id.Lit_Chars val:'Metadata-Flavor: Google' span_id:994))} {(DQ ('http://metadata/computeMetadata/v1/instance/attributes/') (${ Id.VSub_Number 1))} ) ] ) ) (command.ShFunction name: set-kube-env body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'kube_env_yaml=') (DQ (${ Id.VSub_Name INSTALL_DIR) (/kube_env.yaml))} ) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:1028) cond: [ (command.Sentence child: (command.Simple words: [{(curl-metadata)} {(kube-env)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1034) fd: -1 arg_word: {(DQ (${ Id.VSub_Name kube_env_yaml))} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1041) ) ] body: (command.DoGroup children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'Waiting for kube-env...' span_id:1049))} ) (C {(sleep)} {(3)}) ] ) ) (C {(eval)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1069) command_list: (command.CommandList children: [ (command.Simple words: [ {(python)} {(-c)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1075) (Token id: Id.Lit_Chars val: 'import pipes,sys,yaml\n' span_id: 1076 ) (Token id:Id.Lit_Chars val:'\n' span_id:1077) (Token id: Id.Lit_Chars val: 'for k,v in yaml.load(sys.stdin).iteritems():\n' span_id: 1078 ) (Token id: Id.Lit_Chars val: ' print("""readonly {var}={value}""".format(var = k, value = pipes.quote(str(v))))\n' span_id: 1079 ) (Token id:Id.Lit_Chars val:' print("""export {var}""".format(var = k))\n' span_id:1080) (Token id: Id.Lit_Chars val: ' ' span_id: 1081 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:1084) fd: -1 arg_word: {(DQ ) (DQ (${ Id.VSub_Name kube_env_yaml)) (DQ )} ) ] ) ] ) ) ) } ) ] ) ) (command.ShFunction name: remove-docker-artifacts body: (command.BraceGroup children: [ (C {(echo)} {(DQ ('== Deleting docker0 =='))}) (C {(apt-get-install)} {(bridge-utils)}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(iptables)} {(-t)} {(nat)} {(-F)}) (C {(true)})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(ifconfig)} {(docker0)} {(down)}) (C {(true)})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(brctl)} {(delbr)} {(docker0)}) (C {(true)})] ) (C {(echo)} {(DQ ('== Finished deleting docker0 =='))}) ] ) ) (command.ShFunction name: download-or-bust body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'hash=') (DQ ($ Id.VSub_Number '$1'))}) (C {(shift)} {(1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:urls) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:1207) words: [{($ Id.VSub_Star '$*')}] ) } spids: [1206] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:1214) cond: [ (command.Sentence child: (C {(true)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1217) ) ] body: (command.DoGroup children: [ (command.ForEach iter_name: url iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:urls span_id:1230) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {(local)} {(Id.Lit_VarLike 'file=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:url span_id:1246) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPound arg_word: {('*') (Id.Lit_Slash /)} ) ) ) } ) (C {(rm)} {(-f)} {(DQ (${ Id.VSub_Name file))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(curl)} {(-f)} {(--ipv4)} {(-Lo)} {(DQ (${ Id.VSub_Name file))} {(--connect-timeout)} {(20)} {(--max-time)} {(300)} {(--retry)} {(6)} {(--retry-delay)} {(10)} {(DQ (${ Id.VSub_Name url))} ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1304) ) ] action: [ (C {(echo)} { (DQ ('== Failed to download ') (${ Id.VSub_Name url) ('. Retrying. ==') ) } ) ] spids: [1265 1306] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name hash))} ) ) (command.Pipeline children: [ (C {(validate-hash)} {(DQ (${ Id.VSub_Name file))} {(DQ (${ Id.VSub_Name hash))} ) ] negated: T ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1351) ) ] action: [ (C {(echo)} { (DQ ('== Hash validation of ') (${ Id.VSub_Name url) (' failed. Retrying. ==') ) } ) ] spids: [1320 1353] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name hash))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1383) ) ] action: [ (C {(echo)} { (DQ ('== Downloaded ') (${ Id.VSub_Name url) (' (SHA1 = ') (${ Id.VSub_Name hash) (') ==') ) } ) ] spids: [1370 1385] ) ] else_action: [ (C {(echo)} {(DQ ('== Downloaded ') (${ Id.VSub_Name url) (' =='))}) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1420) ) ] ) ] ) ) ] ) ) ] ) ) (command.ShFunction name: validate-hash body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'file=') (DQ ($ Id.VSub_Number '$1'))}) (C {(local)} {(-r)} {(Id.Lit_VarLike 'expected=') (DQ ($ Id.VSub_Number '$2'))}) (C {(local)} {(actual)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:actual) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1468) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(sha1sum)} {(${ Id.VSub_Name file)}) (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $1 }' span_id:1480))} ) ] negated: F ) ] ) ) } spids: [1467] ) ] ) (C {(true)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name actual))} right: {(DQ (${ Id.VSub_Name expected))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1508) ) ] action: [ (C {(echo)} { (DQ ('== ') (${ Id.VSub_Name file) (' corrupted, sha1 ') (${ Id.VSub_Name actual) (" doesn't match expected ") (${ Id.VSub_Name expected) (' ==') ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1532) arg_word: {(1)} ) ] spids: [1489 1510] ) ] ) ] ) ) (command.ShFunction name: apt-get-install body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'packages=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:1554) words: [{($ Id.VSub_At '$@')}] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:installed) op: assign_op.Equal rhs: {(true)} spids: [1561] ) ] ) (command.ForEach iter_name: package iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:packages span_id:1573) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{(dpkg)} {(-s)} {(DQ (${ Id.VSub_Name package))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:1598) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:1600) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:installed) op: assign_op.Equal rhs: {(false)} spids: [1605] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:1609) ) ] spids: [1584 1602] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name installed))} right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1635) ) ] action: [ (C {(echo)} { (DQ ('== ') (braced_var_sub token: (Token id:Id.VSub_Name val:packages span_id:1645) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) (' already installed, skipped apt-get install ') (braced_var_sub token: (Token id:Id.VSub_Name val:packages span_id:1652) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) (' ==') ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1661) ) ] spids: [1618 1637] ) ] ) (C {(apt-get-update)}) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:1676) cond: [ (command.Sentence child: (C {(apt-get)} {(-q)} {(-y)} {(-o)} {(DPkg) (Id.Lit_Other ':') (Id.Lit_Other ':') (Options) (Id.Lit_Other ':') (Id.Lit_Other ':') (Id.Lit_Equals '=') (--force-confold) } {(-o)} {(DPkg) (Id.Lit_Other ':') (Id.Lit_Other ':') (Options) (Id.Lit_Other ':') (Id.Lit_Other ':') (Id.Lit_Equals '=') (--force-confdef) } {(install)} {($ Id.VSub_At '$@')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1709) ) ] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('== install of packages ') ($ Id.VSub_At '$@') (' failed, retrying =='))} ) (C {(sleep)} {(5)}) ] ) ) ] ) ) (command.ShFunction name: apt-get-update body: (command.BraceGroup children: [ (C {(echo)} {(DQ ('== Refreshing package database =='))}) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:1747) cond: [ (command.Sentence child: (C {(apt-get)} {(update)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1752) ) ] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('== apt-get update failed, retrying =='))}) (C {(sleep)} {(5)}) ] ) ) ] ) ) (command.ShFunction name: restart-updated-services body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: AUTO_RESTART_SERVICES span_id: 1797 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(true)} ) ) ) } right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1810) ) ] action: [ (C {(echo)} { (DQ ('Auto restart of services prevented by AUTO_RESTART_SERVICES=') (${ Id.VSub_Name AUTO_RESTART_SERVICES) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1825) ) ] spids: [1791 1812] ) ] ) (C {(echo)} {(DQ ('Restarting services with updated libraries (needrestart -r a)'))}) (command.Pipeline children: [ (C {(echo)} {(DQ )}) (command.Simple words: [{(needrestart)} {(-r)} {(a)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:1859) fd: 2 arg_word: {(1)} ) ] ) (C {(tee)} {(/dev/null)}) ] negated: F ) ] ) ) (command.ShFunction name: reboot-if-required body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_e child: {(DQ (/var/run/reboot-required))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1894) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1899) ) ] spids: [1881 1896] ) ] ) (C {(echo)} {(DQ ('Reboot is required (/var/run/reboot-required detected)'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {(DQ (/var/run/reboot-required.pkgs))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1924) ) ] action: [ (C {(echo)} {(DQ ('Packages that triggered reboot:'))}) (C {(cat)} {(/var/run/reboot-required.pkgs)}) ] spids: [1913 1926] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:AUTO_REBOOT span_id:1955) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(true)} ) ) ) } right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1968) ) ] action: [ (C {(echo)} {(DQ ('Reboot prevented by AUTO_REBOOT=') (${ Id.VSub_Name AUTO_REBOOT))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1983) ) ] spids: [1949 1970] ) ] ) (C {(rm)} {(-f)} {(/var/run/reboot-required)}) (C {(rm)} {(-f)} {(/var/run/reboot-required.pkgs)}) (C {(echo)} {(DQ ('Triggering reboot'))}) (C {(init)} {(6)}) ] ) ) (command.ShFunction name: auto-upgrade body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:AUTO_UPGRADE span_id:2038) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) ) } right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2051) ) ] action: [ (C {(echo)} {(DQ ("AUTO_UPGRADE not set to true; won't auto-upgrade"))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2063) ) ] spids: [2032 2053] ) ] ) (C {(apt-get-install)} {(unattended-upgrades)} {(needrestart)}) (C {(unattended-upgrade)} {(--debug)}) (C {(reboot-if-required)}) (C {(restart-updated-services)}) ] ) ) (command.ShFunction name: install-salt body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(dpkg)} {(-s)} {(salt-minion)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:2116) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:2118) ) ] action: [ (C {(echo)} {(DQ ('== SaltStack already installed, skipping install step =='))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2130) ) ] spids: [2108 2120] ) ] ) (C {(echo)} {(DQ ('== Refreshing package database =='))}) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:2144) cond: [ (command.Sentence child: (C {(apt-get)} {(update)}) terminator: (Token id:Id.Op_Semi val:';' span_id:2149) ) ] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('== apt-get update failed, retrying =='))}) (C {(sleep)} {(5)}) ] ) ) (C {(mkdir)} {(-p)} {(/var/cache/salt-install)}) (C {(cd)} {(/var/cache/salt-install)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEBS) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:2184) words: [ {(libzmq3_3.2.3) (Id.Lit_Other '+') (dfsg-1) (Id.Lit_TildeLike '~bpo70') (Id.Lit_TildeLike '~dst') (Id.Lit_Other '+') (1_amd64.deb) } {(python-zmq_13.1.0-1) (Id.Lit_TildeLike '~bpo70') (Id.Lit_TildeLike '~dst') (Id.Lit_Other '+') (1_amd64.deb) } {(salt-common_2014.1.13) (Id.Lit_Other '+') (ds-1) (Id.Lit_TildeLike '~bpo70') (Id.Lit_Other '+') (1_all.deb) } {(salt-minion_2014.1.13) (Id.Lit_Other '+') (ds-1) (Id.Lit_TildeLike '~bpo70') (Id.Lit_Other '+') (1_all.deb) } ] ) } spids: [2183] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:URL_BASE) op: assign_op.Equal rhs: {(DQ ('https://storage.googleapis.com/kubernetes-release/salt'))} spids: [2222] ) ] ) (command.ForEach iter_name: deb iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:DEBS span_id:2237) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} {(DQ (${ Id.VSub_Name deb))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2263) ) ] action: [ (C {(download-or-bust)} {(DQ )} {(DQ (${ Id.VSub_Name URL_BASE) (/) (${ Id.VSub_Name deb))} ) ] spids: [2248 2265] ) ] ) ] ) ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2317) fd: -1 arg_word: {(/usr/sbin/policy-rc.d)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:2321) fd: -1 here_begin: {(EOF)} here_end_span_id: 2332 stdin_parts: [ ('#!/bin/sh\n') ('echo ') (Id.Right_DoubleQuote '"') ('Salt shall not start.') (Id.Right_DoubleQuote '"') (' >&2\n') ('exit 101\n') ] ) ] ) (C {(chmod)} {(0755)} {(/usr/sbin/policy-rc.d)}) (command.ForEach iter_name: deb iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:DEBS span_id:2350) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} { (DQ ('== Installing ') (${ Id.VSub_Name deb) (', ignore dependency complaints (will fix later) ==') ) } ) (C {(dpkg)} {(--skip-same-version)} {(--force-depends)} {(-i)} {(DQ (${ Id.VSub_Name deb))} ) ] ) ) (C {(echo)} {(DQ ('== Installing unmet dependencies =='))}) (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:2402) cond: [ (command.Sentence child: (C {(apt-get)} {(install)} {(-f)} {(-y)}) terminator: (Token id:Id.Op_Semi val:';' span_id:2411) ) ] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('== apt-get install failed, retrying =='))}) (C {(sleep)} {(5)}) ] ) ) (C {(rm)} {(/usr/sbin/policy-rc.d)}) (C {(echo)} {(DQ ('== Finished installing Salt =='))}) ] ) ) (command.ShFunction name: stop-salt-minion body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {(/etc/init/salt-minion.override)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2470) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2479) ) ] spids: [2461 2472] ) ] ) (command.Simple words: [{(echo)} {(manual)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2494) fd: -1 arg_word: {(/etc/init/salt-minion.override)} ) ] ) (C {(update-rc.d)} {(salt-minion)} {(disable)}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:2507) cond: [ (command.Sentence child: (command.Simple words: [{(service)} {(salt-minion)} {(status)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2515) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:2517) ) ] body: (command.DoGroup children: [ (C {(echo)} {(DQ ('salt-minion found running, stopping'))}) (C {(service)} {(salt-minion)} {(stop)}) (C {(sleep)} {(1)}) ] ) ) ] ) ) (command.ShFunction name: find-master-pd body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_PD_DEVICE) op: assign_op.Equal rhs: {(DQ )} spids: [2556] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_e child: {(/dev/disk/by-id/google-master-pd)} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2572) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:2577) ) ] spids: [2561 2574] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:device_info) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2584) command_list: (command.CommandList children: [(C {(ls)} {(-l)} {(/dev/disk/by-id/google-master-pd)})] ) ) } spids: [2583] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:relative_path) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:device_info span_id:2595) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{('* ')}) ) } spids: [2593] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_PD_DEVICE) op: assign_op.Equal rhs: {(DQ (/dev/disk/by-id/) (${ Id.VSub_Name relative_path))} spids: [2601] ) ] ) ] ) ) (command.ShFunction name: create-salt-pillar body: (command.BraceGroup children: [ (C {(mkdir)} {(-p)} {(/srv/salt-overlay/pillar)}) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:2647) fd: -1 here_begin: {(EOF)} here_end_span_id: 3503 stdin_parts: [ ("instance_prefix: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2654) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$INSTANCE_PREFIX'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("node_tags: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2673) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$NODE_TAGS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("node_instance_prefix: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2692) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$NODE_INSTANCE_PREFIX'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("cluster_cidr: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2711) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$CLUSTER_IP_RANGE'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("allocate_node_cidrs: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2730) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ALLOCATE_NODE_CIDRS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("non_masquerade_cidr: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2749) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$NON_MASQUERADE_CIDR'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("service_cluster_ip_range: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2768) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$SERVICE_CLUSTER_IP_RANGE'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_cluster_monitoring: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2787) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_CLUSTER_MONITORING'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_cluster_logging: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2806) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_CLUSTER_LOGGING'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_cluster_ui: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2825) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_CLUSTER_UI'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_node_problem_detector: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2844) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_NODE_PROBLEM_DETECTOR'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_l7_loadbalancing: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2863) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_L7_LOADBALANCING'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_node_logging: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2882) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_NODE_LOGGING'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_metadata_proxy: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2901) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_METADATA_PROXY'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_metrics_server: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2920) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_METRICS_SERVER'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_rescheduler: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2939) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_RESCHEDULER'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("logging_destination: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2958) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$LOGGING_DESTINATION'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("elasticsearch_replicas: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2977) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ELASTICSEARCH_LOGGING_REPLICAS'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_cluster_dns: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2996) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_CLUSTER_DNS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_cluster_registry: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3015) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_CLUSTER_REGISTRY'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("dns_server: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3034) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$DNS_SERVER_IP'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("dns_domain: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3053) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$DNS_DOMAIN'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_dns_horizontal_autoscaler: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3072) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_DNS_HORIZONTAL_AUTOSCALER'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("admission_control: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3091) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ADMISSION_CONTROL'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("network_provider: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3110) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$NETWORK_PROVIDER'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("prepull_e2e_images: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3129) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$PREPULL_E2E_IMAGES'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("hairpin_mode: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3148) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$HAIRPIN_MODE'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("softlockup_panic: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3167) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$SOFTLOCKUP_PANIC'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("opencontrail_tag: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3186) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$OPENCONTRAIL_TAG'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("opencontrail_kubernetes_tag: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3205) command_list: (command.CommandList children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$OPENCONTRAIL_KUBERNETES_TAG'))}) ] ) ) ("'\n") ("opencontrail_public_subnet: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3214) command_list: (command.CommandList children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$OPENCONTRAIL_PUBLIC_SUBNET'))}) ] ) ) ("'\n") ("network_policy_provider: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3223) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$NETWORK_POLICY_PROVIDER'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_manifest_url: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3242) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_MANIFEST_URL span_id: 3247 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("manifest_url: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3264) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:MANIFEST_URL span_id:3269) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("manifest_url_header: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3286) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: MANIFEST_URL_HEADER span_id: 3291 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ('num_nodes: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3308) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:NUM_NODES span_id:3313) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ('\n') ("e2e_storage_test_environment: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3330) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$E2E_STORAGE_TEST_ENVIRONMENT'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("kube_uid: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3349) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name KUBE_UID))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("initial_etcd_cluster: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3370) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: INITIAL_ETCD_CLUSTER span_id: 3375 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("initial_etcd_cluster_state: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3392) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: INITIAL_ETCD_CLUSTER_STATE span_id: 3397 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("ca_cert_bundle_path: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3414) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: CA_CERT_BUNDLE_PATH span_id: 3419 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ('hostname: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3436) command_list: (command.CommandList children:[(C {(hostname)} {(-s)})]) ) ('\n') ("enable_pod_priority: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3443) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_POD_PRIORITY span_id: 3448 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("enable_default_storage_class: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3465) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_DEFAULT_STORAGE_CLASS'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("kube_proxy_daemonset: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3484) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$KUBE_PROXY_DAEMONSET'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2650) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:STORAGE_BACKEND span_id:3513) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3519) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3526) fd: -1 here_begin: {(EOF)} here_end_span_id: 3552 stdin_parts: [ ("storage_backend: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3533) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$STORAGE_BACKEND'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3529) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3505 3521] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:STORAGE_MEDIA_TYPE span_id:3565) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3571) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3578) fd: -1 here_begin: {(EOF)} here_end_span_id: 3604 stdin_parts: [ ("storage_media_type: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3585) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$STORAGE_MEDIA_TYPE'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3581) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3557 3573] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_APISERVER_REQUEST_TIMEOUT_SEC span_id: 3617 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3623) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3630) fd: -1 here_begin: {(EOF)} here_end_span_id: 3656 stdin_parts: [ ("kube_apiserver_request_timeout_sec: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3637) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ Id.VSub_DollarName '$KUBE_APISERVER_REQUEST_TIMEOUT_SEC' ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3633) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3609 3625] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ADMISSION_CONTROL span_id:3669) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(${ Id.VSub_Name ADMISSION_CONTROL)} {(Id.Lit_Equals '=') (Id.Lit_Equals '=')} {(Id.Lit_Star '*') (DQ (ImagePolicyWebhook)) (Id.Lit_Star '*')} {(Id.Lit_RBracket ']')} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3694) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3701) fd: -1 here_begin: {(EOF)} here_end_span_id: 3709 stdin_parts: [ ('admission-control-config-file: /etc/admission_controller.config\n') ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3704) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3661 3696] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBELET_PORT span_id:3722) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3728) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3735) fd: -1 here_begin: {(EOF)} here_end_span_id: 3761 stdin_parts: [ ("kubelet_port: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3742) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$KUBELET_PORT'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3738) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3714 3730] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ETCD_IMAGE span_id:3774) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3780) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3787) fd: -1 here_begin: {(EOF)} here_end_span_id: 3813 stdin_parts: [ ("etcd_docker_tag: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3794) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ETCD_IMAGE'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3790) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3766 3782] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_DOCKER_REPOSITORY span_id: 3826 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3832) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3839) fd: -1 here_begin: {(EOF)} here_end_span_id: 3865 stdin_parts: [ ("etcd_docker_repository: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3846) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ETCD_DOCKER_REPOSITORY'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3842) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3818 3834] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ETCD_VERSION span_id:3878) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:3884) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3891) fd: -1 here_begin: {(EOF)} here_end_span_id: 3917 stdin_parts: [ ("etcd_version: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3898) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ETCD_VERSION'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3894) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3870 3886] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ETCD_CA_KEY span_id:3930) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_CA_CERT span_id: 3941 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) right: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_PEER_KEY span_id: 3952 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_PEER_CERT span_id: 3963 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } ) ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:3969) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3976) fd: -1 here_begin: {(EOF)} here_end_span_id: 3984 stdin_parts: [("etcd_over_ssl: 'true'\n")] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3979) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [3922 3971] ) ] else_action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:3991) fd: -1 here_begin: {(EOF)} here_end_span_id: 3999 stdin_parts: [("etcd_over_ssl: 'false'\n")] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:3994) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ETCD_QUORUM_READ span_id:4012) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4018) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4025) fd: -1 here_begin: {(EOF)} here_end_span_id: 4053 stdin_parts: [ ("etcd_quorum_read: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4032) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name ETCD_QUORUM_READ))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4028) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4004 4020] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:APISERVER_TEST_ARGS span_id:4070) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4076) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4083) fd: -1 here_begin: {(EOF)} here_end_span_id: 4109 stdin_parts: [ ("apiserver_test_args: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4090) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$APISERVER_TEST_ARGS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4086) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4062 4078] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: API_SERVER_TEST_LOG_LEVEL span_id: 4122 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4128) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4135) fd: -1 here_begin: {(EOF)} here_end_span_id: 4161 stdin_parts: [ ("api_server_test_log_level: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4142) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$API_SERVER_TEST_LOG_LEVEL'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4138) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4114 4130] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBELET_TEST_ARGS span_id:4174) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4180) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4187) fd: -1 here_begin: {(EOF)} here_end_span_id: 4213 stdin_parts: [ ("kubelet_test_args: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4194) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$KUBELET_TEST_ARGS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4190) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4166 4182] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBELET_TEST_LOG_LEVEL span_id: 4226 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4232) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4239) fd: -1 here_begin: {(EOF)} here_end_span_id: 4265 stdin_parts: [ ("kubelet_test_log_level: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4246) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$KUBELET_TEST_LOG_LEVEL'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4242) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4218 4234] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:DOCKER_TEST_LOG_LEVEL span_id:4278) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4284) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4291) fd: -1 here_begin: {(EOF)} here_end_span_id: 4317 stdin_parts: [ ("docker_test_log_level: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4298) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$DOCKER_TEST_LOG_LEVEL'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4294) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4270 4286] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: CONTROLLER_MANAGER_TEST_ARGS span_id: 4330 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4336) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4343) fd: -1 here_begin: {(EOF)} here_end_span_id: 4369 stdin_parts: [ ("controller_manager_test_args: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4350) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ Id.VSub_DollarName '$CONTROLLER_MANAGER_TEST_ARGS') ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4346) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4322 4338] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: CONTROLLER_MANAGER_TEST_LOG_LEVEL span_id: 4382 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4388) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4395) fd: -1 here_begin: {(EOF)} here_end_span_id: 4421 stdin_parts: [ ("controller_manager_test_log_level: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4402) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ Id.VSub_DollarName '$CONTROLLER_MANAGER_TEST_LOG_LEVEL' ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4398) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4374 4390] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:SCHEDULER_TEST_ARGS span_id:4434) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4440) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4447) fd: -1 here_begin: {(EOF)} here_end_span_id: 4473 stdin_parts: [ ("scheduler_test_args: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4454) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$SCHEDULER_TEST_ARGS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4450) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4426 4442] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: SCHEDULER_TEST_LOG_LEVEL span_id: 4486 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4492) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4499) fd: -1 here_begin: {(EOF)} here_end_span_id: 4525 stdin_parts: [ ("scheduler_test_log_level: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4506) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$SCHEDULER_TEST_LOG_LEVEL'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4502) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4478 4494] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBEPROXY_TEST_ARGS span_id:4538) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4544) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4551) fd: -1 here_begin: {(EOF)} here_end_span_id: 4577 stdin_parts: [ ("kubeproxy_test_args: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4558) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$KUBEPROXY_TEST_ARGS'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4554) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4530 4546] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBEPROXY_TEST_LOG_LEVEL span_id: 4590 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4596) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4603) fd: -1 here_begin: {(EOF)} here_end_span_id: 4629 stdin_parts: [ ("kubeproxy_test_log_level: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4610) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$KUBEPROXY_TEST_LOG_LEVEL'))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4606) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4582 4598] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name ENABLE_CLUSTER_REGISTRY))} right: {(true)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name CLUSTER_REGISTRY_DISK))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:4663) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4670) fd: -1 here_begin: {(EOF)} here_end_span_id: 4720 stdin_parts: [ ('cluster_registry_disk_type: gce\n') ('cluster_registry_disk_size: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4678) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 4681 ) command_list: (command.CommandList children: [ (C {(convert-bytes-gce-kube)} {(${ Id.VSub_Name CLUSTER_REGISTRY_DISK_SIZE)} ) ] ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ('\n') ('cluster_registry_disk_name: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4701) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(${ Id.VSub_Name CLUSTER_REGISTRY_DISK)}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ('\n') ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4673) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4638 4665] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: TERMINATED_POD_GC_THRESHOLD span_id: 4733 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4739) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4746) fd: -1 here_begin: {(EOF)} here_end_span_id: 4774 stdin_parts: [ ("terminated_pod_gc_threshold: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4753) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name TERMINATED_POD_GC_THRESHOLD))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4749) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4725 4741] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_CUSTOM_METRICS span_id:4787) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4793) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4800) fd: -1 here_begin: {(EOF)} here_end_span_id: 4828 stdin_parts: [ ("enable_custom_metrics: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4807) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name ENABLE_CUSTOM_METRICS))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4803) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4779 4795] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:NODE_LABELS span_id:4841) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4847) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4854) fd: -1 here_begin: {(EOF)} here_end_span_id: 4882 stdin_parts: [ ("node_labels: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4861) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name NODE_LABELS))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4857) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4833 4849] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:NODE_TAINTS span_id:4895) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4901) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4908) fd: -1 here_begin: {(EOF)} here_end_span_id: 4936 stdin_parts: [ ("node_taints: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4915) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name NODE_TAINTS))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4911) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4887 4903] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:EVICTION_HARD span_id:4949) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:4955) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4962) fd: -1 here_begin: {(EOF)} here_end_span_id: 4990 stdin_parts: [ ("eviction_hard: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4969) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name EVICTION_HARD))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:4965) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4941 4957] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_CLUSTER_AUTOSCALER span_id: 5001 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) ) } right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:5014) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5021) fd: -1 here_begin: {(EOF)} here_end_span_id: 5091 stdin_parts: [ ("enable_cluster_autoscaler: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5028) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name ENABLE_CLUSTER_AUTOSCALER))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("autoscaler_mig_config: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5049) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name AUTOSCALER_MIG_CONFIG))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ("autoscaler_expander_config: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5070) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name AUTOSCALER_EXPANDER_CONFIG))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5024) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [4995 5016] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: SCHEDULING_ALGORITHM_PROVIDER span_id: 5104 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:5110) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5117) fd: -1 here_begin: {(EOF)} here_end_span_id: 5145 stdin_parts: [ ("scheduling_algorithm_provider: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5124) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name SCHEDULING_ALGORITHM_PROVIDER))} ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5120) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [5096 5112] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_IP_ALIASES span_id:5158) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:5164) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5171) fd: -1 here_begin: {(EOF)} here_end_span_id: 5197 stdin_parts: [ ("enable_ip_aliases: '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5178) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$ENABLE_IP_ALIASES'))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5174) fd: -1 arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)} ) ] ) ] spids: [5150 5166] ) ] ) ] ) ) (command.ShFunction name: convert-bytes-gce-kube body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'storage_space=') ($ Id.VSub_Number '$1')}) (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name storage_space))}) (C {(sed)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: 's/^\\([0-9]\\+\\)\\([A-Z]\\)\\?i\\?B$/\\1\\2/g' span_id: 5263 ) ) } {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/\\([A-Z]\\)$/\\1i/' span_id:5269))} ) ] negated: F ) ] ) ) (command.ShFunction name: create-salt-kubelet-auth body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'kubelet_kubeconfig_file=') (DQ (/srv/salt-overlay/salt/kubelet/bootstrap-kubeconfig)) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} {(DQ (${ Id.VSub_Name kubelet_kubeconfig_file))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:5325) ) ] action: [ (C {(mkdir)} {(-p)} {(/srv/salt-overlay/salt/kubelet)}) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(umask)} {(077)}) terminator: (Token id:Id.Op_Semi val:';' span_id:5341) ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:5346) fd: -1 arg_word: {(DQ (${ Id.VSub_Name kubelet_kubeconfig_file))} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5354) fd: -1 here_begin: {(EOF)} here_end_span_id: 5392 stdin_parts: [ ('apiVersion: v1\n') ('kind: Config\n') ('users:\n') ('- name: kubelet\n') (' user:\n') (' client-certificate: ') (${ Id.VSub_Name KUBELET_CERT_PATH) ('\n') (' client-key: ') (${ Id.VSub_Name KUBELET_KEY_PATH) ('\n') ('clusters:\n') ('- name: local\n') (' cluster:\n') (' server: https://') (${ Id.VSub_Name KUBERNETES_MASTER_NAME) ('\n') (' certificate-authority: ') (${ Id.VSub_Name CA_CERT_BUNDLE_PATH) ('\n') ('contexts:\n') ('- context:\n') (' cluster: local\n') (' user: kubelet\n') (' name: service-account-context\n') ('current-context: service-account-context\n') ] ) ] ) ] ) ) ] spids: [5310 5327] ) ] ) ] ) ) (command.ShFunction name: create-salt-kubeproxy-auth body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'kube_proxy_kubeconfig_file=') (DQ (/srv/salt-overlay/salt/kube-proxy/kubeconfig)) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-e)} {(DQ (${ Id.VSub_Name kube_proxy_kubeconfig_file))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:5447) ) ] action: [ (C {(mkdir)} {(-p)} {(/srv/salt-overlay/salt/kube-proxy)}) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(umask)} {(077)}) terminator: (Token id:Id.Op_Semi val:';' span_id:5463) ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:5468) fd: -1 arg_word: {(DQ (${ Id.VSub_Name kube_proxy_kubeconfig_file))} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5476) fd: -1 here_begin: {(EOF)} here_end_span_id: 5504 stdin_parts: [ ('apiVersion: v1\n') ('kind: Config\n') ('users:\n') ('- name: kube-proxy\n') (' user:\n') (' token: ') (${ Id.VSub_Name KUBE_PROXY_TOKEN) ('\n') ('clusters:\n') ('- name: local\n') (' cluster:\n') (' certificate-authority-data: ') (${ Id.VSub_Name CA_CERT_BUNDLE) ('\n') ('contexts:\n') ('- context:\n') (' cluster: local\n') (' user: kube-proxy\n') (' name: service-account-context\n') ('current-context: service-account-context\n') ] ) ] ) ] ) ) ] spids: [5432 5449] ) ] ) ] ) ) (command.ShFunction name: split-commas body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_Number '$1')}) (C {(tr)} {(DQ (','))} {(DQ (Id.Lit_Other '\\') (n))}) ] negated: F ) ] ) ) (command.ShFunction name: try-download-release body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'server_binary_tar_urls=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:5565) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5567) command_list: (command.CommandList children: [ (C {(split-commas)} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))}) ] ) ) } ] ) } ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'server_binary_tar=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:server_binary_tar_urls span_id:5587) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{('*') (Id.Lit_Slash /)}) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: SERVER_BINARY_TAR_HASH span_id: 5606 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:5612) ) ] action: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'server_binary_tar_hash=') (DQ (${ Id.VSub_Name SERVER_BINARY_TAR_HASH)) } ) ] spids: [5598 5614] ) ] else_action: [ (C {(echo)} {(DQ ('Downloading binary release sha1 (not found in env)'))}) (C {(download-or-bust)} {(DQ )} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:server_binary_tar_urls span_id:5646) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {(.tar.gz)} replace: {(.tar.gz.sha1)} replace_mode: Id.Undefined_Tok ) ) ) } ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'server_binary_tar_hash=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5663) command_list: (command.CommandList children: [(C {(cat)} {(DQ (${ Id.VSub_Name server_binary_tar) (.sha1))})] ) ) } ) ] ) (C {(echo)} { (DQ ('Downloading binary release tar (') (braced_var_sub token: (Token id:Id.VSub_Name val:server_binary_tar_urls span_id:5684) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) (')') ) } ) (C {(download-or-bust)} {(DQ (${ Id.VSub_Name server_binary_tar_hash))} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:server_binary_tar_urls span_id:5703) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'salt_tar_urls=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:5717) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5719) command_list: (command.CommandList children: [(C {(split-commas)} {(DQ (${ Id.VSub_Name SALT_TAR_URL))})] ) ) } ] ) } ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'salt_tar=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:salt_tar_urls span_id:5739) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{('*') (Id.Lit_Slash /)}) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:SALT_TAR_HASH span_id:5758) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:5764) ) ] action: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'salt_tar_hash=') (DQ (${ Id.VSub_Name SALT_TAR_HASH))} ) ] spids: [5750 5766] ) ] else_action: [ (C {(echo)} {(DQ ('Downloading Salt tar sha1 (not found in env)'))}) (C {(download-or-bust)} {(DQ )} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:salt_tar_urls span_id:5798) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.PatSub pat: {(.tar.gz)} replace: {(.tar.gz.sha1)} replace_mode: Id.Undefined_Tok ) ) ) } ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'salt_tar_hash=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5815) command_list: (command.CommandList children: [(C {(cat)} {(DQ (${ Id.VSub_Name salt_tar) (.sha1))})] ) ) } ) ] ) (C {(echo)} { (DQ ('Downloading Salt tar (') (braced_var_sub token: (Token id:Id.VSub_Name val:salt_tar_urls span_id:5836) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) (')') ) } ) (C {(download-or-bust)} {(DQ (${ Id.VSub_Name salt_tar_hash))} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:salt_tar_urls span_id:5855) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) (C {(echo)} {(DQ ('Unpacking Salt tree and checking integrity of binary release tar'))}) (C {(rm)} {(-rf)} {(kubernetes)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(tar)} {(xzf)} {(DQ (${ Id.VSub_Name salt_tar))}) (command.Simple words: [{(tar)} {(tzf)} {(DQ (${ Id.VSub_Name server_binary_tar))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:5900) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ] ) ) (command.ShFunction name: download-release body: (command.BraceGroup children: [ (command.WhileUntil keyword: (Token id:Id.KW_Until val:until span_id:5920) cond: [ (command.Sentence child: (C {(try-download-release)}) terminator: (Token id:Id.Op_Semi val:';' span_id:5923) ) ] body: (command.DoGroup children: [ (C {(sleep)} {(15)}) (C {(echo)} {(DQ ("Couldn't download release. Retrying..."))}) ] ) ) (C {(echo)} {(DQ ('Running release install script'))}) (C {(kubernetes/saltbase/install.sh)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:SERVER_BINARY_TAR_URL span_id:5955) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{('*') (Id.Lit_Slash /)}) ) ) } ) ] ) ) (command.ShFunction name: fix-apt-sources body: (command.BraceGroup children: [ (C {(sed)} {(-i)} {(-e)} {(DQ (Id.Lit_Other '\\') ('|^deb.*http://http.debian.net/debian| s/^/#/'))} {(/etc/apt/sources.list)} ) (C {(sed)} {(-i)} {(-e)} {(DQ (Id.Lit_Other '\\') ('|^deb.*http://ftp.debian.org/debian| s/^/#/'))} {(/etc/apt/sources.list.d/backports.list)} ) ] ) ) (command.ShFunction name: salt-run-local body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6015) fd: -1 here_begin: {(EOF)} here_end_span_id: 6026 stdin_parts: [ ('file_client: local\n') ('file_roots:\n') (' base:\n') (' - /srv/salt\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:6018) fd: -1 arg_word: {(/etc/salt/minion.d/local.conf)} ) ] ) ] ) ) (command.ShFunction name: salt-debug-log body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6041) fd: -1 here_begin: {(EOF)} here_end_span_id: 6050 stdin_parts: [('log_level: debug\n') ('log_level_logfile: debug\n')] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:6044) fd: -1 arg_word: {(/etc/salt/minion.d/log-level-debug.conf)} ) ] ) ] ) ) (command.ShFunction name: salt-node-role body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'kubelet_bootstrap_kubeconfig=') (DQ (/srv/salt-overlay/salt/kubelet/bootstrap-kubeconfig)) } ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'kubelet_kubeconfig=') (DQ (/srv/salt-overlay/salt/kubelet/kubeconfig))} ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6085) fd: -1 here_begin: {(EOF)} here_end_span_id: 6103 stdin_parts: [ ('grains:\n') (' roles:\n') (' - kubernetes-pool\n') (' cloud: gce\n') (" api_servers: '") (${ Id.VSub_Name KUBERNETES_MASTER_NAME) ("'\n") (' kubelet_bootstrap_kubeconfig: /var/lib/kubelet/bootstrap-kubeconfig\n') (' kubelet_kubeconfig: /var/lib/kubelet/kubeconfig\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:6088) fd: -1 arg_word: {(/etc/salt/minion.d/grains.conf)} ) ] ) ] ) ) (command.ShFunction name: env-to-grains body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'key=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'env_key=') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:6123) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ Id.VSub_DollarName '$key')}) (C {(tr)} {(SQ (Token id:Id.Lit_Chars val:'[:lower:]' span_id:6135))} {(SQ (Token id:Id.Lit_Chars val:'[:upper:]' span_id:6139))} ) ] negated: F ) ] ) ) } ) (C {(local)} {(Id.Lit_VarLike 'value=') (braced_var_sub token: (Token id:Id.VSub_Name val:env_key span_id:6149) prefix_op: (Id.VSub_Bang) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name value))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6167) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6178) fd: -1 here_begin: {(EOF)} here_end_span_id: 6210 stdin_parts: [ (' ') (${ Id.VSub_Name key) (": '") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6189) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name value))}) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'\n") ] ) (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6181) fd: -1 arg_word: {(/etc/salt/minion.d/grains.conf)} ) ] ) ] spids: [6154 6169] ) ] ) ] ) ) (command.ShFunction name: node-docker-opts body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: EXTRA_DOCKER_OPTS span_id: 6234 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6240) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKER_OPTS) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:DOCKER_OPTS span_id:6248) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) (' ') (${ Id.VSub_Name EXTRA_DOCKER_OPTS) ) } spids: [6245] ) ] ) ] spids: [6226 6242] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: DOCKER_REGISTRY_MIRROR_URL span_id: 6278 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6284) ) ] action: [ (C {(echo)} { (DQ ('Enable docker registry mirror at: ') (${ Id.VSub_Name DOCKER_REGISTRY_MIRROR_URL) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKER_OPTS) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:DOCKER_OPTS span_id:6302) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) (' --registry-mirror=') (${ Id.VSub_Name DOCKER_REGISTRY_MIRROR_URL) ) } spids: [6299] ) ] ) ] spids: [6270 6286] ) ] ) ] ) ) (command.ShFunction name: salt-grains body: (command.BraceGroup children: [ (C {(env-to-grains)} {(DQ (docker_opts))}) (C {(env-to-grains)} {(DQ (docker_root))}) (C {(env-to-grains)} {(DQ (kubelet_root))}) (C {(env-to-grains)} {(DQ (feature_gates))}) ] ) ) (command.ShFunction name: configure-salt body: (command.BraceGroup children: [ (C {(mkdir)} {(-p)} {(/etc/salt/minion.d)}) (C {(salt-run-local)}) (C {(salt-node-role)}) (C {(node-docker-opts)}) (C {(salt-grains)}) (C {(install-salt)}) (C {(stop-salt-minion)}) ] ) ) (command.ShFunction name: run-salt body: (command.BraceGroup children: [ (C {(echo)} {(DQ ('== Calling Salt =='))}) (C {(local)} {(Id.Lit_VarLike 'rc=') (0)}) (command.ForEach iter_name: i iter_words: [ (word.BracedTree parts: [(word_part.BracedRange kind:Id.Range_Int start:0 end:6 step:1)] ) ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(salt-call)} {(--retcode-passthrough)} {(--local)} {(state.highstate)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {(0)} spids: [6438] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [6443] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name rc))} right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6462) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:6467) arg_word: {(0)} ) ] spids: [6447 6464] ) ] ) ] ) ) (command.Simple words: [{(echo)} {(DQ ('Salt failed to run repeatedly'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:6484) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:6488) arg_word: {(DQ (${ Id.VSub_Name rc))} ) ] ) ) (command.ShFunction name: run-user-script body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(curl-metadata)} {(k8s-user-startup-script)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:6514) fd: -1 arg_word: {(DQ (${ Id.VSub_Name INSTALL_DIR) (/k8s-user-script.sh))} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:6522) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:user_script) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6528) command_list: (command.CommandList children: [ (C {(cat)} {(DQ (${ Id.VSub_Name INSTALL_DIR) (/k8s-user-script.sh))} ) ] ) ) } spids: [6527] ) ] ) ] spids: [6508 6524] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub token: (Token id:Id.VSub_Name val:user_script span_id:6552) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6557) ) ] action: [ (C {(chmod)} {(u) (Id.Lit_Other '+') (x)} {(DQ (${ Id.VSub_Name INSTALL_DIR) (/k8s-user-script.sh))} ) (C {(echo)} {(DQ ('== running user startup script =='))}) (C {(DQ (${ Id.VSub_Name INSTALL_DIR) (/k8s-user-script.sh))}) ] spids: [6543 6559] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBERNETES_MASTER span_id:6602) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6614) ) ] action: [ (C {(echo)} {(DQ ('Support for debian master has been removed'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:6626) arg_word: {(1)} ) ] spids: [6596 6616] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(DQ (${ Id.VSub_Name is_push))}) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6646) ) ] action: [ (C {(echo)} {(DQ ('== kube-up node config starting =='))}) (C {(set-broken-motd)}) (C {(config-ip-firewall)}) (C {(ensure-basic-networking)}) (C {(fix-apt-sources)}) (C {(ensure-install-dir)}) (C {(ensure-packages)}) (C {(set-kube-env)}) (C {(auto-upgrade)}) (C {(ensure-local-disks)}) (C {(create-node-pki)}) (C {(create-salt-pillar)}) (C {(create-salt-kubelet-auth)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_PROXY_DAEMONSET span_id: 6700 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6712) ) ] action: [(C {(create-salt-kubeproxy-auth)})] spids: [6694 6714] ) ] ) (C {(download-release)}) (C {(configure-salt)}) (C {(remove-docker-artifacts)}) (C {(run-salt)}) (C {(reset-motd)}) (C {(run-user-script)}) (C {(echo)} {(DQ ('== kube-up node config done =='))}) ] spids: [6633 6648] ) ] else_action: [ (C {(echo)} {(DQ ('== kube-push node config starting =='))}) (C {(ensure-basic-networking)}) (C {(ensure-install-dir)}) (C {(set-kube-env)}) (C {(create-salt-pillar)}) (C {(download-release)}) (C {(reset-motd)}) (C {(run-salt)}) (C {(echo)} {(DQ ('== kube-push node config done =='))}) ] ) ] )