(command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<errexit>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<nounset>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<pipefail>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_ROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_ROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_ROOT='> name:KUBE_ROOT) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <cd> more_env: [] words: [ {<cd>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/..'> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pwd> more_env: [] words: [{<pwd>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DEFAULT_KUBECONFIG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEFAULT_KUBECONFIG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFAULT_KUBECONFIG='> name:DEFAULT_KUBECONFIG) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name HOME> var_name: HOME suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<.>}) right: <Id.Right_DollarBrace '}'> ) <'/.kube/config'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <source> more_env: [] words: [{<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/lib/util.sh'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <source> more_env: [] words: [{<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/lib/logging.sh'>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_REGEX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_REGEX='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_REGEX='> name: KUBE_RELEASE_VERSION_REGEX ) op: assign_op.Equal rhs: { (DQ <'^v(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)(-([a-zA-Z0-9]+)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*))?'> <Id.Lit_Dollar '$'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_DASHED_REGEX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_DASHED_REGEX='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_DASHED_REGEX='> 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]*))?' > ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_CI_VERSION_REGEX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_CI_VERSION_REGEX='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_CI_VERSION_REGEX='> name: KUBE_CI_VERSION_REGEX ) op: assign_op.Equal rhs: { (DQ <'^v(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)-([a-zA-Z0-9]+)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'+[-0-9a-z]*)?'> <Id.Lit_Dollar '$'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_CI_VERSION_DASHED_REGEX='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_CI_VERSION_DASHED_REGEX='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_CI_VERSION_DASHED_REGEX='> 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:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'+[-0-9a-z]*)?'> ) } ) ] redirects: [] ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <create-kubeconfig> name: create-kubeconfig body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBECONFIG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBECONFIG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBECONFIG='> name:KUBECONFIG) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECONFIG> var_name: KUBECONFIG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName DEFAULT_KUBECONFIG)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'kubectl='> (DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'SECONDARY_KUBECONFIG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SECONDARY_KUBECONFIG='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SECONDARY_KUBECONFIG='> name: SECONDARY_KUBECONFIG ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SECONDARY_KUBECONFIG> var_name: SECONDARY_KUBECONFIG suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERRIDE_CONTEXT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERRIDE_CONTEXT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERRIDE_CONTEXT='> name: OVERRIDE_CONTEXT ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OVERRIDE_CONTEXT> var_name: OVERRIDE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName OVERRIDE_CONTEXT))} right: {(DQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'CONTEXT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONTEXT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONTEXT='> name:CONTEXT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OVERRIDE_CONTEXT)} ) ] redirects: [] ) ] spids: [286 301] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OLD_IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OLD_IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OLD_IFS='> name:OLD_IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IFS)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(SQ <':'>)} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [cfg] iterable: (for_iter.Words words:[{(${ Id.VSub_Name KUBECONFIG)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_e child: {(DQ (${ Id.VSub_Name cfg))} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [ {<mkdir>} {<-p>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ (${ Id.VSub_Name cfg))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <touch> more_env: [] words: [{<touch>} {(DQ (${ Id.VSub_Name cfg))}] redirects: [] do_fork: T ) ] spids: [341 358] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OLD_IFS)} ) ] redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cluster_args='> (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (DQ <'--server='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_SERVER> var_name: KUBE_SERVER suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<'https:'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'> (${ Id.VSub_Name KUBE_MASTER_IP) } ) right: <Id.Right_DollarBrace '}'> ) ) } ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CA_CERT> var_name: CA_CERT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cluster_args+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cluster_args+='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cluster_args+='> name: cluster_args ) op: assign_op.PlusEqual rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{(DQ <'--insecure-skip-tls-verify=true'>)}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] spids: [422 438] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cluster_args+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cluster_args+='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cluster_args+='> name: cluster_args ) op: assign_op.PlusEqual rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ {(DQ <'--certificate-authority='> (${ Id.VSub_Name CA_CERT))} {(DQ <'--embed-certs=true'>)} ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'user_args='> (ShArrayLiteral left: <Id.Op_LParen _> words: [] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_BEARER_TOKEN> var_name: KUBE_BEARER_TOKEN suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'user_args+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'user_args+='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'user_args+='> name:user_args) op: assign_op.PlusEqual rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{(DQ <'--token='> (${ Id.VSub_Name KUBE_BEARER_TOKEN))}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] spids: [483 501] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_USER> var_name: KUBE_USER suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_PASSWORD> var_name: KUBE_PASSWORD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'user_args+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'user_args+='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'user_args+='> name:user_args) op: assign_op.PlusEqual rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ {(DQ <'--username='> (${ Id.VSub_Name KUBE_USER))} {(DQ <'--password='> (${ Id.VSub_Name KUBE_PASSWORD))} ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] spids: [519 550] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_CERT> var_name: KUBE_CERT suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_KEY> var_name: KUBE_KEY suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'user_args+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'user_args+='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'user_args+='> name:user_args) op: assign_op.PlusEqual rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ {(DQ <'--client-certificate='> (${ Id.VSub_Name KUBE_CERT))} {(DQ <'--client-key='> (${ Id.VSub_Name KUBE_KEY))} {(DQ <'--embed-certs=true'>)} ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) ] spids: [579 610] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'KUBECONFIG='> name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} ) ] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<set-cluster>} {(DQ (${ Id.VSub_Name CONTEXT))} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name cluster_args> var_name: cluster_args bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name user_args> var_name: user_args bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'KUBECONFIG='> name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} ) ] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<set-credentials>} {(DQ (${ Id.VSub_Name CONTEXT))} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name user_args> var_name: user_args bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) ] spids: [678 697] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'KUBECONFIG='> name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} ) ] 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))} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name SECONDARY_KUBECONFIG))} right: {(DQ <true>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'KUBECONFIG='> name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} ) ] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<use-context>} {(DQ (${ Id.VSub_Name CONTEXT))} {<--cluster> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CONTEXT))} ] redirects: [] do_fork: T ) ] spids: [777 795] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_BEARER_TOKEN> var_name: KUBE_BEARER_TOKEN suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_USER> var_name: KUBE_USER suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_PASSWORD> var_name: KUBE_PASSWORD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } ) ) ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [ (EnvPair left: <Id.Lit_VarLike 'KUBECONFIG='> name: KUBECONFIG val: {(DQ (${ Id.VSub_Name KUBECONFIG))} ) ] 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))} ] redirects: [] do_fork: T ) ] spids: [846 890] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Wrote config for '> (${ Id.VSub_Name CONTEXT) <' to '> (${ Id.VSub_Name KUBECONFIG) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <clear-kubeconfig> name: clear-kubeconfig body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBECONFIG='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECONFIG> var_name: KUBECONFIG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName DEFAULT_KUBECONFIG)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERRIDE_CONTEXT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERRIDE_CONTEXT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERRIDE_CONTEXT='> name: OVERRIDE_CONTEXT ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OVERRIDE_CONTEXT> var_name: OVERRIDE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName OVERRIDE_CONTEXT))} right: {(DQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'CONTEXT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONTEXT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONTEXT='> name:CONTEXT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OVERRIDE_CONTEXT)} ) ] redirects: [] ) ] spids: [997 1012] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'kubectl='> (DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cc='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (SQ <'{.current-context}'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name cc))} right: {(DQ (${ Id.VSub_Name CONTEXT))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name kubectl))} {<config>} {<unset>} {<current-context>}] redirects: [] do_fork: T ) ] spids: [1061 1082] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<unset>} {(DQ <clusters.> (${ Id.VSub_Name CONTEXT))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<unset>} {(DQ <users.> (${ Id.VSub_Name CONTEXT))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<unset>} {(DQ <users.> (${ Id.VSub_Name CONTEXT) <-basic-auth>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<unset>} {(DQ <contexts.> (${ Id.VSub_Name CONTEXT))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Cleared config for '> (${ Id.VSub_Name CONTEXT) <' from '> (${ Id.VSub_Name KUBECONFIG) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <create-kubeconfig-for-federation> name: create-kubeconfig-for-federation body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FEDERATION> var_name: FEDERATION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <true>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'creating kubeconfig for federation secret'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'kubectl='> (DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cc='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (SQ <'{.current-context}'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBECONFIG_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBECONFIG_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBECONFIG_DIR='> name: KUBECONFIG_DIR ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [ {<dirname>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECONFIG> var_name: KUBECONFIG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName DEFAULT_KUBECONFIG)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBECONFIG_PATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBECONFIG_PATH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBECONFIG_PATH='> name: KUBECONFIG_PATH ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name KUBECONFIG_DIR) <'/federation/kubernetes-apiserver/'> (${ Id.VSub_Name cc) ) } ) ] redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name KUBECONFIG_PATH))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name kubectl))} {<config>} {<view>} {<--minify>} {<--flatten>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name KUBECONFIG_PATH) <'/kubeconfig'>)} ) ] do_fork: T ) ] spids: [1206 1226] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <tear_down_alive_resources> name: tear_down_alive_resources body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'kubectl='> (DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name kubectl))} {<delete>} {<deployments>} {<--all>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name kubectl))} {<delete>} {<rc>} {<--all>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name kubectl))} {<delete>} {<pods>} {<--all>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name kubectl))} {<delete>} {<svc>} {<--all>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name kubectl))} {<delete>} {<pvc>} {<--all>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <get-kubeconfig-basicauth> name: get-kubeconfig-basicauth body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBECONFIG='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECONFIG> var_name: KUBECONFIG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName DEFAULT_KUBECONFIG)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cc='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.current-context}'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_CONTEXT> var_name: KUBE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cc='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))} ) ] redirects: [] ) ] spids: [1518 1536] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'user='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.contexts[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name cc) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].context.user}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <get-kubeconfig-user-basicauth> more_env: [] words: [{<get-kubeconfig-user-basicauth>} {(DQ (${ Id.VSub_Name user))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_USER> var_name: KUBE_USER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_PASSWORD> var_name: KUBE_PASSWORD suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <get-kubeconfig-user-basicauth> more_env: [] words: [ {<get-kubeconfig-user-basicauth>} {(DQ (${ Id.VSub_Name user) <-basic-auth>)} ] redirects: [] do_fork: T ) ] spids: [1590 1617] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <get-kubeconfig-user-basicauth> name: get-kubeconfig-user-basicauth body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_USER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_USER='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_USER='> name:KUBE_USER) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.users[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].user.username}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_PASSWORD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_PASSWORD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_PASSWORD='> name:KUBE_PASSWORD) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.users[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_Number 1) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].user.password}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <gen-kube-basicauth> name: gen-kube-basicauth body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_USER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_USER='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_USER='> name:KUBE_USER) op: assign_op.Equal rhs: {<admin>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_PASSWORD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_PASSWORD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_PASSWORD='> name:KUBE_PASSWORD) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <python> more_env: [] words: [ {<python>} {<-c>} { (SQ < 'import string,random; print("".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(16)))' > ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <get-kubeconfig-bearertoken> name: get-kubeconfig-bearertoken body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBECONFIG='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECONFIG> var_name: KUBECONFIG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName DEFAULT_KUBECONFIG)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cc='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.current-context}'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_CONTEXT> var_name: KUBE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cc='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))} ) ] redirects: [] ) ] spids: [1862 1880] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'user='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.contexts[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name cc) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].context.user}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> name: KUBE_BEARER_TOKEN ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.users[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name user) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].user.token}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <gen-kube-bearertoken> name: gen-kube-bearertoken body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_BEARER_TOKEN='> name: KUBE_BEARER_TOKEN ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/urandom'>} {<Id.Lit_VarLike 'bs='> <128>} {<Id.Lit_VarLike 'count='> <1>} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(DQ <'=+/'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <32>} {<Id.Lit_VarLike 'count='> <1>} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <gen-uid> name: gen-uid body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_UID='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_UID='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_UID='> name:KUBE_UID) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <python> more_env: [] words: [ {<python>} {<-c>} {(SQ <'import uuid; print(uuid.uuid1().fields[0])'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <load-or-gen-kube-basicauth> name: load-or-gen-kube-basicauth body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_CONTEXT> var_name: KUBE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <get-kubeconfig-basicauth> more_env: [] words: [{<get-kubeconfig-basicauth>}] redirects: [] do_fork: T ) ] spids: [2071 2089] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_USER> var_name: KUBE_USER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_PASSWORD> var_name: KUBE_PASSWORD suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <gen-kube-basicauth> more_env: [] words: [{<gen-kube-basicauth>}] redirects: [] do_fork: T ) ] spids: [2099 2126] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> 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 '$'> } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Bad KUBE_USER string.'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [2140 2168] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> 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 '$'> } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Bad KUBE_PASSWORD string.'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [2186 2216] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <load-or-gen-kube-bearertoken> name: load-or-gen-kube-bearertoken body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_CONTEXT> var_name: KUBE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <get-kubeconfig-bearertoken> more_env: [] words: [{<get-kubeconfig-bearertoken>}] redirects: [] do_fork: T ) ] spids: [2245 2263] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_BEARER_TOKEN> var_name: KUBE_BEARER_TOKEN suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <gen-kube-bearertoken> more_env: [] words: [{<gen-kube-bearertoken>}] redirects: [] do_fork: T ) ] spids: [2272 2288] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <detect-master-from-kubeconfig> name: detect-master-from-kubeconfig body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBECONFIG='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECONFIG> var_name: KUBECONFIG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {($ Id.VSub_DollarName DEFAULT_KUBECONFIG)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cc='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.current-context}'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_CONTEXT> var_name: KUBE_CONTEXT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cc='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))} ) ] redirects: [] ) ] spids: [2376 2394] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'cluster='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.contexts[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name cc) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].context.cluster}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MASTER_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MASTER_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MASTER_URL='> name: KUBE_MASTER_URL ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<config>} {<view>} {<-o>} {<Id.Lit_VarLike 'jsonpath='> (DQ <'{.clusters[?(@.name == '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name cluster) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <')].cluster.server}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <set_binary_version> name: set_binary_version body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ (${ Id.VSub_Number 1))} right: {(DQ <'/'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <read> more_env: [(EnvPair left:<Id.Lit_VarLike 'IFS='> name:IFS val:{(SQ <'/'>)})] words: [{<read>} {<-a>} {<path>}] redirects: [ (Redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ (${ Id.VSub_Number 1))} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name path> var_name: path bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <release>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_VERSION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_VERSION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_VERSION='> name: KUBE_VERSION ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gsutil> more_env: [] words: [ {<gsutil>} {<cat>} { (DQ <'gs://kubernetes-release/'> (${ Id.VSub_Number 1) <.txt> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [2552 2574] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_VERSION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_VERSION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_VERSION='> name: KUBE_VERSION ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gsutil> more_env: [] words: [ {<gsutil>} {<cat>} { (DQ <'gs://kubernetes-release-dev/'> (${ Id.VSub_Number 1) <.txt> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [2510 2529] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_VERSION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_VERSION='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_VERSION='> name:KUBE_VERSION) op: assign_op.Equal rhs: {(${ Id.VSub_Number 1)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <tars_from_version> name: tars_from_version body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'sha1sum='> (DQ )}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<sha1sum>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sha1sum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sha1sum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sha1sum='> name:sha1sum) op: assign_op.Equal rhs: {(DQ <sha1sum>)} ) ] redirects: [] ) ] spids: [2687 2700] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sha1sum='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sha1sum='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sha1sum='> name:sha1sum) op: assign_op.Equal rhs: {(DQ <'shasum -a1'>)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_VERSION> var_name: KUBE_VERSION suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <find-release-tars> more_env: [] words: [{<find-release-tars>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <upload-server-tars> more_env: [] words: [{<upload-server-tars>}] redirects: [] do_fork: T ) ] spids: [2722 2738] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name KUBE_VERSION)} right: {(${ Id.VSub_Name KUBE_RELEASE_VERSION_REGEX)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_URL='> 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'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SALT_TAR_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SALT_TAR_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SALT_TAR_URL='> 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'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_URL='> name: KUBE_MANIFESTS_TAR_URL ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SERVER_BINARY_TAR_URL> var_name: SERVER_BINARY_TAR_URL suffix_op: (suffix_op.PatSub pat: {<server-linux-amd64>} replace: {<manifests>} replace_mode: Id.Undefined_Tok slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_HASH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_HASH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_HASH='> name: KUBE_MANIFESTS_TAR_HASH ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL)} {<--silent>} {<--show-error>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name sha1sum)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [2747 2764] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(${ Id.VSub_Name KUBE_VERSION)} right: {(${ Id.VSub_Name KUBE_CI_VERSION_REGEX)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_URL='> 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'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SALT_TAR_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SALT_TAR_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SALT_TAR_URL='> 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'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_URL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_URL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_URL='> name: KUBE_MANIFESTS_TAR_URL ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SERVER_BINARY_TAR_URL> var_name: SERVER_BINARY_TAR_URL suffix_op: (suffix_op.PatSub pat: {<server-linux-amd64>} replace: {<manifests>} replace_mode: Id.Undefined_Tok slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_HASH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_HASH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR_HASH='> name: KUBE_MANIFESTS_TAR_HASH ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL)} {<--silent>} {<--show-error>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name sha1sum)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{print $1}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [2831 2848] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Version doesn\'t match regexp'>)}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_HASH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_HASH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SERVER_BINARY_TAR_HASH='> name: SERVER_BINARY_TAR_HASH ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-Ss>} {<--fail>} { (DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL) <.sha1> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Failure trying to curl release .sha1'>)}] redirects: [] do_fork: T ) ] spids: [2936 2957] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'SALT_TAR_HASH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SALT_TAR_HASH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SALT_TAR_HASH='> name: SALT_TAR_HASH ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-Ss>} {<--fail>} {(DQ (${ Id.VSub_Name SALT_TAR_URL) <.sha1>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Failure trying to curl Salt tar .sha1'>)}] redirects: [] do_fork: T ) ] spids: [2970 2991] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-Ss>} {<--head>} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Can\'t find release at '> (${ Id.VSub_Name SERVER_BINARY_TAR_URL))} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3005 3025] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-Ss>} {<--head>} {(DQ (${ Id.VSub_Name SALT_TAR_URL))} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Can\'t find Salt tar at '> (${ Id.VSub_Name SALT_TAR_URL))} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3049 3069] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <find-tar> name: find-tar body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<-r>} {<Id.Lit_VarLike 'tarball='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'locations='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'locations='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'locations='> name:locations) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> 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) ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'location='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'location='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'location='> name:location) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <ls> more_env: [] words: [ {<ls>} {<-t>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name locations> var_name: locations bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ (${ Id.VSub_Name location))} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'!!! Cannot find '> (${ Id.VSub_Name tarball))}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3211 3228] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name location))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <find-release-tars> name: find-release-tars body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'SERVER_BINARY_TAR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SERVER_BINARY_TAR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'SERVER_BINARY_TAR='> name: SERVER_BINARY_TAR ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <find-tar> more_env: [] words: [{<find-tar>} {<kubernetes-server-linux-amd64.tar.gz>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SALT_TAR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SALT_TAR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SALT_TAR='> name:SALT_TAR) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <find-tar> more_env: [] words: [{<find-tar>} {<kubernetes-salt.tar.gz>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR='> name: KUBE_MANIFESTS_TAR ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_OS_DISTRIBUTION> var_name: MASTER_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <trusty>)} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_OS_DISTRIBUTION> var_name: MASTER_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <gci>)} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_OS_DISTRIBUTION> var_name: MASTER_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <container-linux>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_OS_DISTRIBUTION> var_name: MASTER_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <ubuntu>)} ) ) ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_OS_DISTRIBUTION> var_name: NODE_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <trusty>)} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_OS_DISTRIBUTION> var_name: NODE_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <gci>)} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_OS_DISTRIBUTION> var_name: NODE_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <container-linux>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_OS_DISTRIBUTION> var_name: NODE_OS_DISTRIBUTION suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: (rhs_word__Empty) ) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <ubuntu>)} ) ) ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_MANIFESTS_TAR='> name: KUBE_MANIFESTS_TAR ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <find-tar> more_env: [] words: [{<find-tar>} {<kubernetes-manifests.tar.gz>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [3320 3452] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <find-release-version> name: find-release-version body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> name: KUBE_GIT_VERSION ) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/version'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> name: KUBE_GIT_VERSION ) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(${ Id.VSub_Name KUBE_ROOT) <'/version'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) ] spids: [3500 3516] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/_output/release-stage/full/kubernetes/version'> ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_GIT_VERSION='> name: KUBE_GIT_VERSION ) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(${ Id.VSub_Name KUBE_ROOT) <'/_output/release-stage/full/kubernetes/version'> } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) ] spids: [3535 3551] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name KUBE_GIT_VERSION))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'!!! Cannot find release version'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3571 3586] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <stage-images> name: stage-images body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <find-release-version> more_env: [] words: [{<find-release-version>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <find-release-tars> more_env: [] words: [{<find-release-tars>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_IMAGE_TAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_IMAGE_TAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_IMAGE_TAG='> name:KUBE_IMAGE_TAG) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ) (DQ (${ Id.VSub_Name KUBE_GIT_VERSION)) (DQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/+/-/g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'docker_wrapped_binaries='> (ShArrayLiteral left: <Id.Op_LParen _> words: [ {(DQ <kube-apiserver>)} {(DQ <kube-controller-manager>)} {(DQ <kube-scheduler>)} {(DQ <kube-proxy>)} ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'docker_cmd='> (ShArrayLiteral left: <Id.Op_LParen _> words: [{(DQ <docker>)}] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY))} right: {(DQ <'gcr.io/'>) <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'docker_push_cmd='> (ShArrayLiteral left: <Id.Op_LParen _> words: [{(DQ <gcloud>)} {(DQ <docker>)}] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) ] spids: [3690 3710] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'docker_push_cmd='> (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name docker_cmd> var_name: docker_cmd bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'temp_dir='> (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [{<mktemp>} {<-d>} {<-t>} {(SQ <kube-server-XXXX>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <tar> more_env: [] words: [ {<tar>} {<xzfv>} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR))} {<-C>} {(DQ (${ Id.VSub_Name temp_dir))} ] redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [binary] iterable: (for_iter.Words words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name docker_wrapped_binaries> var_name: docker_wrapped_binaries bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'docker_tag='> (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(${ Id.VSub_Name temp_dir) <'/kubernetes/server/bin/'> (${ Id.VSub_Name binary) <.docker_tag> } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Sentence child: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name docker_cmd> var_name: docker_cmd bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } {<load>} {<-i>} { (DQ (${ Id.VSub_Name temp_dir) <'/kubernetes/server/bin/'> (${ Id.VSub_Name binary) <.tar> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name docker_cmd> var_name: docker_cmd bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } {<rmi>} { (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) <'/'> (${ Id.VSub_Name binary) <':'> (${ Id.VSub_Name KUBE_IMAGE_TAG) ) } ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name docker_cmd> var_name: docker_cmd bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } {<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) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name docker_push_cmd> var_name: docker_push_cmd bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } {<push>} { (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) <'/'> (${ Id.VSub_Name binary) <':'> (${ Id.VSub_Name KUBE_IMAGE_TAG) ) } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: { (DQ (${ Id.VSub_Name temp_dir) <'/'> (${ Id.VSub_Name binary) <-push.log> ) } ) ] ) terminator: <Id.Op_Amp _> ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <kube> more_env: [] words: [ {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <wait-for-jobs> } ] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <kube> more_env: [] words: [ {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <error> } { (DQ <'unable to push images. See '> (${ Id.VSub_Name temp_dir) <'/*.log for more info.'> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(DQ (${ Id.VSub_Name temp_dir))}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <yaml-quote> name: yaml-quote body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'\''> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(DQ <'s/\'/\'\'/g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) <'\''> ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <build-runtime-config> name: build-runtime-config body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <write-cluster-name> name: write-cluster-name body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/cluster-name.txt'>)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [(${ Id.VSub_Name CLUSTER_NAME) <'\n'>] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <write-master-env> name: write-master-env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REGISTER_MASTER_KUBELET> var_name: REGISTER_MASTER_KUBELET suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } right: {(DQ <true>)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_APISERVER> var_name: KUBELET_APISERVER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBELET_APISERVER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBELET_APISERVER='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBELET_APISERVER='> name: KUBELET_APISERVER ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))} ) ] redirects: [] ) ] spids: [4163 4194] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBERNETES_MASTER_NAME> var_name: KUBERNETES_MASTER_NAME suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBERNETES_MASTER_NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBERNETES_MASTER_NAME='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBERNETES_MASTER_NAME='> name: KUBERNETES_MASTER_NAME ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))} ) ] redirects: [] ) ] spids: [4208 4224] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <build-kube-env> more_env: [] words: [ {<build-kube-env>} {<true>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/master-kube-env.yaml'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <build-kube-master-certs> more_env: [] words: [ {<build-kube-master-certs>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/kube-master-certs.yaml'>)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <write-node-env> name: write-node-env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBERNETES_MASTER_NAME> var_name: KUBERNETES_MASTER_NAME suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBERNETES_MASTER_NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBERNETES_MASTER_NAME='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBERNETES_MASTER_NAME='> name: KUBERNETES_MASTER_NAME ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))} ) ] redirects: [] ) ] spids: [4270 4286] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <build-kube-env> more_env: [] words: [ {<build-kube-env>} {<false>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/node-kube-env.yaml'>)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <build-kube-master-certs> name: build-kube-master-certs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'file='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name file)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBEAPISERVER_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBEAPISERVER_CERT_BASE64> var_name: KUBEAPISERVER_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBEAPISERVER_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBEAPISERVER_KEY_BASE64> var_name: KUBEAPISERVER_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'CA_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CA_KEY_BASE64> var_name: CA_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'AGGREGATOR_CA_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name AGGREGATOR_CA_KEY_BASE64> var_name: AGGREGATOR_CA_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'REQUESTHEADER_CA_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REQUESTHEADER_CA_CERT_BASE64> var_name: REQUESTHEADER_CA_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'PROXY_CLIENT_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PROXY_CLIENT_CERT_BASE64> var_name: PROXY_CLIENT_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'PROXY_CLIENT_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PROXY_CLIENT_KEY_BASE64> var_name: PROXY_CLIENT_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <build-kube-env> name: build-kube-env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'master='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'file='> ($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'server_binary_tar_url='> ($ Id.VSub_DollarName SERVER_BINARY_TAR_URL) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'salt_tar_url='> ($ Id.VSub_DollarName SALT_TAR_URL)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'kube_manifests_tar_url='> (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_MANIFESTS_TAR_URL> var_name: KUBE_MANIFESTS_TAR_URL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DPipe _> <Id.Op_DPipe _> <Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'server_binary_tar_url='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'server_binary_tar_url='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'server_binary_tar_url='> name: server_binary_tar_url ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <split_csv> more_env: [] words: [{<split_csv>} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'salt_tar_url='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'salt_tar_url='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'salt_tar_url='> name: salt_tar_url ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <split_csv> more_env: [] words: [{<split_csv>} {(DQ (${ Id.VSub_Name SALT_TAR_URL))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'kube_manifests_tar_url='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'kube_manifests_tar_url='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'kube_manifests_tar_url='> name: kube_manifests_tar_url ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <split_csv> more_env: [] words: [ {<split_csv>} {(DQ (${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL))} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] spids: [4466 4602] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <build-runtime-config> more_env: [] words: [{<build-runtime-config>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <gen-uid> more_env: [] words: [{<gen-uid>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name file)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'CLUSTER_NAME: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name CLUSTER_NAME)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENV_TIMESTAMP: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <date> more_env: [] words: [ {<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> } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'INSTANCE_PREFIX: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name INSTANCE_PREFIX)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_INSTANCE_PREFIX: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name NODE_INSTANCE_PREFIX)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_TAGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_TAGS> var_name: NODE_TAGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_NETWORK: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NETWORK> var_name: NETWORK suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_SUBNETWORK: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SUBNETWORK> var_name: SUBNETWORK suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'CLUSTER_IP_RANGE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CLUSTER_IP_RANGE> var_name: CLUSTER_IP_RANGE suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<10.244.0.0> <Id.Lit_Slash '/'> <16>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'SERVER_BINARY_TAR_URL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name server_binary_tar_url)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'SERVER_BINARY_TAR_HASH: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name SERVER_BINARY_TAR_HASH)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'PROJECT_ID: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name PROJECT)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NETWORK_PROJECT_ID: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name NETWORK_PROJECT)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'SALT_TAR_URL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name salt_tar_url)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'SALT_TAR_HASH: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name SALT_TAR_HASH)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'SERVICE_CLUSTER_IP_RANGE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name SERVICE_CLUSTER_IP_RANGE)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBERNETES_MASTER_NAME: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBERNETES_MASTER_NAME)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ALLOCATE_NODE_CIDRS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ALLOCATE_NODE_CIDRS> var_name: ALLOCATE_NODE_CIDRS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_CLUSTER_MONITORING: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CLUSTER_MONITORING> var_name: ENABLE_CLUSTER_MONITORING suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<none>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_METRICS_SERVER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_METRICS_SERVER> var_name: ENABLE_METRICS_SERVER suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'DOCKER_REGISTRY_MIRROR_URL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCKER_REGISTRY_MIRROR_URL> var_name: DOCKER_REGISTRY_MIRROR_URL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_L7_LOADBALANCING: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_L7_LOADBALANCING> var_name: ENABLE_L7_LOADBALANCING suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<none>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_CLUSTER_LOGGING: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CLUSTER_LOGGING> var_name: ENABLE_CLUSTER_LOGGING suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_CLUSTER_UI: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CLUSTER_UI> var_name: ENABLE_CLUSTER_UI suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_NODE_PROBLEM_DETECTOR: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_NODE_PROBLEM_DETECTOR> var_name: ENABLE_NODE_PROBLEM_DETECTOR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<none>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_PROBLEM_DETECTOR_VERSION: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_PROBLEM_DETECTOR_VERSION> var_name: NODE_PROBLEM_DETECTOR_VERSION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_PROBLEM_DETECTOR_TAR_HASH: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_PROBLEM_DETECTOR_TAR_HASH> var_name: NODE_PROBLEM_DETECTOR_TAR_HASH suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_NODE_LOGGING: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_NODE_LOGGING> var_name: ENABLE_NODE_LOGGING suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_RESCHEDULER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_RESCHEDULER> var_name: ENABLE_RESCHEDULER suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'LOGGING_DESTINATION: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LOGGING_DESTINATION> var_name: LOGGING_DESTINATION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ELASTICSEARCH_LOGGING_REPLICAS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ELASTICSEARCH_LOGGING_REPLICAS> var_name: ELASTICSEARCH_LOGGING_REPLICAS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_CLUSTER_DNS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CLUSTER_DNS> var_name: ENABLE_CLUSTER_DNS suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_CLUSTER_REGISTRY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CLUSTER_REGISTRY> var_name: ENABLE_CLUSTER_REGISTRY suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'CLUSTER_REGISTRY_DISK: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CLUSTER_REGISTRY_DISK> var_name: CLUSTER_REGISTRY_DISK suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'CLUSTER_REGISTRY_DISK_SIZE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CLUSTER_REGISTRY_DISK_SIZE> var_name: CLUSTER_REGISTRY_DISK_SIZE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'DNS_SERVER_IP: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DNS_SERVER_IP> var_name: DNS_SERVER_IP suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'DNS_DOMAIN: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DNS_DOMAIN> var_name: DNS_DOMAIN suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_DNS_HORIZONTAL_AUTOSCALER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_DNS_HORIZONTAL_AUTOSCALER> var_name: ENABLE_DNS_HORIZONTAL_AUTOSCALER suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBELET_TOKEN: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_TOKEN> var_name: KUBELET_TOKEN suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_PROXY_DAEMONSET: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_PROXY_DAEMONSET> var_name: KUBE_PROXY_DAEMONSET suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_PROXY_TOKEN: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_PROXY_TOKEN> var_name: KUBE_PROXY_TOKEN suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NODE_PROBLEM_DETECTOR_TOKEN: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_PROBLEM_DETECTOR_TOKEN> var_name: NODE_PROBLEM_DETECTOR_TOKEN suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ADMISSION_CONTROL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ADMISSION_CONTROL> var_name: ADMISSION_CONTROL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MASTER_IP_RANGE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name MASTER_IP_RANGE)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'RUNTIME_CONFIG: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name RUNTIME_CONFIG)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'CA_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CA_CERT_BASE64> var_name: CA_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBELET_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_CERT_BASE64> var_name: KUBELET_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBELET_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_KEY_BASE64> var_name: KUBELET_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NETWORK_PROVIDER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NETWORK_PROVIDER> var_name: NETWORK_PROVIDER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NETWORK_POLICY_PROVIDER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NETWORK_POLICY_PROVIDER> var_name: NETWORK_POLICY_PROVIDER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'PREPULL_E2E_IMAGES: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PREPULL_E2E_IMAGES> var_name: PREPULL_E2E_IMAGES suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'HAIRPIN_MODE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name HAIRPIN_MODE> var_name: HAIRPIN_MODE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'SOFTLOCKUP_PANIC: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SOFTLOCKUP_PANIC> var_name: SOFTLOCKUP_PANIC suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'OPENCONTRAIL_TAG: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OPENCONTRAIL_TAG> var_name: OPENCONTRAIL_TAG suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'OPENCONTRAIL_KUBERNETES_TAG: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OPENCONTRAIL_KUBERNETES_TAG> var_name: OPENCONTRAIL_KUBERNETES_TAG suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'OPENCONTRAIL_PUBLIC_SUBNET: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OPENCONTRAIL_PUBLIC_SUBNET> var_name: OPENCONTRAIL_PUBLIC_SUBNET suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'E2E_STORAGE_TEST_ENVIRONMENT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name E2E_STORAGE_TEST_ENVIRONMENT> var_name: E2E_STORAGE_TEST_ENVIRONMENT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_IMAGE_TAG: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_IMAGE_TAG> var_name: KUBE_IMAGE_TAG suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_DOCKER_REGISTRY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_DOCKER_REGISTRY> var_name: KUBE_DOCKER_REGISTRY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_ADDON_REGISTRY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_ADDON_REGISTRY> var_name: KUBE_ADDON_REGISTRY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MULTIZONE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MULTIZONE> var_name: MULTIZONE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NON_MASQUERADE_CIDR: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NON_MASQUERADE_CIDR> var_name: NON_MASQUERADE_CIDR suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_UID: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_UID> var_name: KUBE_UID suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_DEFAULT_STORAGE_CLASS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_DEFAULT_STORAGE_CLASS> var_name: ENABLE_DEFAULT_STORAGE_CLASS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_APISERVER_BASIC_AUDIT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_APISERVER_BASIC_AUDIT> var_name: ENABLE_APISERVER_BASIC_AUDIT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_APISERVER_ADVANCED_AUDIT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_APISERVER_ADVANCED_AUDIT> var_name: ENABLE_APISERVER_ADVANCED_AUDIT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_CACHE_MUTATION_DETECTOR: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CACHE_MUTATION_DETECTOR> var_name: ENABLE_CACHE_MUTATION_DETECTOR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_PATCH_CONVERSION_DETECTOR: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_PATCH_CONVERSION_DETECTOR> var_name: ENABLE_PATCH_CONVERSION_DETECTOR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ADVANCED_AUDIT_POLICY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ADVANCED_AUDIT_POLICY> var_name: ADVANCED_AUDIT_POLICY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ADVANCED_AUDIT_BACKEND: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ADVANCED_AUDIT_BACKEND> var_name: ADVANCED_AUDIT_BACKEND suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<log>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'GCE_API_ENDPOINT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GCE_API_ENDPOINT> var_name: GCE_API_ENDPOINT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'PROMETHEUS_TO_SD_ENDPOINT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PROMETHEUS_TO_SD_ENDPOINT> var_name: PROMETHEUS_TO_SD_ENDPOINT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'PROMETHEUS_TO_SD_PREFIX: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PROMETHEUS_TO_SD_PREFIX> var_name: PROMETHEUS_TO_SD_PREFIX suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_PROMETHEUS_TO_SD: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_PROMETHEUS_TO_SD> var_name: ENABLE_PROMETHEUS_TO_SD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_POD_PRIORITY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_POD_PRIORITY> var_name: ENABLE_POD_PRIORITY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_PORT> var_name: KUBELET_PORT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBELET_PORT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBELET_PORT)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5436 5452] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT> var_name: KUBE_APISERVER_REQUEST_TIMEOUT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBE_APISERVER_REQUEST_TIMEOUT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5478 5494] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TERMINATED_POD_GC_THRESHOLD> var_name: TERMINATED_POD_GC_THRESHOLD suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'TERMINATED_POD_GC_THRESHOLD: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name TERMINATED_POD_GC_THRESHOLD)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5520 5536] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBE_MANIFESTS_TAR_URL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name kube_manifests_tar_url)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_MANIFESTS_TAR_HASH: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_HASH)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5562 5718] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TEST_CLUSTER> var_name: TEST_CLUSTER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'TEST_CLUSTER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name TEST_CLUSTER)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5753 5769] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_TEST_ARGS> var_name: KUBELET_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBELET_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBELET_TEST_ARGS)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5795 5811] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_KUBELET_TEST_ARGS> var_name: NODE_KUBELET_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'NODE_KUBELET_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name NODE_KUBELET_TEST_ARGS)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5837 5853] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_KUBELET_TEST_ARGS> var_name: MASTER_KUBELET_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'MASTER_KUBELET_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name MASTER_KUBELET_TEST_ARGS)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5879 5895] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_TEST_LOG_LEVEL> var_name: KUBELET_TEST_LOG_LEVEL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBELET_TEST_LOG_LEVEL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBELET_TEST_LOG_LEVEL)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5921 5937] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCKER_TEST_LOG_LEVEL> var_name: DOCKER_TEST_LOG_LEVEL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'DOCKER_TEST_LOG_LEVEL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name DOCKER_TEST_LOG_LEVEL)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [5963 5979] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCKER_LOG_DRIVER> var_name: DOCKER_LOG_DRIVER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'DOCKER_LOG_DRIVER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name DOCKER_LOG_DRIVER)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6005 6021] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCKER_LOG_MAX_SIZE> var_name: DOCKER_LOG_MAX_SIZE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'DOCKER_LOG_MAX_SIZE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name DOCKER_LOG_MAX_SIZE)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6047 6063] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOCKER_LOG_MAX_FILE> var_name: DOCKER_LOG_MAX_FILE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'DOCKER_LOG_MAX_FILE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name DOCKER_LOG_MAX_FILE)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6089 6105] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_CUSTOM_METRICS> var_name: ENABLE_CUSTOM_METRICS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ENABLE_CUSTOM_METRICS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name ENABLE_CUSTOM_METRICS)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6131 6147] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_METADATA_PROXY> var_name: ENABLE_METADATA_PROXY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ENABLE_METADATA_PROXY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name ENABLE_METADATA_PROXY)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6173 6189] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_FIREWALL_METADATA_SERVER> var_name: KUBE_FIREWALL_METADATA_SERVER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBE_FIREWALL_METADATA_SERVER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name KUBE_FIREWALL_METADATA_SERVER)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6215 6231] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FEATURE_GATES> var_name: FEATURE_GATES suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'FEATURE_GATES: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name FEATURE_GATES)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6257 6273] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ROTATE_CERTIFICATES> var_name: ROTATE_CERTIFICATES suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ROTATE_CERTIFICATES: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name ROTATE_CERTIFICATES)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6299 6315] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'VOLUME_PLUGIN_DIR: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name VOLUME_PLUGIN_DIR> var_name: VOLUME_PLUGIN_DIR suffix_op: (suffix_op.Unary op: <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> } ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6341 6407] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name PROVIDER_VARS> var_name: PROVIDER_VARS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<var_name>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<var_value>}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [var_name] iterable: (for_iter.Words words:[{(${ Id.VSub_Name PROVIDER_VARS)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (DQ <'local var_value='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'(yaml-quote '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{'> (${ Id.VSub_Name var_name) <'})'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name var_name) <': '> (${ Id.VSub_Name var_value) <'\n'> ] ) ) ] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] spids: [6447 6463] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name master))} right: {(DQ <true>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBERNETES_MASTER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(DQ <true>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_USER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBE_USER)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_PASSWORD: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBE_PASSWORD)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBE_BEARER_TOKEN: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name KUBE_BEARER_TOKEN)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MASTER_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_CERT_BASE64> var_name: MASTER_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MASTER_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_KEY_BASE64> var_name: MASTER_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBECFG_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECFG_CERT_BASE64> var_name: KUBECFG_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBECFG_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBECFG_KEY_BASE64> var_name: KUBECFG_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'KUBELET_APISERVER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBELET_APISERVER> var_name: KUBELET_APISERVER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_MANIFEST_URL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_MANIFEST_URL> var_name: ENABLE_MANIFEST_URL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<false>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MANIFEST_URL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MANIFEST_URL> var_name: MANIFEST_URL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MANIFEST_URL_HEADER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MANIFEST_URL_HEADER> var_name: MANIFEST_URL_HEADER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'NUM_NODES: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name NUM_NODES)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'STORAGE_BACKEND: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name STORAGE_BACKEND> var_name: STORAGE_BACKEND suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<etcd3>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'STORAGE_MEDIA_TYPE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name STORAGE_MEDIA_TYPE> var_name: STORAGE_MEDIA_TYPE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_GARBAGE_COLLECTOR: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_GARBAGE_COLLECTOR> var_name: ENABLE_GARBAGE_COLLECTOR suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ENABLE_LEGACY_ABAC: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ENABLE_LEGACY_ABAC> var_name: ENABLE_LEGACY_ABAC suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'MASTER_ADVERTISE_ADDRESS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MASTER_ADVERTISE_ADDRESS> var_name: MASTER_ADVERTISE_ADDRESS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ETCD_CA_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_CA_KEY_BASE64> var_name: ETCD_CA_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ETCD_CA_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_CA_CERT_BASE64> var_name: ETCD_CA_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ETCD_PEER_KEY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_PEER_KEY_BASE64> var_name: ETCD_PEER_KEY_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ETCD_PEER_CERT: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_PEER_CERT_BASE64> var_name: ETCD_PEER_CERT_BASE64 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC> var_name: KUBE_APISERVER_REQUEST_TIMEOUT_SEC suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBE_APISERVER_REQUEST_TIMEOUT_SEC: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (${ Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6794 6810] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_IMAGE> var_name: ETCD_IMAGE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ETCD_IMAGE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name ETCD_IMAGE)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6840 6856] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_DOCKER_REPOSITORY> var_name: ETCD_DOCKER_REPOSITORY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ETCD_DOCKER_REPOSITORY: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name ETCD_DOCKER_REPOSITORY)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6886 6902] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_VERSION> var_name: ETCD_VERSION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ETCD_VERSION: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name ETCD_VERSION)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6940 6956] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name APISERVER_TEST_ARGS> var_name: APISERVER_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'APISERVER_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name APISERVER_TEST_ARGS)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [6982 6998] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name APISERVER_TEST_LOG_LEVEL> var_name: APISERVER_TEST_LOG_LEVEL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'APISERVER_TEST_LOG_LEVEL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name APISERVER_TEST_LOG_LEVEL)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7024 7040] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONTROLLER_MANAGER_TEST_ARGS> var_name: CONTROLLER_MANAGER_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'CONTROLLER_MANAGER_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name CONTROLLER_MANAGER_TEST_ARGS)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7066 7082] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONTROLLER_MANAGER_TEST_LOG_LEVEL> var_name: CONTROLLER_MANAGER_TEST_LOG_LEVEL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'CONTROLLER_MANAGER_TEST_LOG_LEVEL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name CONTROLLER_MANAGER_TEST_LOG_LEVEL)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7108 7124] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SCHEDULER_TEST_ARGS> var_name: SCHEDULER_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'SCHEDULER_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name SCHEDULER_TEST_ARGS)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7150 7166] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SCHEDULER_TEST_LOG_LEVEL> var_name: SCHEDULER_TEST_LOG_LEVEL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'SCHEDULER_TEST_LOG_LEVEL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name SCHEDULER_TEST_LOG_LEVEL)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7192 7208] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name INITIAL_ETCD_CLUSTER> var_name: INITIAL_ETCD_CLUSTER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'INITIAL_ETCD_CLUSTER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name INITIAL_ETCD_CLUSTER)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7234 7250] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name INITIAL_ETCD_CLUSTER_STATE> var_name: INITIAL_ETCD_CLUSTER_STATE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'INITIAL_ETCD_CLUSTER_STATE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name INITIAL_ETCD_CLUSTER_STATE)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7276 7292] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ETCD_QUORUM_READ> var_name: ETCD_QUORUM_READ suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ETCD_QUORUM_READ: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name ETCD_QUORUM_READ)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7318 7334] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CLUSTER_SIGNING_DURATION> var_name: CLUSTER_SIGNING_DURATION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'CLUSTER_SIGNING_DURATION: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name CLUSTER_SIGNING_DURATION)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7360 7376] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [6532 6551] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBERNETES_MASTER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(DQ <false>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'ZONE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name ZONE)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'EXTRA_DOCKER_OPTS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name EXTRA_DOCKER_OPTS> var_name: EXTRA_DOCKER_OPTS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBEPROXY_TEST_ARGS> var_name: KUBEPROXY_TEST_ARGS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBEPROXY_TEST_ARGS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name KUBEPROXY_TEST_ARGS)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7449 7465] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBEPROXY_TEST_LOG_LEVEL> var_name: KUBEPROXY_TEST_LOG_LEVEL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBEPROXY_TEST_LOG_LEVEL: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name KUBEPROXY_TEST_LOG_LEVEL)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7491 7507] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NODE_LABELS> var_name: NODE_LABELS suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'NODE_LABELS: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name NODE_LABELS)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7536 7552] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name EVICTION_HARD> var_name: EVICTION_HARD suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'EVICTION_HARD: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name EVICTION_HARD)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7578 7594] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'KUBERNETES_CONTAINER_RUNTIME: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONTAINER_RUNTIME> var_name: CONTAINER_RUNTIME suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<rkt>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'RKT_VERSION: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name RKT_VERSION> var_name: RKT_VERSION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'RKT_PATH: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name RKT_PATH> var_name: RKT_PATH suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'RKT_STAGE1_IMAGE: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name RKT_STAGE1_IMAGE> var_name: RKT_STAGE1_IMAGE suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7620 7687] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name ENABLE_CLUSTER_AUTOSCALER))} right: {(DQ <true>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'ENABLE_CLUSTER_AUTOSCALER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name ENABLE_CLUSTER_AUTOSCALER)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'AUTOSCALER_MIG_CONFIG: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name AUTOSCALER_MIG_CONFIG)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> <'AUTOSCALER_EXPANDER_CONFIG: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name AUTOSCALER_EXPANDER_CONFIG)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7749 7768] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FEDERATION> var_name: FEDERATION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'FEDERATION: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name FEDERATION)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7817 7833] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name FEDERATION_NAME> var_name: FEDERATION_NAME suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'FEDERATION_NAME: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name FEDERATION_NAME)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7859 7875] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DNS_ZONE_NAME> var_name: DNS_ZONE_NAME suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'DNS_ZONE_NAME: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [{<yaml-quote>} {(${ Id.VSub_Name DNS_ZONE_NAME)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7901 7917] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SCHEDULING_ALGORITHM_PROVIDER> var_name: SCHEDULING_ALGORITHM_PROVIDER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName file)} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'SCHEDULING_ALGORITHM_PROVIDER: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <yaml-quote> more_env: [] words: [ {<yaml-quote>} {(${ Id.VSub_Name SCHEDULING_ALGORITHM_PROVIDER)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\n'> ] ) ) ] do_fork: T ) ] spids: [7943 7959] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <sha1sum-file> name: sha1sum-file body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<sha1sum>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <sha1sum> more_env: [] words: [{<sha1sum>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print $1 }'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] spids: [7996 8009] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Pipeline children: [ (command.Simple blame_tok: <shasum> more_env: [] words: [{<shasum>} {<-a1>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print $1 }'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <create-certs> name: create-certs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<-r>} {<Id.Lit_VarLike 'primary_cn='> (DQ (${ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'octets='> (ShArrayLiteral left: <Id.Op_LParen _> words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name SERVICE_CLUSTER_IP_RANGE))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s|/.*||'>)} {<-e>} {(SQ <'s/\\./ /g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: (arith_expr.Binary op_id: Id.Arith_LBracket left: ($ Id.Lit_ArithVarLike octets) right: {<Id.Lit_Digits 3>} ) right: {<Id.Lit_Digits 1>} ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<-r>} {<Id.Lit_VarLike 'service_ip='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name octets> var_name: octets bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/ /./g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'sans='> (DQ )}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [extra] iterable: (for_iter.Words words:[{($ Id.VSub_At '@')}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name extra))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sans='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sans='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sans='> name:sans) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name sans) <'IP:'> (${ Id.VSub_Name extra) <','>) } ) ] redirects: [] ) ] spids: [8255 8270] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'sans='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sans='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sans='> 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) ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Generating certs for alternate-names: '> (${ Id.VSub_Name sans))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <setup-easyrsa> more_env: [] words: [{<setup-easyrsa>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <generate-certs> more_env: [ (EnvPair left: <Id.Lit_VarLike 'PRIMARY_CN='> name: PRIMARY_CN val: {(DQ (${ Id.VSub_Name primary_cn))} ) (EnvPair left: <Id.Lit_VarLike 'SANS='> name: SANS val: {(DQ (${ Id.VSub_Name sans))} ) ] words: [{<generate-certs>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <generate-aggregator-certs> more_env: [ (EnvPair left: <Id.Lit_VarLike 'AGGREGATOR_PRIMARY_CN='> name: AGGREGATOR_PRIMARY_CN val: {(DQ (${ Id.VSub_Name primary_cn))} ) (EnvPair left: <Id.Lit_VarLike 'AGGREGATOR_SANS='> name: AGGREGATOR_SANS val: {(DQ (${ Id.VSub_Name sans))} ) ] words: [{<generate-aggregator-certs>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'CERT_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CERT_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CERT_DIR='> name:CERT_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/easy-rsa-master/easyrsa3'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CA_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CA_KEY_BASE64='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CA_KEY_BASE64='> name:CA_KEY_BASE64) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/private/ca.key'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CA_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CA_CERT_BASE64='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CA_CERT_BASE64='> name:CA_CERT_BASE64) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/ca.crt'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASTER_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASTER_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MASTER_CERT_BASE64='> name: MASTER_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { (DQ (${ Id.VSub_Name CERT_DIR) <'/pki/issued/'> (${ Id.VSub_Name MASTER_NAME) <.crt> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASTER_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASTER_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MASTER_KEY_BASE64='> name: MASTER_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { (DQ (${ Id.VSub_Name CERT_DIR) <'/pki/private/'> (${ Id.VSub_Name MASTER_NAME) <.key> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBELET_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBELET_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBELET_CERT_BASE64='> name: KUBELET_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/issued/kubelet.crt'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBELET_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBELET_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBELET_KEY_BASE64='> name: KUBELET_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/private/kubelet.key'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBECFG_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBECFG_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBECFG_CERT_BASE64='> name: KUBECFG_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/issued/kubecfg.crt'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBECFG_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBECFG_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBECFG_KEY_BASE64='> name: KUBECFG_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/private/kubecfg.key'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBEAPISERVER_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBEAPISERVER_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBEAPISERVER_CERT_BASE64='> name: KUBEAPISERVER_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name CERT_DIR) <'/pki/issued/kube-apiserver.crt'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBEAPISERVER_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBEAPISERVER_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBEAPISERVER_KEY_BASE64='> name: KUBEAPISERVER_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { (DQ (${ Id.VSub_Name CERT_DIR) <'/pki/private/kube-apiserver.key'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'AGGREGATOR_CERT_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'AGGREGATOR_CERT_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AGGREGATOR_CERT_DIR='> name: AGGREGATOR_CERT_DIR ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/easy-rsa-master/aggregator'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'AGGREGATOR_CA_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'AGGREGATOR_CA_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AGGREGATOR_CA_KEY_BASE64='> name: AGGREGATOR_CA_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) <'/pki/private/ca.key'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'REQUESTHEADER_CA_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'REQUESTHEADER_CA_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REQUESTHEADER_CA_CERT_BASE64='> name: REQUESTHEADER_CA_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {(DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) <'/pki/ca.crt'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROXY_CLIENT_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROXY_CLIENT_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_CLIENT_CERT_BASE64='> name: PROXY_CLIENT_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { (DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) <'/pki/issued/proxy-client.crt'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROXY_CLIENT_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROXY_CLIENT_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_CLIENT_KEY_BASE64='> name: PROXY_CLIENT_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { (DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) <'/pki/private/proxy-client.key'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'\\r\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <setup-easyrsa> name: setup-easyrsa body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<-r>} {<Id.Lit_VarLike 'cert_create_debug_output='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [ {<mktemp>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/cert_create_debug_output.XXX'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name KUBE_TEMP))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <curl> more_env: [] words: [ {<curl>} {<-L>} {<-O>} {<--connect-timeout>} {<20>} {<--retry>} {<6>} {<--retry-delay>} {<2>} {<https> <Id.Lit_Colon ':'> < '//storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz' > } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <tar> more_env: [] words: [{<tar>} {<xzf>} {<easy-rsa.tar.gz>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'easy-rsa-master/kubelet'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<-r>} {<'easy-rsa-master/easyrsa3/'> <Id.Lit_Star '*'>} {<'easy-rsa-master/kubelet'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'easy-rsa-master/aggregator'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<-r>} {<'easy-rsa-master/easyrsa3/'> <Id.Lit_Star '*'>} {<'easy-rsa-master/aggregator'>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name cert_create_debug_output)} ) ] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ (${ Id.VSub_Name cert_create_debug_output))}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'=== Failed to setup easy-rsa: Aborting ==='>)}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <generate-certs> name: generate-certs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<-r>} {<Id.Lit_VarLike 'cert_create_debug_output='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [ {<mktemp>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/cert_create_debug_output.XXX'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [ {<cd>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/easy-rsa-master/easyrsa3'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [{<'./easyrsa'>} {<init-pki>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<--batch>} { (DQ <'--req-cn='> (${ Id.VSub_Name PRIMARY_CN) <'@'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <date> more_env: [] words: [{<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } {<build-ca>} {<nopass>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<--subject-alt-name> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name SANS))} {<build-server-full>} {(DQ (${ Id.VSub_Name MASTER_NAME))} {<nopass>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [{<'./easyrsa'>} {<build-client-full>} {<kube-apiserver>} {<nopass>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <kube> more_env: [] words: [ {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure-cfssl> } {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/cfssl'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (SQ < '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > ) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ <ca-config.json>)} ) ] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (SQ < '{"CN":"kubelet","names":[{"O":"system:nodes"}],"hosts":[""],"key":{"algo":"rsa","size":2048}}' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(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>} {<->} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name CFSSLJSON_BIN))} {<-bare>} {<kubelet>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {(DQ <kubelet-key.pem>)} {(DQ <'pki/private/kubelet.key'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {(DQ <kubelet.pem>)} {(DQ <'pki/issued/kubelet.crt'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(DQ <kubelet.csr>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<--dn-mode> <Id.Lit_Equals '='> <org>} {<--req-cn> <Id.Lit_Equals '='> <kubecfg>} {<--req-org> <Id.Lit_Equals '='> <system> <Id.Lit_Colon ':'> <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: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name cert_create_debug_output)} ) ] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ (${ Id.VSub_Name cert_create_debug_output))}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'=== Failed to generate master certificates: Aborting ==='>)} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <generate-aggregator-certs> name: generate-aggregator-certs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<-r>} {<Id.Lit_VarLike 'cert_create_debug_output='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [ {<mktemp>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/cert_create_debug_output.XXX'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [ {<cd>} {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/easy-rsa-master/aggregator'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [{<'./easyrsa'>} {<init-pki>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<--batch>} { (DQ <'--req-cn='> (${ Id.VSub_Name AGGREGATOR_PRIMARY_CN) <'@'> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <date> more_env: [] words: [{<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } {<build-ca>} {<nopass>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<--subject-alt-name> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name AGGREGATOR_SANS)) } {<build-server-full>} {(DQ (${ Id.VSub_Name AGGREGATOR_MASTER_NAME))} {<nopass>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<build-client-full>} {<aggregator-apiserver>} {<nopass>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <kube> more_env: [] words: [ {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure-cfssl> } {(DQ (${ Id.VSub_Name KUBE_TEMP) <'/cfssl'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (SQ < '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > ) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ <ca-config.json>)} ) ] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (SQ < '{"CN":"aggregator","hosts":[""],"key":{"algo":"rsa","size":2048}}' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(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>} {<->} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name CFSSLJSON_BIN))} {<-bare>} {<proxy-client>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.Simple blame_tok: <mv> more_env: [] words: [ {<mv>} {(DQ <proxy-client-key.pem>)} {(DQ <'pki/private/proxy-client.key'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {(DQ <proxy-client.pem>)} {(DQ <'pki/issued/proxy-client.crt'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(DQ <proxy-client.csr>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'./easyrsa'> more_env: [] words: [ {<'./easyrsa'>} {<--dn-mode> <Id.Lit_Equals '='> <org>} {<--req-cn> <Id.Lit_Equals '='> <proxy-clientcfg>} {<--req-org> <Id.Lit_Equals '='> <system> <Id.Lit_Colon ':'> <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: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name cert_create_debug_output)} ) ] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ (${ Id.VSub_Name cert_create_debug_output))}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'=== Failed to generate aggregator certificates: Aborting ==='>)} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <generate-etcd-cert> name: generate-etcd-cert body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'cert_dir='> (${ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'member_ip='> (${ Id.VSub_Number 2)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'type_cert='> (${ Id.VSub_Number 3)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'prefix='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 4> var_name: 4 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {(DQ (${ Id.VSub_Name type_cert))} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'GEN_ETCD_CA_CERT='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GEN_ETCD_CA_CERT> var_name: GEN_ETCD_CA_CERT suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'GEN_ETCD_CA_KEY='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GEN_ETCD_CA_KEY> var_name: GEN_ETCD_CA_KEY suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name cert_dir))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pushd> more_env: [] words: [{<pushd>} {(DQ (${ Id.VSub_Name cert_dir))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <kube> more_env: [] words: [ {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <ensure-cfssl> } {<.>} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {(DQ <ca-config.json>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<ca-config.json>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> 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'> ] ) ) ] do_fork: T ) ] spids: [9782 9797] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {(DQ <ca-csr.json>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<ca-csr.json>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> 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'> ] ) ) ] do_fork: T ) ] spids: [9957 9972] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> 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))} ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name ca_cert))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>} {<--decode>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <gunzip> more_env: [] words: [{<gunzip>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<ca.pem>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name ca_key))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <base64> more_env: [] words: [{<base64>} {<--decode>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<ca-key.pem>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] spids: [10056 10081] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> 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>)} ) ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name CFSSL_BIN)} {<gencert>} {<-initca>} {<ca-csr.json>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name CFSSLJSON_BIN)} {<-bare>} {<ca>} {<->}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] spids: [10130 10155] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name type_cert))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <client> pattern: (pat.Words words:[{<client>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Generate client certificates...'>)}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ <'{"CN":"client","hosts":["*"],"key":{"algo":"ecdsa","size":256}}'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ 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>} {<->} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name CFSSLJSON_BIN)} {<-bare>} {(DQ (${ Id.VSub_Name prefix))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <server> pattern: (pat.Words words:[{<server>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Generate server certificates...'>)}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ <'{"CN":"'>) (${ Id.VSub_Name member_ip) (SQ <'","hosts":[""],"key":{"algo":"ecdsa","size":256}}'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ 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'>) } {<->} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name CFSSLJSON_BIN)} {<-bare>} {(DQ (${ Id.VSub_Name prefix))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <peer> pattern: (pat.Words words:[{<peer>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Generate peer certificates...'>)}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ <'{"CN":"'>) (${ Id.VSub_Name member_ip) (SQ <'","hosts":[""],"key":{"algo":"ecdsa","size":256}}'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ 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'>) } {<->} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name CFSSLJSON_BIN)} {<-bare>} {(DQ (${ Id.VSub_Name prefix))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Unknow, unsupported etcd certs type: '> (${ Id.VSub_Name type_cert))} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Supported type: client, server, peer'>)}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <popd> more_env: [] words: [{<popd>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <get-env-val> name: get-env-val body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'match='> (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-E>} {(DQ <'^'> (${ Id.VSub_Number 2) <':'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ )}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(${ Id.VSub_Name match)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ )}] redirects: [] do_fork: T ) ] spids: [10528 10541] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name match)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d>} {<Id.Lit_Colon ':'>} {<-f>} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [ {<cut>} {<-d>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'')} {<-f>} {<2>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <parse-master-env> name: parse-master-env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'master_env='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-master-env> more_env: [] words: [{<get-master-env>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBELET_TOKEN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBELET_TOKEN='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBELET_TOKEN='> name:KUBELET_TOKEN) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <KUBELET_TOKEN>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_PROXY_TOKEN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_PROXY_TOKEN='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBE_PROXY_TOKEN='> name: KUBE_PROXY_TOKEN ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <KUBE_PROXY_TOKEN>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NODE_PROBLEM_DETECTOR_TOKEN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NODE_PROBLEM_DETECTOR_TOKEN='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NODE_PROBLEM_DETECTOR_TOKEN='> name: NODE_PROBLEM_DETECTOR_TOKEN ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <NODE_PROBLEM_DETECTOR_TOKEN>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CA_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CA_CERT_BASE64='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CA_CERT_BASE64='> name:CA_CERT_BASE64) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [{<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <CA_CERT>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CA_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CA_KEY_BASE64='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CA_KEY_BASE64='> name:CA_KEY_BASE64) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [{<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <CA_KEY>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBEAPISERVER_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBEAPISERVER_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBEAPISERVER_CERT_BASE64='> name: KUBEAPISERVER_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <KUBEAPISERVER_CERT>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBEAPISERVER_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBEAPISERVER_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBEAPISERVER_KEY_BASE64='> name: KUBEAPISERVER_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <KUBEAPISERVER_KEY>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'EXTRA_DOCKER_OPTS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXTRA_DOCKER_OPTS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXTRA_DOCKER_OPTS='> name: EXTRA_DOCKER_OPTS ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <EXTRA_DOCKER_OPTS>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBELET_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBELET_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBELET_CERT_BASE64='> name: KUBELET_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <KUBELET_CERT>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBELET_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBELET_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBELET_KEY_BASE64='> name: KUBELET_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <KUBELET_KEY>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASTER_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASTER_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MASTER_CERT_BASE64='> name: MASTER_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <MASTER_CERT>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MASTER_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MASTER_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MASTER_KEY_BASE64='> name: MASTER_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <MASTER_KEY>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'AGGREGATOR_CA_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'AGGREGATOR_CA_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AGGREGATOR_CA_KEY_BASE64='> name: AGGREGATOR_CA_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <AGGREGATOR_CA_KEY>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'REQUESTHEADER_CA_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'REQUESTHEADER_CA_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REQUESTHEADER_CA_CERT_BASE64='> name: REQUESTHEADER_CA_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <REQUESTHEADER_CA_CERT>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROXY_CLIENT_CERT_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROXY_CLIENT_CERT_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_CLIENT_CERT_BASE64='> name: PROXY_CLIENT_CERT_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <PROXY_CLIENT_CERT>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROXY_CLIENT_KEY_BASE64='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROXY_CLIENT_KEY_BASE64='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROXY_CLIENT_KEY_BASE64='> name: PROXY_CLIENT_KEY_BASE64 ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <PROXY_CLIENT_KEY>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ENABLE_LEGACY_ABAC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ENABLE_LEGACY_ABAC='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ENABLE_LEGACY_ABAC='> name: ENABLE_LEGACY_ABAC ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get-env-val> more_env: [] words: [ {<get-env-val>} {(DQ (${ Id.VSub_Name master_env))} {(DQ <ENABLE_LEGACY_ABAC>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <update-or-verify-gcloud> name: update-or-verify-gcloud body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'sudo_prefix='> (DQ )}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-w>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [ {<dirname>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<gcloud>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sudo_prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sudo_prefix='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sudo_prefix='> name: sudo_prefix ) op: assign_op.Equal rhs: {(DQ <sudo>)} ) ] redirects: [] ) ] spids: [10912 10935] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name KUBE_PROMPT_FOR_UPDATE))} right: {(DQ <y>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name sudo_prefix)} {<gcloud>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name gcloud_prompt> var_name: gcloud_prompt suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } {<components>} {<install>} {<alpha>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name sudo_prefix)} {<gcloud>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name gcloud_prompt> var_name: gcloud_prompt suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } {<components>} {<install>} {<beta>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name sudo_prefix)} {<gcloud>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name gcloud_prompt> var_name: gcloud_prompt suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } {<components>} {<update>} ] redirects: [] do_fork: T ) ] spids: [10951 10970] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'version='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <gcloud> more_env: [] words: [{<gcloud>} {<version>} {<--format> <Id.Lit_Equals '='> <json>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <python> more_env: [] words: [ {<python>} {<-c> (SQ <'\n'> <'import json,sys\n'> <'from distutils import version\n'> <'\n'> <'minVersion = version.LooseVersion("1.3.0")\n'> <'required = [ "alpha", "beta", "core" ]\n'> <'data = json.loads(sys.argv[1])\n'> <'rel = data.get("Google Cloud SDK")\n'> <'if rel != "HEAD" and version.LooseVersion(rel) < minVersion:\n'> <' print("gcloud version out of date ( < %s )" % minVersion)\n'> <' exit(1)\n'> <'missing = []\n'> <'for c in required:\n'> <' if not data.get(c):\n'> <' missing += [c]\n'> <'if missing:\n'> <' for c in missing:\n'> <' print ("missing required gcloud component \\"{0}\\"".format(c))\n'> <' exit(1)\n'> <' '> ) } {(DQ ) (DQ (${ Id.VSub_Name version)) (DQ )} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <verify-kube-binaries> name: verify-kube-binaries body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'missing_binaries='> <false>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kubectl.sh'>)} {<version>} {<--client>} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'!!! kubectl appears to be broken or missing'>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'missing_binaries='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'missing_binaries='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'missing_binaries='> name: missing_binaries ) op: assign_op.Equal rhs: {<true>} ) ] redirects: [] ) ] spids: [11111 11130] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <Id.Left_DollarParen '$('> more_env: [] words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <find-release-tars> more_env: [] words: [{<find-release-tars>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'missing_binaries='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'missing_binaries='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'missing_binaries='> name: missing_binaries ) op: assign_op.Equal rhs: {<true>} ) ] redirects: [] ) ] spids: [11147 11156] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name missing_binaries))}] redirects: [] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)] spids: [11167 11178] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'get_binaries_script='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'get_binaries_script='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'get_binaries_script='> name: get_binaries_script ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/get-kube-binaries.sh'>)} ) ] redirects: [] ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'resp='> (DQ <y>)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBERNETES_SKIP_CONFIRM> var_name: KUBERNETES_SKIP_CONFIRM suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<n>} ) right: <Id.Right_DollarBrace '}'> ) ) } right: {<Id.Lit_Other '^'> <Id.Lit_Other '['> <yY> <Id.Lit_Other ']'> <Id.Lit_Other '$'> } ) ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < 'Required binaries appear to be missing. Do you wish to download them? [Y/n]' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<resp>}] redirects: [] do_fork: T ) ] spids: [11205 11230] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> 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 '$'> } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'You must download binaries to continue. You can use '>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <' '> (${ Id.VSub_Name get_binaries_script))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'to do this for your automatically.'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [11248 11269] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ (${ Id.VSub_Name get_binaries_script))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <pushd> name: pushd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<pushd>} {($ Id.VSub_At '@')}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <popd> name: popd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<popd>} {($ Id.VSub_At '@')}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )