(command.CommandList children: [ (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.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/..'> } ) ] redirects: [] ) (command.Simple blame_tok: <source> more_env: [] words: [{<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/skeleton/util.sh'>)}] 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 KUBERNETES_CONFORMANCE_TEST> var_name: KUBERNETES_CONFORMANCE_TEST 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_PROVIDER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBERNETES_PROVIDER='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBERNETES_PROVIDER='> name: KUBERNETES_PROVIDER ) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) ] spids: [77 93] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KUBERNETES_PROVIDER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBERNETES_PROVIDER='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KUBERNETES_PROVIDER='> name: KUBERNETES_PROVIDER ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBERNETES_PROVIDER> var_name: KUBERNETES_PROVIDER suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<gce>}) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROVIDER_VARS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROVIDER_VARS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROVIDER_VARS='> name:PROVIDER_VARS) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PROVIDER_UTILS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PROVIDER_UTILS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROVIDER_UTILS='> name:PROVIDER_UTILS) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/'> (${ Id.VSub_Name KUBERNETES_PROVIDER) <'/util.sh'> ) } ) ] 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 '['>} {<-f>} {(${ Id.VSub_Name PROVIDER_UTILS)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <source> more_env: [] words: [{<source>} {(DQ (${ Id.VSub_Name PROVIDER_UTILS))}] redirects: [] do_fork: T ) ] spids: [144 157] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <kubeconfig-federation-context> name: kubeconfig-federation-context 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_Number 1> var_name: 1 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: <echo> more_env: [] words: [{<echo>} {(DQ <'zone parameter is required'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [202 218] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CLUSTER_CONTEXT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CLUSTER_CONTEXT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CLUSTER_CONTEXT='> name: CLUSTER_CONTEXT ) op: assign_op.Equal rhs: { (DQ <federation-e2e-> (${ Id.VSub_Name KUBERNETES_PROVIDER) <-> (${ Id.VSub_Number 1) ) } ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <set-federation-zone-vars> name: set-federation-zone-vars body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'zone='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'zone='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'zone='> name:zone) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.Simple blame_tok: <kubeconfig-federation-context> more_env: [] words: [{<kubeconfig-federation-context>} {(DQ (${ Id.VSub_Name zone))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'OVERRIDE_CONTEXT='> (DQ (${ Id.VSub_Name CLUSTER_CONTEXT))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Setting zone vars to: '> ($ Id.VSub_DollarName OVERRIDE_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_GlobDEqual left: {(DQ ($ Id.VSub_DollarName KUBERNETES_PROVIDER))} right: {(DQ <gce>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'CLUSTER_NAME='> (DQ (${ Id.VSub_Name zone))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'KUBE_GCE_ZONE='> (DQ (${ Id.VSub_Name zone))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBE_GCE_INSTANCE_PREFIX='> (DQ (${ Id.VSub_Name USER) <-> (${ Id.VSub_Name zone)) } ] redirects: [] do_fork: T ) ] spids: [297 313] ) (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_GlobDEqual left: {(DQ ($ Id.VSub_DollarName KUBERNETES_PROVIDER))} right: {(DQ <gke>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'CLUSTER_NAME='> (DQ (${ Id.VSub_Name USER) <-> (${ Id.VSub_Name zone)) } ] redirects: [] do_fork: T ) ] spids: [376 392] ) (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_GlobDEqual left: {(DQ ($ Id.VSub_DollarName KUBERNETES_PROVIDER))} right: {(DQ <aws>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBE_AWS_ZONE='> (DQ ($ Id.VSub_DollarName zone))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [ {<export>} {<Id.Lit_VarLike 'KUBE_AWS_INSTANCE_PREFIX='> (DQ (${ Id.VSub_Name USER) <-> (${ Id.VSub_Name zone)) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <source> more_env: [] words: [{<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/aws/util.sh'>)}] redirects: [] do_fork: T ) ] spids: [411 427] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Provider '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name KUBERNETES_PROVIDER) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <' is not supported'> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )