(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:KUBE_ROOT) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:68) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:71) command_list: (command.CommandList children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})] ) ) (/..) } ) (C {(pwd)}) ] ) ] ) ) } spids: [67] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEFAULT_KUBECONFIG) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:HOME span_id:91) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(.)}) ) (/.kube/config) ) } spids: [88] ) ] ) (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/hack/lib/util.sh))}) (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/lib/logging.sh))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_RELEASE_VERSION_REGEX) op: assign_op.Equal rhs: { (DQ ('^v(0|[1-9][0-9]*)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:132) ) ('.(0|[1-9][0-9]*)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:134) ) ('.(0|[1-9][0-9]*)(-([a-zA-Z0-9]+)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:136) ) ('.(0|[1-9][0-9]*))?') (Id.Lit_Other '$') ) } spids: [129] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_RELEASE_VERSION_DASHED_REGEX) op: assign_op.Equal rhs: { (DQ ( 'v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)(-([a-zA-Z0-9]+)-(0|[1-9][0-9]*))?' ) ) } spids: [141] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_CI_VERSION_REGEX) op: assign_op.Equal rhs: { (DQ ('^v(0|[1-9][0-9]*)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:162) ) ('.(0|[1-9][0-9]*)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:164) ) ('.(0|[1-9][0-9]*)-([a-zA-Z0-9]+)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:166) ) ('.(0|[1-9][0-9]*)(') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:168) ) ('.(0|[1-9][0-9]*)') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:170) ) ('+[-0-9a-z]*)?') (Id.Lit_Other '$') ) } spids: [159] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_CI_VERSION_DASHED_REGEX) op: assign_op.Equal rhs: { (DQ ( '^v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-([a-zA-Z0-9]+)-(0|[1-9][0-9]*)(-(0|[1-9][0-9]*)' ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:178)) ('+[-0-9a-z]*)?') ) } spids: [175] ) ] ) (command.ShFunction name: create-kubeconfig body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBECONFIG) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:254) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')} ) ) } spids: [252] ) ] ) (C {(local)} {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SECONDARY_KUBECONFIG) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:SECONDARY_KUBECONFIG span_id:273) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } spids: [271] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OVERRIDE_CONTEXT) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:OVERRIDE_CONTEXT span_id:280) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } spids: [278] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$OVERRIDE_CONTEXT'))} right: {(DQ )} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:300) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONTEXT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OVERRIDE_CONTEXT')} spids: [304] ) ] ) ] spids: [286 301] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OLD_IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$IFS')} spids: [316] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:':' span_id:322))} spids: [320] ) ] ) (command.ForEach iter_name: cfg iter_words: [{(${ Id.VSub_Name KUBECONFIG)}] do_arg_iter: F body: (command.DoGroup 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 (${ Id.VSub_Name cfg))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:356) ) ] action: [ (C {(mkdir)} {(-p)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:366) command_list: (command.CommandList children: [(C {(dirname)} {(DQ (${ Id.VSub_Name cfg))})] ) ) ) } ) (C {(touch)} {(DQ (${ Id.VSub_Name cfg))}) ] spids: [341 358] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OLD_IFS')} spids: [393] ) ] ) (C {(local)} {(Id.Lit_VarLike 'cluster_args=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:401) words: [ { (DQ ('--server=') (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_SERVER span_id:407) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {('https:') (Id.Lit_Slash /) (Id.Lit_Slash /) (${ Id.VSub_Name KUBE_MASTER_IP) } ) ) ) } ] ) } ) (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 span_id:430) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:436) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cluster_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:442) words: [{(DQ ('--insecure-skip-tls-verify=true'))}] ) } spids: [441] ) ] ) ] spids: [422 438] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cluster_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:453) words: [ {(DQ ('--certificate-authority=') (${ Id.VSub_Name CA_CERT))} {(DQ ('--embed-certs=true'))} ] ) } spids: [452] ) ] ) ] ) (C {(local)} {(Id.Lit_VarLike 'user_args=') (sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:479)) } ) (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: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_BEARER_TOKEN span_id: 493 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:499) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:user_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:505) words: [{(DQ ('--token=') (${ Id.VSub_Name KUBE_BEARER_TOKEN))}] ) } spids: [504] ) ] ) ] spids: [483 501] ) (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: KUBE_USER span_id: 529 ) 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: KUBE_PASSWORD span_id: 542 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:548) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:user_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:554) words: [ {(DQ ('--username=') (${ Id.VSub_Name KUBE_USER))} {(DQ ('--password=') (${ Id.VSub_Name KUBE_PASSWORD))} ] ) } spids: [553] ) ] ) ] spids: [519 550] ) ] ) (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: KUBE_CERT span_id: 589 ) 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:KUBE_KEY span_id:602) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:608) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:user_args) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:614) words: [ {(DQ ('--client-certificate=') (${ Id.VSub_Name KUBE_CERT))} {(DQ ('--client-key=') (${ Id.VSub_Name KUBE_KEY))} {(DQ ('--embed-certs=true'))} ] ) } spids: [613] ) ] ) ] spids: [579 610] ) ] ) (command.Simple words: [ {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(set-cluster)} {(DQ (${ Id.VSub_Name CONTEXT))} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:cluster_args span_id:670) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] more_env: [ (env_pair name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} spids: [645] ) ] ) (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:user_args span_id:686) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:695) ) ] action: [ (command.Simple words: [ {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(set-credentials)} {(DQ (${ Id.VSub_Name CONTEXT))} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:user_args span_id:725) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] more_env: [ (env_pair name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} spids: [700] ) ] ) ] spids: [678 697] ) ] ) (command.Simple words: [ {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(set-context)} {(DQ (${ Id.VSub_Name CONTEXT))} {(--cluster) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name CONTEXT))} {(--user) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name CONTEXT))} ] more_env: [ (env_pair name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} spids: [736] ) ] ) (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 SECONDARY_KUBECONFIG))} right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:794) ) ] action: [ (command.Simple words: [ {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(use-context)} {(DQ (${ Id.VSub_Name CONTEXT))} {(--cluster) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name CONTEXT))} ] more_env: [ (env_pair name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} spids: [798] ) ] ) ] spids: [777 795] ) ] ) (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: KUBE_BEARER_TOKEN span_id: 856 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) right: (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: KUBE_USER span_id: 869 ) 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: KUBE_PASSWORD span_id: 882 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } ) ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:888) ) ] action: [ (command.Simple words: [ {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(set-credentials)} {(DQ (${ Id.VSub_Name CONTEXT) (-basic-auth))} {(DQ ('--username=') (${ Id.VSub_Name KUBE_USER))} {(DQ ('--password=') (${ Id.VSub_Name KUBE_PASSWORD))} ] more_env: [ (env_pair name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} spids: [893] ) ] ) ] spids: [846 890] ) ] ) (C {(echo)} { (DQ ('Wrote config for ') (${ Id.VSub_Name CONTEXT) (' to ') (${ Id.VSub_Name KUBECONFIG) ) } ) ] ) ) (command.ShFunction name: clear-kubeconfig body: (command.BraceGroup children: [ (C {(export)} {(Id.Lit_VarLike 'KUBECONFIG=') (braced_var_sub token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:983) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OVERRIDE_CONTEXT) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:OVERRIDE_CONTEXT span_id:991) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } spids: [989] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName '$OVERRIDE_CONTEXT'))} right: {(DQ )} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1011) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONTEXT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OVERRIDE_CONTEXT')} spids: [1015] ) ] ) ] spids: [997 1012] ) ] ) (C {(local)} {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} ) (C {(local)} {(Id.Lit_VarLike 'cc=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1041) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (SQ (Token id:Id.Lit_Chars val:'{.current-context}' span_id:1056)) } ) ] ) ) } ) (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 cc))} right: {(DQ (${ Id.VSub_Name CONTEXT))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1080) ) ] action: [ (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} {(current-context)}) ] spids: [1061 1082] ) ] ) (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} {(DQ (clusters.) (${ Id.VSub_Name CONTEXT))} ) (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} {(DQ (users.) (${ Id.VSub_Name CONTEXT))} ) (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} {(DQ (users.) (${ Id.VSub_Name CONTEXT) (-basic-auth))} ) (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} {(DQ (contexts.) (${ Id.VSub_Name CONTEXT))} ) (C {(echo)} { (DQ ('Cleared config for ') (${ Id.VSub_Name CONTEXT) (' from ') (${ Id.VSub_Name KUBECONFIG) ) } ) ] ) ) (command.ShFunction name: create-kubeconfig-for-federation body: (command.BraceGroup children: [ (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:FEDERATION span_id:1212) 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:1224) ) ] action: [ (C {(echo)} {(DQ ('creating kubeconfig for federation secret'))}) (C {(local)} {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh)) } ) (C {(local)} {(Id.Lit_VarLike 'cc=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1250) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (SQ (Token id:Id.Lit_Chars val:'{.current-context}' span_id:1265)) } ) ] ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBECONFIG_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1271) command_list: (command.CommandList children: [ (C {(dirname)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBECONFIG span_id: 1275 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')} ) ) } ) ] ) ) } spids: [1270] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBECONFIG_PATH) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name KUBECONFIG_DIR) (/federation/kubernetes-apiserver/) (${ Id.VSub_Name cc) ) } spids: [1282] ) ] ) (C {(mkdir)} {(-p)} {(DQ (${ Id.VSub_Name KUBECONFIG_PATH))}) (command.Simple words: [ {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(view)} {(--minify)} {(--flatten)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1319) fd: -1 arg_word: {(DQ (${ Id.VSub_Name KUBECONFIG_PATH) (/kubeconfig))} ) ] ) ] spids: [1206 1226] ) ] ) ] ) ) (command.ShFunction name: tear_down_alive_resources body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(deployments)} {(--all)}) (C {(true)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(rc)} {(--all)}) (C {(true)})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(pods)} {(--all)}) (C {(true)})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(svc)} {(--all)}) (C {(true)})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(pvc)} {(--all)}) (C {(true)})] ) ] ) ) (command.ShFunction name: get-kubeconfig-basicauth body: (command.BraceGroup children: [ (C {(export)} {(Id.Lit_VarLike 'KUBECONFIG=') (braced_var_sub token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:1487) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')} ) ) } ) (C {(local)} {(Id.Lit_VarLike 'cc=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1497) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.current-context}'))} ) ] ) ) } ) (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: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_CONTEXT span_id: 1528 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1534) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cc) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))} spids: [1539] ) ] ) ] spids: [1518 1536] ) ] ) (C {(local)} {(Id.Lit_VarLike 'user=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1553) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.contexts[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1570) ) (${ Id.VSub_Name cc) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1574) ) (')].context.user}') ) } ) ] ) ) } ) (C {(get-kubeconfig-user-basicauth)} {(DQ (${ Id.VSub_Name user))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_USER span_id:1598) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_PASSWORD span_id: 1609 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1615) ) ] action: [ (C {(get-kubeconfig-user-basicauth)} {(DQ (${ Id.VSub_Name user) (-basic-auth))}) ] spids: [1590 1617] ) ] ) ] ) ) (command.ShFunction name: get-kubeconfig-user-basicauth body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_USER) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1695) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.users[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1712) ) ($ Id.VSub_Number '$1') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1714) ) (')].user.username}') ) } ) ] ) ) } spids: [1694] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_PASSWORD) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1721) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.users[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1738) ) ($ Id.VSub_Number '$1') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1740) ) (')].user.password}') ) } ) ] ) ) } spids: [1720] ) ] ) ] ) ) (command.ShFunction name: gen-kube-basicauth body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_USER) op: assign_op.Equal rhs: {(admin)} spids: [1770] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_PASSWORD) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1775) command_list: (command.CommandList children: [ (C {(python)} {(-c)} { (SQ (Token id: Id.Lit_Chars val: 'import string,random; print("".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(16)))' span_id: 1781 ) ) } ) ] ) ) } spids: [1774] ) ] ) ] ) ) (command.ShFunction name: get-kubeconfig-bearertoken body: (command.BraceGroup children: [ (C {(export)} {(Id.Lit_VarLike 'KUBECONFIG=') (braced_var_sub token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:1831) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')} ) ) } ) (C {(local)} {(Id.Lit_VarLike 'cc=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1841) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.current-context}'))} ) ] ) ) } ) (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: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_CONTEXT span_id: 1872 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1878) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cc) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))} spids: [1883] ) ] ) ] spids: [1862 1880] ) ] ) (C {(local)} {(Id.Lit_VarLike 'user=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1897) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.contexts[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1914) ) (${ Id.VSub_Name cc) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1918) ) (')].context.user}') ) } ) ] ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_BEARER_TOKEN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1925) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.users[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1942) ) (${ Id.VSub_Name user) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1946) ) (')].user.token}') ) } ) ] ) ) } spids: [1924] ) ] ) ] ) ) (command.ShFunction name: gen-kube-bearertoken body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_BEARER_TOKEN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1976) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(dd)} {(Id.Lit_VarLike 'if=') (/dev/urandom)} {(Id.Lit_VarLike 'bs=') (128)} {(Id.Lit_VarLike 'count=') (1)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1988) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(base64)}) (C {(tr)} {(-d)} {(DQ ('=+/'))}) (command.Simple words: [ {(dd)} {(Id.Lit_VarLike 'bs=') (32)} {(Id.Lit_VarLike 'count=') (1)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:2015) fd: 2 arg_word: {(/dev/null)} ) ] ) ] negated: F ) ] ) ) } spids: [1975] ) ] ) ] ) ) (command.ShFunction name: gen-uid body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_UID) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2048) command_list: (command.CommandList children: [ (C {(python)} {(-c)} { (SQ (Token id: Id.Lit_Chars val: 'import uuid; print(uuid.uuid1().fields[0])' span_id: 2054 ) ) } ) ] ) ) } spids: [2047] ) ] ) ] ) ) (command.ShFunction name: load-or-gen-kube-basicauth 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_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_CONTEXT span_id: 2081 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2087) ) ] action: [(C {(get-kubeconfig-basicauth)})] spids: [2071 2089] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_USER span_id:2107) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_PASSWORD span_id: 2118 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2124) ) ] action: [(C {(gen-kube-basicauth)})] spids: [2099 2126] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ (${ Id.VSub_Name KUBE_USER))} right: {(Id.Lit_Other '^') (Id.Lit_Other '[') (-) (Id.Lit_Other .) (_) (Id.Lit_Other '@') (a-zA-Z0-9) (Id.Lit_Other ']') (Id.Lit_Other '+') (Id.Lit_Other '$') } ) ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:2166) ) ] action: [ (C {(echo)} {(DQ ('Bad KUBE_USER string.'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2178) arg_word: {(1)} ) ] spids: [2140 2168] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ (${ Id.VSub_Name KUBE_PASSWORD))} right: {(Id.Lit_Other '^') (Id.Lit_Other '[') (-) (Id.Lit_Other .) (_) (Id.Lit_Other '@') (Id.Lit_Other '#') (Id.Lit_Other '%') (/a-zA-Z0-9) (Id.Lit_Other ']') (Id.Lit_Other '+') (Id.Lit_Other '$') } ) ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:2214) ) ] action: [ (C {(echo)} {(DQ ('Bad KUBE_PASSWORD string.'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2226) arg_word: {(1)} ) ] spids: [2186 2216] ) ] ) ] ) ) (command.ShFunction name: load-or-gen-kube-bearertoken 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_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_CONTEXT span_id: 2255 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2261) ) ] action: [(C {(get-kubeconfig-bearertoken)})] spids: [2245 2263] ) ] ) (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: KUBE_BEARER_TOKEN span_id: 2280 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2286) ) ] action: [(C {(gen-kube-bearertoken)})] spids: [2272 2288] ) ] ) ] ) ) (command.ShFunction name: detect-master-from-kubeconfig body: (command.BraceGroup children: [ (C {(export)} {(Id.Lit_VarLike 'KUBECONFIG=') (braced_var_sub token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:2345) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')} ) ) } ) (C {(local)} {(Id.Lit_VarLike 'cc=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2355) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.current-context}'))} ) ] ) ) } ) (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: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_CONTEXT span_id: 2386 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2392) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cc) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))} spids: [2397] ) ] ) ] spids: [2376 2394] ) ] ) (C {(local)} {(Id.Lit_VarLike 'cluster=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2411) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.contexts[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2428) ) (${ Id.VSub_Name cc) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2432) ) (')].context.cluster}') ) } ) ] ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MASTER_URL) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2439) command_list: (command.CommandList children: [ (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.clusters[?(@.name == ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2456) ) (${ Id.VSub_Name cluster) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2460) ) (')].cluster.server}') ) } ) ] ) ) } spids: [2438] ) ] ) ] ) ) (command.ShFunction name: set_binary_version body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ (${ Id.VSub_Number 1))} right: {(DQ (/))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2527) ) ] action: [ (command.Simple words: [{(read)} {(-a)} {(path)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_TLess val:'<<<' span_id:2543) fd: -1 arg_word: {(DQ (${ Id.VSub_Number 1))} ) ] more_env: [ (env_pair name: IFS val: {(SQ (Token id:Id.Lit_Chars val:/ span_id:2534))} spids: [2532] ) ] ) (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:path span_id:2558) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) ) } right: {(DQ (release))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2572) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2578 ) command_list: (command.CommandList children: [ (C {(gsutil)} {(cat)} { (DQ ('gs://kubernetes-release/') (${ Id.VSub_Number 1) (.txt) ) } ) ] ) ) } spids: [2577] ) ] ) ] spids: [2552 2574] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2597) command_list: (command.CommandList children: [ (C {(gsutil)} {(cat)} { (DQ ('gs://kubernetes-release-dev/') (${ Id.VSub_Number 1) (.txt) ) } ) ] ) ) } spids: [2596] ) ] ) ] ) ] spids: [2510 2529] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_VERSION) op: assign_op.Equal rhs: {(${ Id.VSub_Number 1)} spids: [2618] ) ] ) ] ) ] ) ) (command.ShFunction name: tars_from_version body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'sha1sum=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(which)} {(sha1sum)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2693) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:2696) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:2698) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sha1sum) op: assign_op.Equal rhs: {(DQ (sha1sum))} spids: [2703] ) ] ) ] spids: [2687 2700] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sha1sum) op: assign_op.Equal rhs: {(DQ ('shasum -a1'))} spids: [2712] ) ] ) ] ) (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:KUBE_VERSION span_id:2730) suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2736) ) ] action: [(C {(find-release-tars)}) (C {(upload-server-tars)})] spids: [2722 2738] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name KUBE_VERSION)} right: {(${ Id.VSub_Name KUBE_RELEASE_VERSION_REGEX)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2762) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR_URL) op: assign_op.Equal rhs: { (DQ ('https://storage.googleapis.com/kubernetes-release/release/') (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-server-linux-amd64.tar.gz) ) } spids: [2767] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SALT_TAR_URL) op: assign_op.Equal rhs: { (DQ ('https://storage.googleapis.com/kubernetes-release/release/') (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-salt.tar.gz) ) } spids: [2777] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_URL) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: SERVER_BINARY_TAR_URL span_id: 2794 ) suffix_op: (suffix_op.PatSub pat: {(server-linux-amd64)} replace: {(manifests)} replace_mode: Id.Undefined_Tok ) ) ) } spids: [2791] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_HASH) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2804) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(curl)} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL)} {(--silent)} {(--show-error)} ) (C {(${ Id.VSub_Name sha1sum)}) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '{print $1}' span_id: 2826 ) ) } ) ] negated: F ) ] ) ) } spids: [2803] ) ] ) ] spids: [2747 2764] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name KUBE_VERSION)} right: {(${ Id.VSub_Name KUBE_CI_VERSION_REGEX)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:2846) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR_URL) op: assign_op.Equal rhs: { (DQ ('https://storage.googleapis.com/kubernetes-release-dev/ci/') (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-server-linux-amd64.tar.gz) ) } spids: [2851] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SALT_TAR_URL) op: assign_op.Equal rhs: { (DQ ('https://storage.googleapis.com/kubernetes-release-dev/ci/') (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-salt.tar.gz) ) } spids: [2861] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_URL) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: SERVER_BINARY_TAR_URL span_id: 2878 ) suffix_op: (suffix_op.PatSub pat: {(server-linux-amd64)} replace: {(manifests)} replace_mode: Id.Undefined_Tok ) ) ) } spids: [2875] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_HASH) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2888) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(curl)} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL)} {(--silent)} {(--show-error)} ) (C {(${ Id.VSub_Name sha1sum)}) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '{print $1}' span_id: 2910 ) ) } ) ] negated: F ) ] ) ) } spids: [2887] ) ] ) ] spids: [2831 2848] ) ] else_action: [ (command.Simple words: [{(echo)} {(DQ ("Version doesn't match regexp"))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:2924) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:2928) arg_word: {(1)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR_HASH) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2941 ) command_list: (command.CommandList children: [ (C {(curl)} {(-Ss)} {(--fail)} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL) (.sha1))} ) ] ) ) } spids: [2940] ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:2955) ) ] action: [(C {(echo)} {(DQ ('Failure trying to curl release .sha1'))})] spids: [2936 2957] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SALT_TAR_HASH) op: assign_op.Equal rhs: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2975 ) command_list: (command.CommandList children: [ (C {(curl)} {(-Ss)} {(--fail)} {(DQ (${ Id.VSub_Name SALT_TAR_URL) (.sha1))} ) ] ) ) } spids: [2974] ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:2989) ) ] action: [(C {(echo)} {(DQ ('Failure trying to curl Salt tar .sha1'))})] spids: [2970 2991] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [ {(curl)} {(-Ss)} {(--head)} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3021) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:3023) ) ] action: [ (command.Simple words: [ {(echo)} {(DQ ("Can't find release at ") (${ Id.VSub_Name SERVER_BINARY_TAR_URL))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3037) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3041) arg_word: {(1)} ) ] spids: [3005 3025] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{(curl)} {(-Ss)} {(--head)} {(DQ (${ Id.VSub_Name SALT_TAR_URL))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3065) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:3067) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ("Can't find Salt tar at ") (${ Id.VSub_Name SALT_TAR_URL))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3081) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3085) arg_word: {(1)} ) ] spids: [3049 3069] ) ] ) ] ) ) (command.ShFunction name: find-tar body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'tarball=') ($ Id.VSub_Number '$1')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:locations) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:3137) words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) (/server/) (${ Id.VSub_Name tarball))} { (DQ (${ Id.VSub_Name KUBE_ROOT) (/_output/release-tars/) (${ Id.VSub_Name tarball) ) } { (DQ (${ Id.VSub_Name KUBE_ROOT) (/bazel-bin/build/release-tars/) (${ Id.VSub_Name tarball) ) } ] ) } spids: [3136] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:location) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3177) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Subshell command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(ls)} {(-t)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: locations span_id: 3186 ) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 3193 ) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(true)}) ] ) ] ) ) (C {(head)} {(-1)}) ] negated: F ) ] ) ) } spids: [3176] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ (${ Id.VSub_Name location))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:3226) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('!!! Cannot find ') (${ Id.VSub_Name tarball))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3240) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3244) arg_word: {(1)} ) ] spids: [3211 3228] ) ] ) (C {(echo)} {(DQ (${ Id.VSub_Name location))}) ] ) ) (command.ShFunction name: find-release-tars body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3297) command_list: (command.CommandList children: [(C {(find-tar)} {(kubernetes-server-linux-amd64.tar.gz)})] ) ) } spids: [3296] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SALT_TAR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3305) command_list: (command.CommandList children: [(C {(find-tar)} {(kubernetes-salt.tar.gz)})] ) ) } spids: [3304] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR) op: assign_op.Equal rhs: (word.Empty) spids: [3317] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_OS_DISTRIBUTION span_id: 3326 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } right: {(DQ (trusty))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_OS_DISTRIBUTION span_id: 3341 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } right: {(DQ (gci))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_OS_DISTRIBUTION span_id: 3356 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } right: {(DQ (container-linux))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_OS_DISTRIBUTION span_id: 3371 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } right: {(DQ (ubuntu))} ) ) ) ) ) (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_OS_DISTRIBUTION span_id: 3392 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } right: {(DQ (trusty))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_OS_DISTRIBUTION span_id: 3407 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } right: {(DQ (gci))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_OS_DISTRIBUTION span_id: 3422 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } right: {(DQ (container-linux))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_OS_DISTRIBUTION span_id: 3437 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: (word.Empty) ) ) ) } right: {(DQ (ubuntu))} ) ) ) ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:3450) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3456) command_list: (command.CommandList children: [(C {(find-tar)} {(kubernetes-manifests.tar.gz)})] ) ) } spids: [3455] ) ] ) ] spids: [3320 3452] ) ] ) ] ) ) (command.ShFunction name: find-release-version body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_GIT_VERSION) op: assign_op.Equal rhs: {(DQ )} spids: [3495] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ (${ Id.VSub_Name KUBE_ROOT) (/version))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:3514) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_GIT_VERSION) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3521) command_list: (command.CommandList children: [(C {(cat)} {(${ Id.VSub_Name KUBE_ROOT) (/version)})] ) ) ) } spids: [3519] ) ] ) ] spids: [3500 3516] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: { (DQ (${ Id.VSub_Name KUBE_ROOT) (/_output/release-stage/full/kubernetes/version) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:3549) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_GIT_VERSION) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3556) command_list: (command.CommandList children: [ (C {(cat)} {(${ Id.VSub_Name KUBE_ROOT) (/_output/release-stage/full/kubernetes/version) } ) ] ) ) ) } spids: [3554] ) ] ) ] spids: [3535 3551] ) ] ) (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 KUBE_GIT_VERSION))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:3584) ) ] action: [ (C {(echo)} {(DQ ('!!! Cannot find release version'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3596) arg_word: {(1)} ) ] spids: [3571 3586] ) ] ) ] ) ) (command.ShFunction name: stage-images body: (command.BraceGroup children: [ (C {(find-release-version)}) (C {(find-release-tars)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_IMAGE_TAG) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3624) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ) (DQ (${ Id.VSub_Name KUBE_GIT_VERSION)) (DQ )}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/+/-/g' span_id:3642))}) ] negated: F ) ] ) ) ) } spids: [3622] ) ] ) (C {(local)} {(Id.Lit_VarLike 'docker_wrapped_binaries=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:3652) words: [ {(DQ (kube-apiserver))} {(DQ (kube-controller-manager))} {(DQ (kube-scheduler))} {(DQ (kube-proxy))} ] ) } ) (C {(local)} {(Id.Lit_VarLike 'docker_cmd=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:3682) words: [{(DQ (docker))}] ) } ) (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 KUBE_DOCKER_REGISTRY))} right: {(DQ (gcr.io/)) (Id.Lit_Other '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:3708) ) ] action: [ (C {(local)} {(Id.Lit_VarLike 'docker_push_cmd=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:3716) words: [{(DQ (gcloud))} {(DQ (docker))}] ) } ) ] spids: [3690 3710] ) ] else_action: [ (C {(local)} {(Id.Lit_VarLike 'docker_push_cmd=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:3733) words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:docker_cmd span_id:3736) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] ) } ) ] ) (C {(local)} {(Id.Lit_VarLike 'temp_dir=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3753) command_list: (command.CommandList children: [ (C {(mktemp)} {(-d)} {(-t)} {(SQ (Token id:Id.Lit_Chars val:kube-server-XXXX span_id:3761))} ) ] ) ) ) } ) (command.Simple words: [ {(tar)} {(xzfv)} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR))} {(-C)} {(DQ (${ Id.VSub_Name temp_dir))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:3786) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.ForEach iter_name: binary iter_words: [ { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:docker_wrapped_binaries span_id:3800) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {(local)} {(Id.Lit_VarLike 'docker_tag=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3815) command_list: (command.CommandList children: [ (C {(cat)} {(${ Id.VSub_Name temp_dir) (/kubernetes/server/bin/) (${ Id.VSub_Name binary) (.docker_tag) } ) ] ) ) ) } ) (command.Sentence child: (command.Subshell command_list: (command.CommandList children: [ (C { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:docker_cmd span_id:3835) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {(load)} {(-i)} { (DQ (${ Id.VSub_Name temp_dir) (/kubernetes/server/bin/) (${ Id.VSub_Name binary) (.tar) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: docker_cmd span_id: 3860 ) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {(rmi)} { (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) (/) (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name KUBE_IMAGE_TAG) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:3883) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(true)}) ] ) (C { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:docker_cmd span_id:3893) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {(tag)} {(DQ (gcr.io/google_containers/) (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name docker_tag))} { (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) (/) (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name KUBE_IMAGE_TAG) ) } ) (C { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: docker_push_cmd span_id: 3930 ) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {(push)} { (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) (/) (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name KUBE_IMAGE_TAG) ) } ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:3956) fd: -1 arg_word: { (DQ (${ Id.VSub_Name temp_dir) (/) (${ Id.VSub_Name binary) (-push.log) ) } ) ] ) terminator: (Token id:Id.Op_Amp val:'&' span_id:3969) ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') (Id.Lit_Other ':') (wait-for-jobs) } ) (command.BraceGroup children: [ (C {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (log) (Id.Lit_Other ':') (Id.Lit_Other ':') (error) } {(DQ ('unable to push images. See ') (${ Id.VSub_Name temp_dir) ('/*.log for more info.'))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:4006) arg_word: {(1)} ) ] ) ] ) (C {(rm)} {(-rf)} {(DQ (${ Id.VSub_Name temp_dir))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:4026) arg_word: {(0)} ) ] ) ) (command.ShFunction name: yaml-quote body: (command.BraceGroup children: [ (C {(echo)} { (DQ ("'") (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4059) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id:Id.VSub_At val:'@' span_id:4064) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))}) ] negated: F ) ] ) ) ("'") ) } ) ] ) ) (command.ShFunction name: build-runtime-config body: (command.BraceGroup children:[(C {(Id.Lit_Other ':')})]) ) (command.ShFunction name: write-cluster-name body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:4127) fd: -1 arg_word: {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cluster-name.txt))} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4135) fd: -1 here_begin: {(EOF)} here_end_span_id: 4144 stdin_parts: [(${ Id.VSub_Name CLUSTER_NAME) ('\n')] ) ] ) ] ) ) (command.ShFunction name: write-master-env body: (command.BraceGroup children: [ (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 (braced_var_sub token: (Token id: Id.VSub_Name val: REGISTER_MASTER_KUBELET span_id: 4169 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } right: {(DQ (true))} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBELET_APISERVER span_id: 4186 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:4192) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_APISERVER) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))} spids: [4197] ) ] ) ] spids: [4163 4194] ) ] ) (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: KUBERNETES_MASTER_NAME span_id: 4216 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:4222) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBERNETES_MASTER_NAME) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))} spids: [4227] ) ] ) ] spids: [4208 4224] ) ] ) (C {(build-kube-env)} {(true)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/master-kube-env.yaml))}) (C {(build-kube-master-certs)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/kube-master-certs.yaml))}) ] ) ) (command.ShFunction name: write-node-env body: (command.BraceGroup children: [ (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: KUBERNETES_MASTER_NAME span_id: 4278 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:4284) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBERNETES_MASTER_NAME) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))} spids: [4289] ) ] ) ] spids: [4270 4286] ) ] ) (C {(build-kube-env)} {(false)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/node-kube-env.yaml))}) ] ) ) (command.ShFunction name: build-kube-master-certs body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'file=') ($ Id.VSub_Number '$1')}) (C {(rm)} {(-f)} {(${ Id.VSub_Name file)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:4339) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4342) fd: -1 here_begin: {(EOF)} here_end_span_id: 4416 stdin_parts: [ ('KUBEAPISERVER_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4346) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBEAPISERVER_CERT_BASE64 span_id: 4350 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBEAPISERVER_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4356) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBEAPISERVER_KEY_BASE64 span_id: 4360 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('CA_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4366) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:CA_KEY_BASE64 span_id:4370) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('AGGREGATOR_CA_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4376) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: AGGREGATOR_CA_KEY_BASE64 span_id: 4380 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('REQUESTHEADER_CA_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4386) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: REQUESTHEADER_CA_CERT_BASE64 span_id: 4390 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('PROXY_CLIENT_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4396) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: PROXY_CLIENT_CERT_BASE64 span_id: 4400 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('PROXY_CLIENT_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4406) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: PROXY_CLIENT_KEY_BASE64 span_id: 4410 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ] ) ] ) ] ) ) (command.ShFunction name: build-kube-env body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'master=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'file=') ($ Id.VSub_Number '$2')}) (C {(local)} {(Id.Lit_VarLike 'server_binary_tar_url=') ($ Id.VSub_DollarName '$SERVER_BINARY_TAR_URL') } ) (C {(local)} {(Id.Lit_VarLike 'salt_tar_url=') ($ Id.VSub_DollarName '$SALT_TAR_URL')}) (C {(local)} {(Id.Lit_VarLike 'kube_manifests_tar_url=') (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_MANIFESTS_TAR_URL span_id:4460) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (true))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (container-linux))} ) ) ) (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (false))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (container-linux))} ) ) ) (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (true))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (ubuntu))} ) ) ) (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (false))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (ubuntu))} ) ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:4600) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:server_binary_tar_url) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4610) command_list: (command.CommandList children: [ (C {(split_csv)} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))}) ] ) ) } spids: [4609] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:salt_tar_url) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4622) command_list: (command.CommandList children: [(C {(split_csv)} {(DQ (${ Id.VSub_Name SALT_TAR_URL))})] ) ) } spids: [4621] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kube_manifests_tar_url) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4634) command_list: (command.CommandList children: [ (C {(split_csv)} {(DQ (${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL))}) ] ) ) } spids: [4633] ) ] ) ] spids: [4466 4602] ) ] ) (C {(build-runtime-config)}) (C {(gen-uid)}) (C {(rm)} {(-f)} {(${ Id.VSub_Name file)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:4667) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:4670) fd: -1 here_begin: {(EOF)} here_end_span_id: 5434 stdin_parts: [ ('CLUSTER_NAME: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4674) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name CLUSTER_NAME)})] ) ) ('\n') ('ENV_TIMESTAMP: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4683) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4686) command_list: (command.CommandList children: [ (C {(date)} {(-u)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (Y-) (Id.Lit_Other '%') (m-) (Id.Lit_Other '%') (dT) (Id.Lit_Other '%') (T) (Id.Lit_Other '%') (z) } ) ] ) ) } ) ] ) ) ('\n') ('INSTANCE_PREFIX: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4706) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name INSTANCE_PREFIX)})] ) ) ('\n') ('NODE_INSTANCE_PREFIX: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4715) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name NODE_INSTANCE_PREFIX)})] ) ) ('\n') ('NODE_TAGS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4724) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:NODE_TAGS span_id:4728) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NODE_NETWORK: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4734) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:NETWORK span_id:4738) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NODE_SUBNETWORK: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4744) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:SUBNETWORK span_id:4748) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('CLUSTER_IP_RANGE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4754) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:CLUSTER_IP_RANGE span_id:4758) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(10.244.0.0) (Id.Lit_Slash /) (16)} ) ) } ) ] ) ) ('\n') ('SERVER_BINARY_TAR_URL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4767) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name server_binary_tar_url)})] ) ) ('\n') ('SERVER_BINARY_TAR_HASH: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4776) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name SERVER_BINARY_TAR_HASH)})] ) ) ('\n') ('PROJECT_ID: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4785) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name PROJECT)})] ) ) ('\n') ('NETWORK_PROJECT_ID: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4794) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name NETWORK_PROJECT)})] ) ) ('\n') ('SALT_TAR_URL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4803) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name salt_tar_url)})] ) ) ('\n') ('SALT_TAR_HASH: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4812) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name SALT_TAR_HASH)})] ) ) ('\n') ('SERVICE_CLUSTER_IP_RANGE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4821) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name SERVICE_CLUSTER_IP_RANGE)})] ) ) ('\n') ('KUBERNETES_MASTER_NAME: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4830) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBERNETES_MASTER_NAME)})] ) ) ('\n') ('ALLOCATE_NODE_CIDRS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4839) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ALLOCATE_NODE_CIDRS span_id:4843) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_CLUSTER_MONITORING: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4850) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_CLUSTER_MONITORING span_id: 4854 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(none)} ) ) } ) ] ) ) ('\n') ('ENABLE_METRICS_SERVER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4861) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_METRICS_SERVER span_id: 4865 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('DOCKER_REGISTRY_MIRROR_URL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4872) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: DOCKER_REGISTRY_MIRROR_URL span_id: 4876 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_L7_LOADBALANCING: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4882) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_L7_LOADBALANCING span_id: 4886 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(none)} ) ) } ) ] ) ) ('\n') ('ENABLE_CLUSTER_LOGGING: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4893) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_CLUSTER_LOGGING span_id: 4897 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_CLUSTER_UI: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4904) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_CLUSTER_UI span_id:4908) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_NODE_PROBLEM_DETECTOR: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4915) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_NODE_PROBLEM_DETECTOR span_id: 4919 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(none)} ) ) } ) ] ) ) ('\n') ('NODE_PROBLEM_DETECTOR_VERSION: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4926) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_PROBLEM_DETECTOR_VERSION span_id: 4930 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NODE_PROBLEM_DETECTOR_TAR_HASH: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4936) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_PROBLEM_DETECTOR_TAR_HASH span_id: 4940 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_NODE_LOGGING: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4946) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_NODE_LOGGING span_id:4950) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_RESCHEDULER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4957) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_RESCHEDULER span_id:4961) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('LOGGING_DESTINATION: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4968) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:LOGGING_DESTINATION span_id:4972) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ELASTICSEARCH_LOGGING_REPLICAS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4978) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ELASTICSEARCH_LOGGING_REPLICAS span_id: 4982 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_CLUSTER_DNS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4988) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_CLUSTER_DNS span_id:4992) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_CLUSTER_REGISTRY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4999) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_CLUSTER_REGISTRY span_id: 5003 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('CLUSTER_REGISTRY_DISK: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5010) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: CLUSTER_REGISTRY_DISK span_id: 5014 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('CLUSTER_REGISTRY_DISK_SIZE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5020) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: CLUSTER_REGISTRY_DISK_SIZE span_id: 5024 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('DNS_SERVER_IP: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5030) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:DNS_SERVER_IP span_id:5034) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('DNS_DOMAIN: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5040) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:DNS_DOMAIN span_id:5044) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_DNS_HORIZONTAL_AUTOSCALER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5050) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_DNS_HORIZONTAL_AUTOSCALER span_id: 5054 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('KUBELET_TOKEN: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5061) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBELET_TOKEN span_id:5065) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBE_PROXY_DAEMONSET: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5071) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_PROXY_DAEMONSET span_id: 5075 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('KUBE_PROXY_TOKEN: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5082) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_PROXY_TOKEN span_id:5086) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NODE_PROBLEM_DETECTOR_TOKEN: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5092) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: NODE_PROBLEM_DETECTOR_TOKEN span_id: 5096 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ADMISSION_CONTROL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5102) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ADMISSION_CONTROL span_id:5106) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('MASTER_IP_RANGE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5112) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name MASTER_IP_RANGE)})] ) ) ('\n') ('RUNTIME_CONFIG: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5121) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name RUNTIME_CONFIG)})] ) ) ('\n') ('CA_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5130) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:CA_CERT_BASE64 span_id:5134) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBELET_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5140) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBELET_CERT_BASE64 span_id:5144) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBELET_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5150) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBELET_KEY_BASE64 span_id:5154) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NETWORK_PROVIDER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5160) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:NETWORK_PROVIDER span_id:5164) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NETWORK_POLICY_PROVIDER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5170) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: NETWORK_POLICY_PROVIDER span_id: 5174 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('PREPULL_E2E_IMAGES: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5180) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:PREPULL_E2E_IMAGES span_id:5184) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('HAIRPIN_MODE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5190) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:HAIRPIN_MODE span_id:5194) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('SOFTLOCKUP_PANIC: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5200) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:SOFTLOCKUP_PANIC span_id:5204) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('OPENCONTRAIL_TAG: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5210) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:OPENCONTRAIL_TAG span_id:5214) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('OPENCONTRAIL_KUBERNETES_TAG: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5220) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: OPENCONTRAIL_KUBERNETES_TAG span_id: 5224 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('OPENCONTRAIL_PUBLIC_SUBNET: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5230) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: OPENCONTRAIL_PUBLIC_SUBNET span_id: 5234 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('E2E_STORAGE_TEST_ENVIRONMENT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5240) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: E2E_STORAGE_TEST_ENVIRONMENT span_id: 5244 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBE_IMAGE_TAG: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5250) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_IMAGE_TAG span_id:5254) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBE_DOCKER_REGISTRY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5260) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBE_DOCKER_REGISTRY span_id: 5264 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBE_ADDON_REGISTRY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5270) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_ADDON_REGISTRY span_id:5274) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('MULTIZONE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5280) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:MULTIZONE span_id:5284) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NON_MASQUERADE_CIDR: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5290) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:NON_MASQUERADE_CIDR span_id:5294) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBE_UID: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5300) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_UID span_id:5304) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_DEFAULT_STORAGE_CLASS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5310) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_DEFAULT_STORAGE_CLASS span_id: 5314 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_APISERVER_BASIC_AUDIT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5320) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_APISERVER_BASIC_AUDIT span_id: 5324 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_APISERVER_ADVANCED_AUDIT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5330) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_APISERVER_ADVANCED_AUDIT span_id: 5334 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_CACHE_MUTATION_DETECTOR: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5340) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_CACHE_MUTATION_DETECTOR span_id: 5344 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_PATCH_CONVERSION_DETECTOR: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5351) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_PATCH_CONVERSION_DETECTOR span_id: 5355 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ADVANCED_AUDIT_POLICY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5362) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ADVANCED_AUDIT_POLICY span_id: 5366 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ADVANCED_AUDIT_BACKEND: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5372) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ADVANCED_AUDIT_BACKEND span_id: 5376 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(log)} ) ) } ) ] ) ) ('\n') ('GCE_API_ENDPOINT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5383) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:GCE_API_ENDPOINT span_id:5387) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('PROMETHEUS_TO_SD_ENDPOINT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5393) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: PROMETHEUS_TO_SD_ENDPOINT span_id: 5397 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('PROMETHEUS_TO_SD_PREFIX: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5403) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: PROMETHEUS_TO_SD_PREFIX span_id: 5407 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_PROMETHEUS_TO_SD: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5413) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_PROMETHEUS_TO_SD span_id: 5417 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('ENABLE_POD_PRIORITY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5424) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:ENABLE_POD_PRIORITY span_id:5428) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ] ) ] ) (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:5444) 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:5450) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5457) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5460) fd: -1 here_begin: {(EOF)} here_end_span_id: 5473 stdin_parts: [ ('KUBELET_PORT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5464) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBELET_PORT)})] ) ) ('\n') ] ) ] ) ] spids: [5436 5452] ) ] ) (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 span_id: 5486 ) 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:5492) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5499) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5502) fd: -1 here_begin: {(EOF)} here_end_span_id: 5515 stdin_parts: [ ('KUBE_APISERVER_REQUEST_TIMEOUT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5506) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT)} ) ] ) ) ('\n') ] ) ] ) ] spids: [5478 5494] ) ] ) (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: 5528 ) 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:5534) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5541) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5544) fd: -1 here_begin: {(EOF)} here_end_span_id: 5557 stdin_parts: [ ('TERMINATED_POD_GC_THRESHOLD: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5548) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name TERMINATED_POD_GC_THRESHOLD)}) ] ) ) ('\n') ] ) ] ) ] spids: [5520 5536] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (true))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (trusty))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (gci))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (container-linux))} ) ) ) ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (ubuntu))} ) ) ) (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (false))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (trusty))} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (gci))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (container-linux))} ) ) ) ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (ubuntu))} ) ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:5716) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5723) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5726) fd: -1 here_begin: {(EOF)} here_end_span_id: 5748 stdin_parts: [ ('KUBE_MANIFESTS_TAR_URL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5730) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name kube_manifests_tar_url)}) ] ) ) ('\n') ('KUBE_MANIFESTS_TAR_HASH: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5739) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_HASH)}) ] ) ) ('\n') ] ) ] ) ] spids: [5562 5718] ) ] ) (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:TEST_CLUSTER span_id:5761) 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:5767) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5774) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5777) fd: -1 here_begin: {(EOF)} here_end_span_id: 5790 stdin_parts: [ ('TEST_CLUSTER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5781) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name TEST_CLUSTER)})] ) ) ('\n') ] ) ] ) ] spids: [5753 5769] ) ] ) (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:5803) 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:5809) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5816) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5819) fd: -1 here_begin: {(EOF)} here_end_span_id: 5832 stdin_parts: [ ('KUBELET_TEST_ARGS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5823) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBELET_TEST_ARGS)})] ) ) ('\n') ] ) ] ) ] spids: [5795 5811] ) ] ) (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_KUBELET_TEST_ARGS span_id: 5845 ) 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:5851) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5858) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5861) fd: -1 here_begin: {(EOF)} here_end_span_id: 5874 stdin_parts: [ ('NODE_KUBELET_TEST_ARGS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5865) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name NODE_KUBELET_TEST_ARGS)}) ] ) ) ('\n') ] ) ] ) ] spids: [5837 5853] ) ] ) (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: MASTER_KUBELET_TEST_ARGS span_id: 5887 ) 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:5893) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5900) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5903) fd: -1 here_begin: {(EOF)} here_end_span_id: 5916 stdin_parts: [ ('MASTER_KUBELET_TEST_ARGS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5907) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name MASTER_KUBELET_TEST_ARGS)}) ] ) ) ('\n') ] ) ] ) ] spids: [5879 5895] ) ] ) (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: 5929 ) 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:5935) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5942) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5945) fd: -1 here_begin: {(EOF)} here_end_span_id: 5958 stdin_parts: [ ('KUBELET_TEST_LOG_LEVEL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5949) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBELET_TEST_LOG_LEVEL)}) ] ) ) ('\n') ] ) ] ) ] spids: [5921 5937] ) ] ) (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:5971) 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:5977) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:5984) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:5987) fd: -1 here_begin: {(EOF)} here_end_span_id: 6000 stdin_parts: [ ('DOCKER_TEST_LOG_LEVEL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5991) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_TEST_LOG_LEVEL)}) ] ) ) ('\n') ] ) ] ) ] spids: [5963 5979] ) ] ) (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_LOG_DRIVER span_id:6013) 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:6019) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6026) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6029) fd: -1 here_begin: {(EOF)} here_end_span_id: 6042 stdin_parts: [ ('DOCKER_LOG_DRIVER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6033) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_LOG_DRIVER)})] ) ) ('\n') ] ) ] ) ] spids: [6005 6021] ) ] ) (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_LOG_MAX_SIZE span_id:6055) 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:6061) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6068) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6071) fd: -1 here_begin: {(EOF)} here_end_span_id: 6084 stdin_parts: [ ('DOCKER_LOG_MAX_SIZE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6075) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_LOG_MAX_SIZE)})] ) ) ('\n') ] ) ] ) ] spids: [6047 6063] ) ] ) (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_LOG_MAX_FILE span_id:6097) 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:6103) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6110) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6113) fd: -1 here_begin: {(EOF)} here_end_span_id: 6126 stdin_parts: [ ('DOCKER_LOG_MAX_FILE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6117) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_LOG_MAX_FILE)})] ) ) ('\n') ] ) ] ) ] spids: [6089 6105] ) ] ) (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:6139) 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:6145) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6152) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6155) fd: -1 here_begin: {(EOF)} here_end_span_id: 6168 stdin_parts: [ ('ENABLE_CUSTOM_METRICS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6159) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name ENABLE_CUSTOM_METRICS)}) ] ) ) ('\n') ] ) ] ) ] spids: [6131 6147] ) ] ) (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_METADATA_PROXY span_id:6181) 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:6187) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6194) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6197) fd: -1 here_begin: {(EOF)} here_end_span_id: 6210 stdin_parts: [ ('ENABLE_METADATA_PROXY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6201) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name ENABLE_METADATA_PROXY)}) ] ) ) ('\n') ] ) ] ) ] spids: [6173 6189] ) ] ) (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_FIREWALL_METADATA_SERVER span_id: 6223 ) 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:6229) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6236) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6239) fd: -1 here_begin: {(EOF)} here_end_span_id: 6252 stdin_parts: [ ('KUBE_FIREWALL_METADATA_SERVER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6243) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBE_FIREWALL_METADATA_SERVER)}) ] ) ) ('\n') ] ) ] ) ] spids: [6215 6231] ) ] ) (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:FEATURE_GATES span_id:6265) 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:6271) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6278) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6281) fd: -1 here_begin: {(EOF)} here_end_span_id: 6294 stdin_parts: [ ('FEATURE_GATES: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6285) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name FEATURE_GATES)})] ) ) ('\n') ] ) ] ) ] spids: [6257 6273] ) ] ) (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:ROTATE_CERTIFICATES span_id:6307) 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:6313) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6320) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6323) fd: -1 here_begin: {(EOF)} here_end_span_id: 6336 stdin_parts: [ ('ROTATE_CERTIFICATES: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6327) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name ROTATE_CERTIFICATES)})] ) ) ('\n') ] ) ] ) ] spids: [6299 6315] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (true))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (gci))} ) ) ) (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (false))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (gci))} ) ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:6405) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6412) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6415) fd: -1 here_begin: {(EOF)} here_end_span_id: 6441 stdin_parts: [ ('VOLUME_PLUGIN_DIR: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6419) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: VOLUME_PLUGIN_DIR span_id: 6423 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(Id.Lit_Slash /) (etc) (Id.Lit_Slash /) (srv) (Id.Lit_Slash /) (kubernetes) (Id.Lit_Slash /) (kubelet-plugins) (Id.Lit_Slash /) (volume) (Id.Lit_Slash /) (exec) } ) ) } ) ] ) ) ('\n') ] ) ] ) ] spids: [6341 6407] ) ] ) (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:PROVIDER_VARS span_id:6455) 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:6461) ) ] action: [ (C {(local)} {(var_name)}) (C {(local)} {(var_value)}) (command.ForEach iter_name: var_name iter_words: [{(${ Id.VSub_Name PROVIDER_VARS)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(eval)} { (DQ ('local var_value=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:6495) ) ('(yaml-quote ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:6497)) ('{') (${ Id.VSub_Name var_name) ('})') ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6508) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6511) fd: -1 here_begin: {(EOF)} here_end_span_id: 6523 stdin_parts: [ (${ Id.VSub_Name var_name) (': ') (${ Id.VSub_Name var_value) ('\n') ] ) ] ) ] ) ) ] spids: [6447 6463] ) ] ) (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 master))} right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:6549) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6560) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6563) fd: -1 here_begin: {(EOF)} here_end_span_id: 6784 stdin_parts: [ ('KUBERNETES_MASTER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6567) command_list: (command.CommandList children: [(C {(yaml-quote)} {(DQ (true))})] ) ) ('\n') ('KUBE_USER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6576) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBE_USER)})] ) ) ('\n') ('KUBE_PASSWORD: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6585) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBE_PASSWORD)})] ) ) ('\n') ('KUBE_BEARER_TOKEN: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6594) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBE_BEARER_TOKEN)})] ) ) ('\n') ('MASTER_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6603) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_CERT_BASE64 span_id: 6607 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('MASTER_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6613) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_KEY_BASE64 span_id: 6617 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBECFG_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6623) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBECFG_CERT_BASE64 span_id: 6627 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBECFG_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6633) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBECFG_KEY_BASE64 span_id: 6637 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('KUBELET_APISERVER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6643) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: KUBELET_APISERVER span_id: 6647 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_MANIFEST_URL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6653) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_MANIFEST_URL span_id: 6657 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(false)} ) ) } ) ] ) ) ('\n') ('MANIFEST_URL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6664) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: MANIFEST_URL span_id: 6668 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('MANIFEST_URL_HEADER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6674) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: MANIFEST_URL_HEADER span_id: 6678 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('NUM_NODES: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6684) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name NUM_NODES)})] ) ) ('\n') ('STORAGE_BACKEND: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6693) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: STORAGE_BACKEND span_id: 6697 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(etcd3)} ) ) } ) ] ) ) ('\n') ('STORAGE_MEDIA_TYPE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6704) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: STORAGE_MEDIA_TYPE span_id: 6708 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_GARBAGE_COLLECTOR: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6714) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_GARBAGE_COLLECTOR span_id: 6718 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ENABLE_LEGACY_ABAC: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6724) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ENABLE_LEGACY_ABAC span_id: 6728 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('MASTER_ADVERTISE_ADDRESS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6734) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: MASTER_ADVERTISE_ADDRESS span_id: 6738 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ETCD_CA_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6744) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_CA_KEY_BASE64 span_id: 6748 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ETCD_CA_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6754) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_CA_CERT_BASE64 span_id: 6758 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ETCD_PEER_KEY: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6764) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_PEER_KEY_BASE64 span_id: 6768 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('ETCD_PEER_CERT: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6774) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: ETCD_PEER_CERT_BASE64 span_id: 6778 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ] ) ] ) (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: 6802 ) 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:6808) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6815) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6818) fd: -1 here_begin: {(EOF)} here_end_span_id: 6831 stdin_parts: [ ('KUBE_APISERVER_REQUEST_TIMEOUT_SEC: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 6822 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC)} ) ] ) ) ('\n') ] ) ] ) ] spids: [6794 6810] ) ] ) (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:6848) 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:6854) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6861) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6864) fd: -1 here_begin: {(EOF)} here_end_span_id: 6877 stdin_parts: [ ('ETCD_IMAGE: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 6868 ) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name ETCD_IMAGE)})] ) ) ('\n') ] ) ] ) ] spids: [6840 6856] ) ] ) (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: 6894 ) 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:6900) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6907) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6910) fd: -1 here_begin: {(EOF)} here_end_span_id: 6923 stdin_parts: [ ('ETCD_DOCKER_REPOSITORY: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 6914 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name ETCD_DOCKER_REPOSITORY)} ) ] ) ) ('\n') ] ) ] ) ] spids: [6886 6902] ) ] ) (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:6948) 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:6954) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:6961) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:6964) fd: -1 here_begin: {(EOF)} here_end_span_id: 6977 stdin_parts: [ ('ETCD_VERSION: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 6968 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name ETCD_VERSION)}) ] ) ) ('\n') ] ) ] ) ] spids: [6940 6956] ) ] ) (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: 6990 ) 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:6996) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7003) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7006) fd: -1 here_begin: {(EOF)} here_end_span_id: 7019 stdin_parts: [ ('APISERVER_TEST_ARGS: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7010 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name APISERVER_TEST_ARGS)}) ] ) ) ('\n') ] ) ] ) ] spids: [6982 6998] ) ] ) (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_LOG_LEVEL span_id: 7032 ) 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:7038) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7045) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7048) fd: -1 here_begin: {(EOF)} here_end_span_id: 7061 stdin_parts: [ ('APISERVER_TEST_LOG_LEVEL: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7052 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name APISERVER_TEST_LOG_LEVEL)} ) ] ) ) ('\n') ] ) ] ) ] spids: [7024 7040] ) ] ) (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: 7074 ) 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:7080) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7087) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7090) fd: -1 here_begin: {(EOF)} here_end_span_id: 7103 stdin_parts: [ ('CONTROLLER_MANAGER_TEST_ARGS: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7094 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name CONTROLLER_MANAGER_TEST_ARGS)} ) ] ) ) ('\n') ] ) ] ) ] spids: [7066 7082] ) ] ) (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: 7116 ) 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:7122) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7129) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7132) fd: -1 here_begin: {(EOF)} here_end_span_id: 7145 stdin_parts: [ ('CONTROLLER_MANAGER_TEST_LOG_LEVEL: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7136 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name CONTROLLER_MANAGER_TEST_LOG_LEVEL)} ) ] ) ) ('\n') ] ) ] ) ] spids: [7108 7124] ) ] ) (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: 7158 ) 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:7164) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7171) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7174) fd: -1 here_begin: {(EOF)} here_end_span_id: 7187 stdin_parts: [ ('SCHEDULER_TEST_ARGS: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7178 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name SCHEDULER_TEST_ARGS)}) ] ) ) ('\n') ] ) ] ) ] spids: [7150 7166] ) ] ) (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: 7200 ) 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:7206) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7213) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7216) fd: -1 here_begin: {(EOF)} here_end_span_id: 7229 stdin_parts: [ ('SCHEDULER_TEST_LOG_LEVEL: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7220 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name SCHEDULER_TEST_LOG_LEVEL)} ) ] ) ) ('\n') ] ) ] ) ] spids: [7192 7208] ) ] ) (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: INITIAL_ETCD_CLUSTER span_id: 7242 ) 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:7248) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7255) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7258) fd: -1 here_begin: {(EOF)} here_end_span_id: 7271 stdin_parts: [ ('INITIAL_ETCD_CLUSTER: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7262 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name INITIAL_ETCD_CLUSTER)}) ] ) ) ('\n') ] ) ] ) ] spids: [7234 7250] ) ] ) (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: INITIAL_ETCD_CLUSTER_STATE span_id: 7284 ) 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:7290) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7297) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7300) fd: -1 here_begin: {(EOF)} here_end_span_id: 7313 stdin_parts: [ ('INITIAL_ETCD_CLUSTER_STATE: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7304 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name INITIAL_ETCD_CLUSTER_STATE)} ) ] ) ) ('\n') ] ) ] ) ] spids: [7276 7292] ) ] ) (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: 7326 ) 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:7332) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7339) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7342) fd: -1 here_begin: {(EOF)} here_end_span_id: 7355 stdin_parts: [ ('ETCD_QUORUM_READ: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7346 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name ETCD_QUORUM_READ)}) ] ) ) ('\n') ] ) ] ) ] spids: [7318 7334] ) ] ) (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: CLUSTER_SIGNING_DURATION span_id: 7368 ) 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:7374) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7381) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7384) fd: -1 here_begin: {(EOF)} here_end_span_id: 7397 stdin_parts: [ ('CLUSTER_SIGNING_DURATION: ') (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 7388 ) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name CLUSTER_SIGNING_DURATION)} ) ] ) ) ('\n') ] ) ] ) ] spids: [7360 7376] ) ] ) ] spids: [6532 6551] ) ] else_action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7412) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7415) fd: -1 here_begin: {(EOF)} here_end_span_id: 7447 stdin_parts: [ ('KUBERNETES_MASTER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7419) command_list: (command.CommandList children: [(C {(yaml-quote)} {(DQ (false))})] ) ) ('\n') ('ZONE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7428) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name ZONE)})] ) ) ('\n') ('EXTRA_DOCKER_OPTS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7437) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: EXTRA_DOCKER_OPTS span_id: 7441 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ] ) ] ) (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: 7457 ) 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:7463) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7470) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7473) fd: -1 here_begin: {(EOF)} here_end_span_id: 7486 stdin_parts: [ ('KUBEPROXY_TEST_ARGS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7477) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBEPROXY_TEST_ARGS)}) ] ) ) ('\n') ] ) ] ) ] spids: [7449 7465] ) ] ) (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: 7499 ) 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:7505) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7512) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7515) fd: -1 here_begin: {(EOF)} here_end_span_id: 7528 stdin_parts: [ ('KUBEPROXY_TEST_LOG_LEVEL: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7519) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name KUBEPROXY_TEST_LOG_LEVEL)}) ] ) ) ('\n') ] ) ] ) ] spids: [7491 7507] ) ] ) ] ) (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:7544) 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:7550) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7557) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7560) fd: -1 here_begin: {(EOF)} here_end_span_id: 7573 stdin_parts: [ ('NODE_LABELS: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7564) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name NODE_LABELS)})] ) ) ('\n') ] ) ] ) ] spids: [7536 7552] ) ] ) (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:7586) 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:7592) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7599) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7602) fd: -1 here_begin: {(EOF)} here_end_span_id: 7615 stdin_parts: [ ('EVICTION_HARD: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7606) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name EVICTION_HARD)})] ) ) ('\n') ] ) ] ) ] spids: [7578 7594] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (true))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))} right: {(DQ (container-linux))} ) ) ) (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ (false))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))} right: {(DQ (container-linux))} ) ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:7685) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7696) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7699) fd: -1 here_begin: {(EOF)} here_end_span_id: 7744 stdin_parts: [ ('KUBERNETES_CONTAINER_RUNTIME: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7703) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: CONTAINER_RUNTIME span_id: 7707 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(rkt)} ) ) } ) ] ) ) ('\n') ('RKT_VERSION: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7714) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:RKT_VERSION span_id:7718) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('RKT_PATH: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7724) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id:Id.VSub_Name val:RKT_PATH span_id:7728) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ('RKT_STAGE1_IMAGE: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7734) command_list: (command.CommandList children: [ (C {(yaml-quote)} { (braced_var_sub token: (Token id: Id.VSub_Name val: RKT_STAGE1_IMAGE span_id: 7738 ) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) ] ) ) ('\n') ] ) ] ) ] spids: [7620 7687] ) ] ) (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 ENABLE_CLUSTER_AUTOSCALER))} right: {(DQ (true))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:7766) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7773) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7776) fd: -1 here_begin: {(EOF)} here_end_span_id: 7807 stdin_parts: [ ('ENABLE_CLUSTER_AUTOSCALER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7780) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name ENABLE_CLUSTER_AUTOSCALER)}) ] ) ) ('\n') ('AUTOSCALER_MIG_CONFIG: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7789) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name AUTOSCALER_MIG_CONFIG)}) ] ) ) ('\n') ('AUTOSCALER_EXPANDER_CONFIG: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7798) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name AUTOSCALER_EXPANDER_CONFIG)}) ] ) ) ('\n') ] ) ] ) ] spids: [7749 7768] ) ] ) (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:FEDERATION span_id:7825) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:7831) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7838) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7841) fd: -1 here_begin: {(EOF)} here_end_span_id: 7854 stdin_parts: [ ('FEDERATION: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7845) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name FEDERATION)})] ) ) ('\n') ] ) ] ) ] spids: [7817 7833] ) ] ) (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:FEDERATION_NAME span_id:7867) 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:7873) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7880) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7883) fd: -1 here_begin: {(EOF)} here_end_span_id: 7896 stdin_parts: [ ('FEDERATION_NAME: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7887) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name FEDERATION_NAME)})] ) ) ('\n') ] ) ] ) ] spids: [7859 7875] ) ] ) (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:DNS_ZONE_NAME span_id:7909) 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:7915) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7922) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7925) fd: -1 here_begin: {(EOF)} here_end_span_id: 7938 stdin_parts: [ ('DNS_ZONE_NAME: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7929) command_list: (command.CommandList children: [(C {(yaml-quote)} {(${ Id.VSub_Name DNS_ZONE_NAME)})] ) ) ('\n') ] ) ] ) ] spids: [7901 7917] ) ] ) (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: 7951 ) 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:7957) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:7964) fd: -1 arg_word: {($ Id.VSub_DollarName '$file')} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:7967) fd: -1 here_begin: {(EOF)} here_end_span_id: 7980 stdin_parts: [ ('SCHEDULING_ALGORITHM_PROVIDER: ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7971) command_list: (command.CommandList children: [ (C {(yaml-quote)} {(${ Id.VSub_Name SCHEDULING_ALGORITHM_PROVIDER)}) ] ) ) ('\n') ] ) ] ) ] spids: [7943 7959] ) ] ) ] ) ) (command.ShFunction name: sha1sum-file body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(which)} {(sha1sum)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:8002) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:8005) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:8007) ) ] action: [ (command.Pipeline children: [ (C {(sha1sum)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $1 }' span_id:8023))}) ] negated: F ) ] spids: [7996 8009] ) ] else_action: [ (command.Pipeline children: [ (C {(shasum)} {(-a1)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $1 }' span_id:8043))}) ] negated: F ) ] ) ] ) ) (command.ShFunction name: create-certs body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'primary_cn=') (DQ (${ Id.VSub_Number 1))}) (C {(local)} {(Id.Lit_VarLike 'octets=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:8169) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8170) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name SERVICE_CLUSTER_IP_RANGE))}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s|/.*||' span_id:8186))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/\\./ /g' span_id:8192))} ) ] negated: F ) ] ) ) } ] ) } ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: (sh_lhs_expr.IndexedName name: octets index: (arith_expr.ArithWord w:{(Id.Lit_Digits 3)}) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) (C {(local)} {(-r)} {(Id.Lit_VarLike 'service_ip=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8214) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:octets span_id:8219) bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) ) ) } ) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/ /./g' span_id:8231))}) ] negated: F ) ] ) ) } ) (C {(local)} {(Id.Lit_VarLike 'sans=') (DQ )}) (command.ForEach iter_name: extra iter_words: [{($ Id.VSub_At '$@')}] do_arg_iter: F body: (command.DoGroup children: [ (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 extra))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:8268) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sans) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name sans) ('IP:') (${ Id.VSub_Name extra) (',')) } spids: [8273] ) ] ) ] spids: [8255 8270] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sans) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name sans) ('IP:') (${ Id.VSub_Name service_ip) ( ',DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.' ) (${ Id.VSub_Name DNS_DOMAIN) (',DNS:') (${ Id.VSub_Name MASTER_NAME) ) } spids: [8292] ) ] ) (C {(echo)} {(DQ ('Generating certs for alternate-names: ') (${ Id.VSub_Name sans))}) (C {(setup-easyrsa)}) (command.Simple words: [{(generate-certs)}] more_env: [ (env_pair name: PRIMARY_CN val: {(DQ (${ Id.VSub_Name primary_cn))} spids: [8327] ) (env_pair name:SANS val:{(DQ (${ Id.VSub_Name sans))} spids:[8334]) ] ) (command.Simple words: [{(generate-aggregator-certs)}] more_env: [ (env_pair name: AGGREGATOR_PRIMARY_CN val: {(DQ (${ Id.VSub_Name primary_cn))} spids: [8344] ) (env_pair name: AGGREGATOR_SANS val: {(DQ (${ Id.VSub_Name sans))} spids: [8351] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CERT_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/easyrsa3))} spids: [8362] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CA_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8380) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/ca.key))}) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8401))} ) ] negated: F ) ] ) ) } spids: [8379] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CA_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8407) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/ca.crt))}) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8428))} ) ] negated: F ) ] ) ) } spids: [8406] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8434) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} { (DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/) (${ Id.VSub_Name MASTER_NAME) (.crt) ) } ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8459))} ) ] negated: F ) ] ) ) } spids: [8433] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8465) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} { (DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/) (${ Id.VSub_Name MASTER_NAME) (.key) ) } ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8490))} ) ] negated: F ) ] ) ) } spids: [8464] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8496) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/kubelet.crt))}) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8517))} ) ] negated: F ) ] ) ) } spids: [8495] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8523) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/kubelet.key))} ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8544))} ) ] negated: F ) ] ) ) } spids: [8522] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBECFG_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8550) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/kubecfg.crt))}) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8571))} ) ] negated: F ) ] ) ) } spids: [8549] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBECFG_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8577) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/kubecfg.key))} ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8598))} ) ] negated: F ) ] ) ) } spids: [8576] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8604) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/kube-apiserver.crt))} ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8625))} ) ] negated: F ) ] ) ) } spids: [8603] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8631) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} { (DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/kube-apiserver.key)) } ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8652))} ) ] negated: F ) ] ) ) } spids: [8630] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AGGREGATOR_CERT_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/aggregator))} spids: [8670] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AGGREGATOR_CA_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8680) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) (/pki/private/ca.key))} ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8701))} ) ] negated: F ) ] ) ) } spids: [8679] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REQUESTHEADER_CA_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8707) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) (/pki/ca.crt))}) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8728))} ) ] negated: F ) ] ) ) } spids: [8706] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8734) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} { (DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) (/pki/issued/proxy-client.crt) ) } ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8755))} ) ] negated: F ) ] ) ) } spids: [8733] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8761) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} { (DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) (/pki/private/proxy-client.key) ) } ) (C {(base64)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8782))} ) ] negated: F ) ] ) ) } spids: [8760] ) ] ) ] ) ) (command.ShFunction name: setup-easyrsa body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'cert_create_debug_output=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8801) command_list: (command.CommandList children: [ (C {(mktemp)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cert_create_debug_output.XXX))}) ] ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (C {(Id.KW_Set set)} {(-x)}) (C {(cd)} {(DQ (${ Id.VSub_Name KUBE_TEMP))}) (C {(curl)} {(-L)} {(-O)} {(--connect-timeout)} {(20)} {(--retry)} {(6)} {(--retry-delay)} {(2)} {(https) (Id.Lit_Other ':') (//storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz) } ) (C {(tar)} {(xzf)} {(easy-rsa.tar.gz)}) (C {(mkdir)} {(easy-rsa-master/kubelet)}) (C {(cp)} {(-r)} {(easy-rsa-master/easyrsa3/) (Id.Lit_Star '*')} {(easy-rsa-master/kubelet)} ) (C {(mkdir)} {(easy-rsa-master/aggregator)}) (C {(cp)} {(-r)} {(easy-rsa-master/easyrsa3/) (Id.Lit_Star '*')} {(easy-rsa-master/aggregator)} ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:8892) fd: -1 arg_word: {(${ Id.VSub_Name cert_create_debug_output)} ) ] ) (command.BraceGroup children: [ (command.Simple words: [{(cat)} {(DQ (${ Id.VSub_Name cert_create_debug_output))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:8918) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('=== Failed to setup easy-rsa: Aborting ==='))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:8928) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:8932) arg_word: {(2)} ) ] ) ] ) ] ) ) (command.ShFunction name: generate-certs body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'cert_create_debug_output=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8984) command_list: (command.CommandList children: [ (C {(mktemp)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cert_create_debug_output.XXX))}) ] ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (C {(Id.KW_Set set)} {(-x)}) (C {(cd)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/easyrsa3))}) (C {(./easyrsa)} {(init-pki)}) (C {(./easyrsa)} {(--batch)} { (DQ ('--req-cn=') (${ Id.VSub_Name PRIMARY_CN) ('@') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9035) command_list: (command.CommandList children: [(C {(date)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)})] ) ) ) } {(build-ca)} {(nopass)} ) (C {(./easyrsa)} {(--subject-alt-name) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name SANS))} {(build-server-full)} {(DQ (${ Id.VSub_Name MASTER_NAME))} {(nopass)} ) (C {(./easyrsa)} {(build-client-full)} {(kube-apiserver)} {(nopass)}) (C {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') (Id.Lit_Other ':') (ensure-cfssl) } {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cfssl))} ) (command.Simple words: [ {(echo)} { (SQ (Token id: Id.Lit_Chars val: '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' span_id: 9104 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:9107) fd: -1 arg_word: {(DQ (ca-config.json))} ) ] ) (command.Pipeline children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: '{"CN":"kubelet","names":[{"O":"system:nodes"}],"hosts":[""],"key":{"algo":"rsa","size":2048}}' span_id: 9121 ) ) } ) (C {(DQ (${ Id.VSub_Name CFSSL_BIN))} {(gencert)} {(-ca) (Id.Lit_Equals '=') (pki/ca.crt)} {(-ca-key) (Id.Lit_Equals '=') (pki/private/ca.key)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} {(-)} ) (C {(DQ (${ Id.VSub_Name CFSSLJSON_BIN))} {(-bare)} {(kubelet)}) ] negated: F ) (C {(mv)} {(DQ (kubelet-key.pem))} {(DQ (pki/private/kubelet.key))}) (C {(mv)} {(DQ (kubelet.pem))} {(DQ (pki/issued/kubelet.crt))}) (C {(rm)} {(-f)} {(DQ (kubelet.csr))}) (C {(./easyrsa)} {(--dn-mode) (Id.Lit_Equals '=') (org)} {(--req-cn) (Id.Lit_Equals '=') (kubecfg)} {(--req-org) (Id.Lit_Equals '=') (system) (Id.Lit_Other ':') (masters)} {(--req-c) (Id.Lit_Equals '=')} {(--req-st) (Id.Lit_Equals '=')} {(--req-city) (Id.Lit_Equals '=')} {(--req-email) (Id.Lit_Equals '=')} {(--req-ou) (Id.Lit_Equals '=')} {(build-client-full)} {(kubecfg)} {(nopass)} ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:9241) fd: -1 arg_word: {(${ Id.VSub_Name cert_create_debug_output)} ) ] ) (command.BraceGroup children: [ (command.Simple words: [{(cat)} {(DQ (${ Id.VSub_Name cert_create_debug_output))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9267) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [ {(echo)} {(DQ ('=== Failed to generate master certificates: Aborting ==='))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9277) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:9281) arg_word: {(2)} ) ] ) ] ) ] ) ) (command.ShFunction name: generate-aggregator-certs body: (command.BraceGroup children: [ (C {(local)} {(-r)} {(Id.Lit_VarLike 'cert_create_debug_output=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9333) command_list: (command.CommandList children: [ (C {(mktemp)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cert_create_debug_output.XXX))}) ] ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (C {(Id.KW_Set set)} {(-x)}) (C {(cd)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/aggregator))}) (C {(./easyrsa)} {(init-pki)}) (C {(./easyrsa)} {(--batch)} { (DQ ('--req-cn=') (${ Id.VSub_Name AGGREGATOR_PRIMARY_CN) ('@') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9384) command_list: (command.CommandList children: [(C {(date)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)})] ) ) ) } {(build-ca)} {(nopass)} ) (C {(./easyrsa)} {(--subject-alt-name) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name AGGREGATOR_SANS)) } {(build-server-full)} {(DQ (${ Id.VSub_Name AGGREGATOR_MASTER_NAME))} {(nopass)} ) (C {(./easyrsa)} {(build-client-full)} {(aggregator-apiserver)} {(nopass)}) (C {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') (Id.Lit_Other ':') (ensure-cfssl) } {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cfssl))} ) (command.Simple words: [ {(echo)} { (SQ (Token id: Id.Lit_Chars val: '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' span_id: 9453 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:9456) fd: -1 arg_word: {(DQ (ca-config.json))} ) ] ) (command.Pipeline children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: '{"CN":"aggregator","hosts":[""],"key":{"algo":"rsa","size":2048}}' span_id: 9470 ) ) } ) (C {(DQ (${ Id.VSub_Name CFSSL_BIN))} {(gencert)} {(-ca) (Id.Lit_Equals '=') (pki/ca.crt)} {(-ca-key) (Id.Lit_Equals '=') (pki/private/ca.key)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} {(-)} ) (C {(DQ (${ Id.VSub_Name CFSSLJSON_BIN))} {(-bare)} {(proxy-client)}) ] negated: F ) (C {(mv)} {(DQ (proxy-client-key.pem))} {(DQ (pki/private/proxy-client.key))}) (C {(mv)} {(DQ (proxy-client.pem))} {(DQ (pki/issued/proxy-client.crt))}) (C {(rm)} {(-f)} {(DQ (proxy-client.csr))}) (C {(./easyrsa)} {(--dn-mode) (Id.Lit_Equals '=') (org)} {(--req-cn) (Id.Lit_Equals '=') (proxy-clientcfg)} {(--req-org) (Id.Lit_Equals '=') (system) (Id.Lit_Other ':') (aggregator)} {(--req-c) (Id.Lit_Equals '=')} {(--req-st) (Id.Lit_Equals '=')} {(--req-city) (Id.Lit_Equals '=')} {(--req-email) (Id.Lit_Equals '=')} {(--req-ou) (Id.Lit_Equals '=')} {(build-client-full)} {(proxy-clientcfg)} {(nopass)} ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_AndGreat val:'&>' span_id:9590) fd: -1 arg_word: {(${ Id.VSub_Name cert_create_debug_output)} ) ] ) (command.BraceGroup children: [ (command.Simple words: [{(cat)} {(DQ (${ Id.VSub_Name cert_create_debug_output))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9616) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [ {(echo)} {(DQ ('=== Failed to generate aggregator certificates: Aborting ==='))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9626) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:9630) arg_word: {(2)} ) ] ) ] ) ] ) ) (command.ShFunction name: generate-etcd-cert body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'cert_dir=') (${ Id.VSub_Number 1)}) (C {(local)} {(Id.Lit_VarLike 'member_ip=') (${ Id.VSub_Number 2)}) (C {(local)} {(Id.Lit_VarLike 'type_cert=') (${ Id.VSub_Number 3)}) (C {(local)} {(Id.Lit_VarLike 'prefix=') (braced_var_sub token: (Token id:Id.VSub_Number val:4 span_id:9719) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(DQ (${ Id.VSub_Name type_cert))} ) ) } ) (C {(local)} {(Id.Lit_VarLike 'GEN_ETCD_CA_CERT=') (braced_var_sub token: (Token id:Id.VSub_Name val:GEN_ETCD_CA_CERT span_id:9734) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (C {(local)} {(Id.Lit_VarLike 'GEN_ETCD_CA_KEY=') (braced_var_sub token: (Token id:Id.VSub_Name val:GEN_ETCD_CA_KEY span_id:9743) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (C {(mkdir)} {(-p)} {(DQ (${ Id.VSub_Name cert_dir))}) (C {(pushd)} {(DQ (${ Id.VSub_Name cert_dir))}) (C {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') (Id.Lit_Other ':') (ensure-cfssl) } {(.)} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-r)} {(DQ (ca-config.json))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:9795) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:9802) fd: -1 arg_word: {(ca-config.json)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:9805) fd: -1 here_begin: {(EOF)} here_end_span_id: 9951 stdin_parts: [ ('{\n') (' ') (Id.Right_DoubleQuote '"') (signing) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (default) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (expiry) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (43800h) (Id.Right_DoubleQuote '"') ('\n') (' },\n') (' ') (Id.Right_DoubleQuote '"') (profiles) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (server) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (expiry) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (43800h) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (usages) (Id.Right_DoubleQuote '"') (': [\n') (' ') (Id.Right_DoubleQuote '"') (signing) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('key encipherment') (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('server auth') (Id.Right_DoubleQuote '"') ('\n') (' ]\n') (' },\n') (' ') (Id.Right_DoubleQuote '"') (client) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (expiry) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (43800h) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (usages) (Id.Right_DoubleQuote '"') (': [\n') (' ') (Id.Right_DoubleQuote '"') (signing) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('key encipherment') (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('client auth') (Id.Right_DoubleQuote '"') ('\n') (' ]\n') (' },\n') (' ') (Id.Right_DoubleQuote '"') (peer) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (expiry) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (43800h) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (usages) (Id.Right_DoubleQuote '"') (': [\n') (' ') (Id.Right_DoubleQuote '"') (signing) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('key encipherment') (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('server auth') (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') ('client auth') (Id.Right_DoubleQuote '"') ('\n') (' ]\n') (' }\n') (' }\n') (' }\n') ('}\n') ] ) ] ) ] spids: [9782 9797] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-r)} {(DQ (ca-csr.json))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:9970) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:9977) fd: -1 arg_word: {(ca-csr.json)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:9980) fd: -1 here_begin: {(EOF)} here_end_span_id: 10050 stdin_parts: [ ('{\n') (' ') (Id.Right_DoubleQuote '"') (CN) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (Kubernetes) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (key) (Id.Right_DoubleQuote '"') (': {\n') (' ') (Id.Right_DoubleQuote '"') (algo) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (ecdsa) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (size) (Id.Right_DoubleQuote '"') (': 256\n') (' },\n') (' ') (Id.Right_DoubleQuote '"') (names) (Id.Right_DoubleQuote '"') (': [\n') (' {\n') (' ') (Id.Right_DoubleQuote '"') (C) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (US) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (L) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (CA) (Id.Right_DoubleQuote '"') (',\n') (' ') (Id.Right_DoubleQuote '"') (O) (Id.Right_DoubleQuote '"') (': ') (Id.Right_DoubleQuote '"') (kubernetes.io) (Id.Right_DoubleQuote '"') ('\n') (' }\n') (' ]\n') ('}\n') ] ) ] ) ] spids: [9957 9972] ) ] ) (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 (${ Id.VSub_Name GEN_ETCD_CA_CERT))} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name GEN_ETCD_CA_KEY))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:10079) ) ] action: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name ca_cert))}) (C {(base64)} {(--decode)}) (command.Simple words: [{(gunzip)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:10102) fd: -1 arg_word: {(ca.pem)} ) ] ) ] negated: F ) (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name ca_key))}) (command.Simple words: [{(base64)} {(--decode)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:10121) fd: -1 arg_word: {(ca-key.pem)} ) ] ) ] negated: F ) ] spids: [10056 10081] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_r child:{(DQ (ca.pem))}) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_r child: {(DQ (ca-key.pem))} ) ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:10153) ) ] action: [ (command.Pipeline children: [ (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} {(-initca)} {(ca-csr.json)}) (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(ca)} {(-)}) ] negated: F ) ] spids: [10130 10155] ) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name type_cert))} arms: [ (case_arm pat_list: [{(client)}] action: [ (C {(echo)} {(DQ ('Generate client certificates...'))}) (command.Pipeline children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: '{"CN":"client","hosts":["*"],"key":{"algo":"ecdsa","size":256}}' span_id: 10210 ) ) } ) (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} {(-ca) (Id.Lit_Equals '=') (ca.pem)} {(-ca-key) (Id.Lit_Equals '=') (ca-key.pem)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} {(-profile) (Id.Lit_Equals '=') (client)} {(-)} ) (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(DQ (${ Id.VSub_Name prefix))}) ] negated: F ) ] spids: [10196 10197 10258 -1] ) (case_arm pat_list: [{(server)}] action: [ (C {(echo)} {(DQ ('Generate server certificates...'))}) (command.Pipeline children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'{"CN":"' span_id:10275)) (${ Id.VSub_Name member_ip) (SQ (Token id:Id.Lit_Chars val:'","hosts":[""],"key":{"algo":"ecdsa","size":256}}' span_id:10281)) } ) (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} {(-ca) (Id.Lit_Equals '=') (ca.pem)} {(-ca-key) (Id.Lit_Equals '=') (ca-key.pem)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} {(-profile) (Id.Lit_Equals '=') (server)} {(-hostname) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name member_ip) (',127.0.0.1'))} {(-)} ) (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(DQ (${ Id.VSub_Name prefix))}) ] negated: F ) ] spids: [10261 10262 10338 -1] ) (case_arm pat_list: [{(peer)}] action: [ (C {(echo)} {(DQ ('Generate peer certificates...'))}) (command.Pipeline children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'{"CN":"' span_id:10355)) (${ Id.VSub_Name member_ip) (SQ (Token id:Id.Lit_Chars val:'","hosts":[""],"key":{"algo":"ecdsa","size":256}}' span_id:10361)) } ) (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} {(-ca) (Id.Lit_Equals '=') (ca.pem)} {(-ca-key) (Id.Lit_Equals '=') (ca-key.pem)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} {(-profile) (Id.Lit_Equals '=') (peer)} {(-hostname) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name member_ip) (',127.0.0.1'))} {(-)} ) (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(DQ (${ Id.VSub_Name prefix))}) ] negated: F ) ] spids: [10341 10342 10418 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [ {(echo)} {(DQ ('Unknow, unsupported etcd certs type: ') (${ Id.VSub_Name type_cert))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:10434) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(echo)} {(DQ ('Supported type: client, server, peer'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:10444) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:10448) arg_word: {(2)} ) ] spids: [10421 10422 -1 10453] ) ] ) (C {(popd)}) ] ) ) (command.ShFunction name: get-env-val body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'match=') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:10492) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Number 1))}) (C {(grep)} {(-E)} {(DQ ('^') (${ Id.VSub_Number 2) (':'))}) ] negated: F ) ] ) ) (C {(echo)} {(DQ )}) ] ) ] ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name match)}) ) terminator: (Token id:Id.Op_Semi val:';' span_id:10539) ) ] action: [(C {(echo)} {(DQ )})] spids: [10528 10541] ) ] ) (command.Pipeline children: [ (C {(echo)} {(${ Id.VSub_Name match)}) (C {(cut)} {(-d)} {(Id.Lit_Other ':')} {(-f)} {(2)}) (C {(cut)} {(-d)} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:10577) ) } {(-f)} {(2)} ) ] negated: F ) ] ) ) (command.ShFunction name: parse-master-env body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'master_env=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10605) command_list: (command.CommandList children:[(C {(get-master-env)})]) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_TOKEN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10611) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBELET_TOKEN))} ) ] ) ) } spids: [10610] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBE_PROXY_TOKEN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10627) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBE_PROXY_TOKEN))} ) ] ) ) } spids: [10626] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NODE_PROBLEM_DETECTOR_TOKEN) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10643) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (NODE_PROBLEM_DETECTOR_TOKEN))} ) ] ) ) } spids: [10642] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CA_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10659) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (CA_CERT))}) ] ) ) } spids: [10658] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CA_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10675) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (CA_KEY))}) ] ) ) } spids: [10674] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10691) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBEAPISERVER_CERT))} ) ] ) ) } spids: [10690] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10707) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBEAPISERVER_KEY))} ) ] ) ) } spids: [10706] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXTRA_DOCKER_OPTS) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10723) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (EXTRA_DOCKER_OPTS))} ) ] ) ) } spids: [10722] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10739) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBELET_CERT))} ) ] ) ) } spids: [10738] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KUBELET_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10755) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBELET_KEY))}) ] ) ) } spids: [10754] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10771) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (MASTER_CERT))}) ] ) ) } spids: [10770] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MASTER_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10787) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (MASTER_KEY))}) ] ) ) } spids: [10786] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:AGGREGATOR_CA_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10803) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (AGGREGATOR_CA_KEY))} ) ] ) ) } spids: [10802] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REQUESTHEADER_CA_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10819) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (REQUESTHEADER_CA_CERT))} ) ] ) ) } spids: [10818] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_CERT_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10835) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (PROXY_CLIENT_CERT))} ) ] ) ) } spids: [10834] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_KEY_BASE64) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10851) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (PROXY_CLIENT_KEY))} ) ] ) ) } spids: [10850] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENABLE_LEGACY_ABAC) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10867) command_list: (command.CommandList children: [ (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (ENABLE_LEGACY_ABAC))} ) ] ) ) } spids: [10866] ) ] ) ] ) ) (command.ShFunction name: update-or-verify-gcloud body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'sudo_prefix=') (DQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-w)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10920) command_list: (command.CommandList children: [ (C {(dirname)} { (command_sub left_token: (Token id: Id.Left_Backtick val: '`' span_id: 10923 ) command_list: (command.CommandList children: [(C {(which)} {(gcloud)})] ) ) } ) ] ) ) } {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:10933) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sudo_prefix) op: assign_op.Equal rhs: {(DQ (sudo))} spids: [10938] ) ] ) ] spids: [10912 10935] ) ] ) (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 KUBE_PROMPT_FOR_UPDATE))} right: {(DQ (y))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:10968) ) ] action: [ (C {(${ Id.VSub_Name sudo_prefix)} {(gcloud)} { (braced_var_sub token: (Token id:Id.VSub_Name val:gcloud_prompt span_id:10980) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } {(components)} {(install)} {(alpha)} ) (C {(${ Id.VSub_Name sudo_prefix)} {(gcloud)} { (braced_var_sub token: (Token id:Id.VSub_Name val:gcloud_prompt span_id:10998) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } {(components)} {(install)} {(beta)} ) (C {(${ Id.VSub_Name sudo_prefix)} {(gcloud)} { (braced_var_sub token: (Token id:Id.VSub_Name val:gcloud_prompt span_id:11016) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } {(components)} {(update)} ) ] spids: [10951 10970] ) ] else_action: [ (C {(local)} {(Id.Lit_VarLike 'version=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:11031) command_list: (command.CommandList children: [(C {(gcloud)} {(version)} {(--format) (Id.Lit_Equals '=') (json)})] ) ) } ) (C {(python)} {(-c) (SQ (Token id:Id.Lit_Chars val:'\n' span_id:11046) (Token id: Id.Lit_Chars val: 'import json,sys\n' span_id: 11047 ) (Token id:Id.Lit_Chars val:'from distutils import version\n' span_id:11048) (Token id:Id.Lit_Chars val:'\n' span_id:11049) (Token id:Id.Lit_Chars val:'minVersion = version.LooseVersion("1.3.0")\n' span_id:11050) (Token id: Id.Lit_Chars val: 'required = [ "alpha", "beta", "core" ]\n' span_id: 11051 ) (Token id:Id.Lit_Chars val:'data = json.loads(sys.argv[1])\n' span_id:11052) (Token id: Id.Lit_Chars val: 'rel = data.get("Google Cloud SDK")\n' span_id: 11053 ) (Token id: Id.Lit_Chars val: 'if rel != "HEAD" and version.LooseVersion(rel) < minVersion:\n' span_id: 11054 ) (Token id: Id.Lit_Chars val: ' print("gcloud version out of date ( < %s )" % minVersion)\n' span_id: 11055 ) (Token id:Id.Lit_Chars val:' exit(1)\n' span_id:11056) (Token id: Id.Lit_Chars val: 'missing = []\n' span_id: 11057 ) (Token id:Id.Lit_Chars val:'for c in required:\n' span_id:11058) (Token id: Id.Lit_Chars val: ' if not data.get(c):\n' span_id: 11059 ) (Token id:Id.Lit_Chars val:' missing += [c]\n' span_id:11060) (Token id:Id.Lit_Chars val:'if missing:\n' span_id:11061) (Token id:Id.Lit_Chars val:' for c in missing:\n' span_id:11062) (Token id: Id.Lit_Chars val: ' print ("missing required gcloud component \\"{0}\\"".format(c))\n' span_id: 11063 ) (Token id:Id.Lit_Chars val:' exit(1)\n' span_id:11064) (Token id:Id.Lit_Chars val:' ' span_id:11065) ) } {(DQ ) (DQ (${ Id.VSub_Name version)) (DQ )} ) ] ) ] ) ) (command.ShFunction name: verify-kube-binaries body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'missing_binaries=') (false)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(version)} {(--client)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:11126) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:11128) ) ] action: [ (C {(echo)} {(DQ ('!!! kubectl appears to be broken or missing'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:missing_binaries) op: assign_op.Equal rhs: {(true)} spids: [11140] ) ] ) ] spids: [11111 11130] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:11151) command_list: (command.CommandList children: [(C {(find-release-tars)})] ) ) } ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:11154) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:missing_binaries) op: assign_op.Equal rhs: {(true)} spids: [11159] ) ] ) ] spids: [11147 11156] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(DQ (${ Id.VSub_Name missing_binaries))})] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:11176) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:11181) ) ] spids: [11167 11178] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:get_binaries_script) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/get-kube-binaries.sh))} spids: [11188] ) ] ) (C {(local)} {(Id.Lit_VarLike 'resp=') (DQ (y))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: KUBERNETES_SKIP_CONFIRM span_id: 11213 ) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(n)} ) ) ) } right: {(Id.Lit_Other '^') (Id.Lit_Other '[') (yY) (Id.Lit_Other ']') (Id.Lit_Other '$') } ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:11228) ) ] action: [ (C {(echo)} { (DQ ( 'Required binaries appear to be missing. Do you wish to download them? [Y/n]' ) ) } ) (C {(read)} {(resp)}) ] spids: [11205 11230] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ (${ Id.VSub_Name resp))} right: {(Id.Lit_Other '^') (Id.Lit_Other '[') (nN) (Id.Lit_Other ']') (Id.Lit_Other '$') } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:11267) ) ] action: [ (C {(echo)} {(DQ ('You must download binaries to continue. You can use '))}) (C {(echo)} {(DQ (' ') (${ Id.VSub_Name get_binaries_script))}) (C {(echo)} {(DQ ('to do this for your automatically.'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:11296) arg_word: {(1)} ) ] spids: [11248 11269] ) ] ) (C {(DQ (${ Id.VSub_Name get_binaries_script))}) ] ) ) (command.ShFunction name: pushd body: (command.BraceGroup children: [ (command.Simple words: [{(command)} {(pushd)} {($ Id.VSub_At '$@')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:11331) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ) (command.ShFunction name: popd body: (command.BraceGroup children: [ (command.Simple words: [{(command)} {(popd)} {($ Id.VSub_At '$@')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:11356) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ) ] )