(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBECTL) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBECTL_BIN> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (local) (Lit_Slash /) (bin) (Lit_Slash /) (kubectl) } ) spids: [86 97] ) } spids: [85] ) ] spids: [85] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBECTL_OPTS) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBECTL_OPTS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [100 103] ) } spids: [99] ) ] spids: [99] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ADDON_CHECK_INTERVAL_SEC) op: Equal rhs: { (BracedVarSub token: <VSub_Name TEST_ADDON_CHECK_INTERVAL_SEC> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(60)}) spids: [107 111] ) } spids: [106] ) ] spids: [106] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ADDON_PATH) op: Equal rhs: { (BracedVarSub token: <VSub_Name ADDON_PATH> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (kubernetes) (Lit_Slash /) (addons)} ) spids: [114 123] ) } spids: [113] ) ] spids: [113] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SYSTEM_NAMESPACE) op: Equal rhs: {(kube-system)} spids: [126] ) ] spids: [126] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ADDON_MANAGER_LABEL) op: Equal rhs: {(DQ (addonmanager.kubernetes.io/mode))} spids: [139] ) ] spids: [139] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CLUSTER_SERVICE_LABEL) op: Equal rhs: {(DQ (kubernetes.io/cluster-service))} spids: [156] ) ] spids: [156] ) (FuncDef name: log body: (BraceGroup children: [ (Case to_match: {($ VSub_Number "$1")} arms: [ (case_arm pat_list:[{(DB3)}] spids:[199201207-1]) (case_arm pat_list:[{(DB2)}] spids:[210212218-1]) (case_arm pat_list:[{(DBG)}] spids:[221223229-1]) (case_arm pat_list: [{(INFO)}] action: [(C {(echo)} {(DQ ($ VSub_Number "$1") (": ") ($ VSub_Number "$2"))})] spids: [232 234 246 -1] ) (case_arm pat_list: [{(WRN)}] action: [(C {(echo)} {(DQ ($ VSub_Number "$1") (": ") ($ VSub_Number "$2"))})] spids: [249 251 263 -1] ) (case_arm pat_list: [{(ERR)}] action: [(C {(echo)} {(DQ ($ VSub_Number "$1") (": ") ($ VSub_Number "$2"))})] spids: [266 268 280 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("INVALID_LOG_LEVEL ") ($ VSub_Number "$1") (": ") ($ VSub_Number "$2"))} ) ] spids: [283 285 298 -1] ) ] spids: [192 196 301] ) ] spids: [180] ) spids: [174 179] ) (FuncDef name: start_addon body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:addon_filename) op: Equal rhs: {($ VSub_Number "$1")} spids: [331] ) ] spids: [327] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:tries) op: Equal rhs: {($ VSub_Number "$2")} spids: [340] ) ] spids: [336] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:delay) op: Equal rhs: {($ VSub_Number "$3")} spids: [349] ) ] spids: [345] ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:namespace) op: Equal rhs: {($ VSub_Number "$4")} spids: [358] ) ] spids: [354] ) (C {(create_resource_from_string)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name addon_filename)})] ) left_token: <Left_CommandSub "$("> spids: [366 372] ) ) } {(DQ (${ VSub_Name tries))} {(DQ (${ VSub_Name delay))} {(DQ (${ VSub_Name addon_filename))} {(DQ (${ VSub_Name namespace))} ) ] spids: [324] ) spids: [318 323] ) (FuncDef name: create_resource_from_string body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:config_string) op: Equal rhs: {($ VSub_Number "$1")} spids: [430] ) ] spids: [426] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tries) op: Equal rhs: {($ VSub_Number "$2")} spids: [437] ) ] spids: [435] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:delay) op: Equal rhs: {($ VSub_Number "$3")} spids: [446] ) ] spids: [442] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:config_name) op: Equal rhs: {($ VSub_Number "$4")} spids: [455] ) ] spids: [451] ) terminator: <Op_Semi ";"> ) (Sentence child: (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:namespace) op: Equal rhs: {($ VSub_Number "$5")} spids: [464] ) ] spids: [460] ) terminator: <Op_Semi ";"> ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} {(${ VSub_Name tries)} {(-gt)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (Sentence child: (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name config_string))}) (C {(${ VSub_Name KUBECTL)} {(${ VSub_Name KUBECTL_OPTS)} {(--namespace) (Lit_Other "=") (DQ (${ VSub_Name namespace))} {(apply)} {(-f)} {(-)} ) ] negated: False ) (AndOr children: [ (C {(log)} {(INFO)} { (DQ ("== Successfully started ") (${ VSub_Name config_name) (" in namespace ") (${ VSub_Name namespace) (" at ") (CommandSubPart command_list: (CommandList children:[(C {(date)} {(-Is)})]) left_token: <Left_CommandSub "$("> spids: [537 541] ) ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(let)} {(Lit_VarLike "tries=") (tries-1)}) terminator: <Op_Semi ";"> ) (C {(log)} {(WRN)} { (DQ ("== Failed to start ") (${ VSub_Name config_name) (" in namespace ") (${ VSub_Name namespace) (" at ") (CommandSubPart command_list: (CommandList children:[(C {(date)} {(-Is)})]) left_token: <Left_CommandSub "$("> spids: [575 579] ) (". ") (${ VSub_Name tries) (" tries remaining. ==") ) } ) (Sentence child: (C {(sleep)} {(${ VSub_Name delay)}) terminator: <Op_Semi ";"> ) ] spids: [484 596] ) ) (Sentence child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) terminator: <Op_Semi ";"> ) ] spids: [423] ) spids: [417 422] ) (FuncDef name: reconcile_addons body: (BraceGroup children: [ (C {(log)} {(INFO)} {(DQ ("== Reconciling with deprecated label =="))}) (Pipeline children: [ (C {(${ VSub_Name KUBECTL)} {(${ VSub_Name KUBECTL_OPTS)} {(apply)} {(--namespace) (Lit_Other "=") (${ VSub_Name SYSTEM_NAMESPACE)} {(-f)} {(${ VSub_Name ADDON_PATH)} {(-l)} {(${ VSub_Name CLUSTER_SERVICE_LABEL) (Lit_Other "=") (true) (Lit_Comma ",") (${ VSub_Name ADDON_MANAGER_LABEL) (KW_Bang "!") (Lit_Other "=") (EnsureExists) } {(--prune) (Lit_Other "=") (true)} {(--recursive)} ) (C {(grep)} {(-v)} {(configured)}) ] negated: False ) (C {(log)} {(INFO)} {(DQ ("== Reconciling with addon-manager label =="))}) (Pipeline children: [ (C {(${ VSub_Name KUBECTL)} {(${ VSub_Name KUBECTL_OPTS)} {(apply)} {(--namespace) (Lit_Other "=") (${ VSub_Name SYSTEM_NAMESPACE)} {(-f)} {(${ VSub_Name ADDON_PATH)} {(-l)} {(${ VSub_Name CLUSTER_SERVICE_LABEL) (KW_Bang "!") (Lit_Other "=") (true) (Lit_Comma ",") (${ VSub_Name ADDON_MANAGER_LABEL) (Lit_Other "=") (Reconcile) } {(--prune) (Lit_Other "=") (true)} {(--recursive)} ) (C {(grep)} {(-v)} {(configured)}) ] negated: False ) (C {(log)} {(INFO)} { (DQ ("== Kubernetes addon reconcile completed at ") (CommandSubPart command_list: (CommandList children:[(C {(date)} {(-Is)})]) left_token: <Left_CommandSub "$("> spids: [774 778] ) (" ==") ) } ) ] spids: [613] ) spids: [607 612] ) (FuncDef name: ensure_addons body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [ {(${ VSub_Name KUBECTL)} {(${ VSub_Name KUBECTL_OPTS)} {(create)} {(--namespace) (Lit_Other "=") (${ VSub_Name SYSTEM_NAMESPACE)} {(-f)} {(${ VSub_Name ADDON_PATH)} {(-l)} {(${ VSub_Name ADDON_MANAGER_LABEL) (Lit_Other "=") (EnsureExists)} {(--recursive)} ] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[836])] ) (C {(grep)} {(-v)} {(AlreadyExists)}) ] negated: False ) (C {(log)} {(INFO)} { (DQ ("== Kubernetes addon ensure completed at ") (CommandSubPart command_list: (CommandList children:[(C {(date)} {(-Is)})]) left_token: <Left_CommandSub "$("> spids: [855 859] ) (" ==") ) } ) ] spids: [791] ) spids: [785 790] ) (C {(log)} {(INFO)} { (DQ ("== Kubernetes addon manager started at ") (CommandSubPart command_list: (CommandList children:[(C {(date)} {(-Is)})]) left_token: <Left_CommandSub "$("> spids: [881 885] ) (" with ADDON_CHECK_INTERVAL_SEC=") (${ VSub_Name ADDON_CHECK_INTERVAL_SEC) (" ==") ) } ) (Sentence child: (C {(start_addon)} {(/opt/namespace.yaml)} {(100)} {(10)} {(DQ )}) terminator: <Op_Amp "&"> ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:token_found) op:Equal rhs:{(DQ )} spids:[914])] spids: [914] ) (While cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name token_found))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (C {(sleep)} {(.5)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:token_found) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(${ VSub_Name KUBECTL)} {(${ VSub_Name KUBECTL_OPTS)} {(get)} {(--namespace) (Lit_Other "=") (DQ (${ VSub_Name SYSTEM_NAMESPACE))} {(serviceaccount)} {(default)} {(-o)} {(go-template) (Lit_Other "=") (DQ ("{{with index .secrets 0}}{{.name}}{{end}}")) } ) ] ) left_token: <Left_CommandSub "$("> spids: [942 972] ) } spids: [941] ) ] spids: [941] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id:BoolBinary_ne left:{($ VSub_QMark "$?")} right:{(0)}) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:token_found) op: Equal rhs: {(DQ )} spids: [991] ) ] spids: [991] ) terminator: <Op_Semi ";"> ) (C {(log)} {(WRN)} {(DQ ("== Error getting default service account, retry in 0.5 second =="))} ) ] spids: [-1 988] ) ] spids: [-1 1006] ) ] spids: [933 1008] ) ) (C {(log)} {(INFO)} { (DQ ("== Default service account in the ") (${ VSub_Name SYSTEM_NAMESPACE) (" namespace has token ") (${ VSub_Name token_found) (" ==") ) } ) (ForEach iter_name: obj iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(/etc/kubernetes/admission-controls)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\(">)} {(-name)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\*">) (.yaml)} {(-o)} {(-name)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\*">) (.json)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\)">)} ) ] ) left_token: <Left_CommandSub "$("> spids: [1043 1063] ) } ] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (C {(start_addon)} {(DQ (${ VSub_Name obj))} {(100)} {(10)} {(default)}) terminator: <Op_Amp "&"> ) (C {(log)} {(INFO)} {(DQ ("++ obj ") (${ VSub_Name obj) (" is created ++"))}) ] spids: [1066 1098] ) spids: [1042 1064] ) (C {(log)} {(INFO)} { (DQ ("== Entering periodical apply loop at ") (CommandSubPart command_list: (CommandList children:[(C {(date)} {(-Is)})]) left_token: <Left_CommandSub "$("> spids: [1116 1120] ) (" ==") ) } ) (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:start_sec) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other "+") (DQ ("%s"))})] ) left_token: <Left_CommandSub "$("> spids: [1133 1140] ) } spids: [1132] ) ] spids: [1132] ) (C {(ensure_addons)}) (C {(reconcile_addons)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:end_sec) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other "+") (DQ ("%s"))})] ) left_token: <Left_CommandSub "$("> spids: [1150 1157] ) } spids: [1149] ) ] spids: [1149] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:len_sec) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{(${ VSub_Name end_sec)}) right: (ArithWord w:{(${ VSub_Name start_sec)}) ) spids: [1161 1170] ) } spids: [1160] ) ] spids: [1160] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_lt left: {(${ VSub_Name len_sec)} right: {(${ VSub_Name ADDON_CHECK_INTERVAL_SEC)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sleep_time) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{(${ VSub_Name ADDON_CHECK_INTERVAL_SEC)}) right: (ArithWord w:{(${ VSub_Name len_sec)}) ) spids: [1198 1207] ) } spids: [1197] ) ] spids: [1197] ) (C {(sleep)} {(${ VSub_Name sleep_time)}) ] spids: [-1 1194] ) ] spids: [-1 1217] ) ] spids: [1129 1219] ) ) ] )