(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (FuncDef
      name: create-dirs
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Creating required directories"))})
            (C {(mkdir)} {(-p)} {(/var/lib/kubelet)})
            (C {(mkdir)} {(-p)} {(/etc/kubernetes/manifests)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBERNETES_MASTER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [113 116]
                                    )
                                  )
                                }
                              right: {(DQ (false))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(mkdir)} {(-p)} {(/var/lib/kube-proxy)})]
                  spids: [-1 128]
                )
              ]
              spids: [-1 138]
            )
          ]
          spids: [84]
        )
      spids: [80 83]
    )
    (FuncDef
      name: create-kube-controller-manager-dirs
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(/etc/srv/kubernetes)} {(/var/ssl)} 
              (BracedWordTree
                parts: [(/etc/) (BracedAltPart words:[{(ssl)}{(openssl)}{(pki)}])]
              )
            )
          ]
          spids: [156]
        )
      spids: [152 155]
    )
    (FuncDef
      name: safe-format-and-mount
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:device)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [194]
                )
              ]
              spids: [194]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mountpoint)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [198]
                )
              ]
              spids: [198]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(tune2fs)} {(-l)} {(DQ (${ VSub_Name device))})]
                          negated: True
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Formatting '") (${ VSub_Name device) ("'"))})
                    (C {(mkfs.ext4)} {(-F)} {(-E)} 
                      {(Lit_VarLike "lazy_itable_init=") (0) (Lit_Comma ",") 
                        (Lit_VarLike "lazy_journal_init=") (0) (Lit_Comma ",") (discard)
                      } {(DQ (${ VSub_Name device))}
                    )
                  ]
                  spids: [-1 223]
                )
              ]
              spids: [-1 258]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name mountpoint))})
            (C {(echo)} 
              {(DQ ("Mounting '") (${ VSub_Name device) ("' at '") (${ VSub_Name mountpoint) ("'"))}
            )
            (C {(mount)} {(-o)} {(discard) (Lit_Comma ",") (defaults)} {(DQ (${ VSub_Name device))} 
              {(DQ (${ VSub_Name mountpoint))}
            )
          ]
          spids: [191]
        )
      spids: [185 190]
    )
    (FuncDef
      name: ensure-local-ssds
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: ssd
              iter_words: [{(/dev/disk/by-id/google-local-ssd-) (Lit_Other "*")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} {(-e)} {(DQ (${ VSub_Name ssd))} {(Lit_Other "]")})
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ssdnum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(${ VSub_Name ssd)})
                                                  (C {(sed)} {(-e)} 
                                                    {
                                                      (SQ 
                                                        <
"s/\\/dev\\/disk\\/by-id\\/google-local-ssd-\\([0-9]*\\)/\\1/"
                                                        >
                                                      )
                                                    }
                                                  )
                                                ]
                                                negated: False
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick "`">
                                        spids: [355 371]
                                      )
                                    }
                                  spids: [354]
                                )
                              ]
                              spids: [354]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ssdmount)
                                  op: Equal
                                  rhs: {(DQ (/mnt/disks/ssd) (${ VSub_Name ssdnum) (/))}
                                  spids: [374]
                                )
                              ]
                              spids: [374]
                            )
                            (C {(mkdir)} {(-p)} {(${ VSub_Name ssdmount)})
                            (C {(safe-format-and-mount)} {(DQ (${ VSub_Name ssd))} 
                              {(${ VSub_Name ssdmount)}
                            )
                            (C {(echo)} 
                              {
                                (DQ ("Mounted local SSD ") ($ VSub_Name "$ssd") (" at ") 
                                  (${ VSub_Name ssdmount)
                                )
                              }
                            )
                            (C {(chmod)} {(a) (Lit_Other "+") (w)} {(${ VSub_Name ssdmount)})
                          ]
                          spids: [-1 351]
                        )
                      ]
                      else_action: [(C {(echo)} {(DQ ("No local SSD disks found."))})]
                      spids: [429 439]
                    )
                  ]
                  spids: [333 442]
                )
              spids: [328 331]
            )
          ]
          spids: [320]
        )
      spids: [314 319]
    )
    (FuncDef
      name: find-master-pd
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MASTER_PD_DEVICE)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [457]
                )
              ]
              spids: [457]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_e
                                  child: {(/dev/disk/by-id/google-master-pd)}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [-1 475]
                )
              ]
              spids: [-1 481]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:device_info)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(ls)} {(-l)} {(/dev/disk/by-id/google-master-pd)})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [485 491]
                      )
                    }
                  spids: [484]
                )
              ]
              spids: [484]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relative_path)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name device_info>
                        suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("* ")})
                        spids: [495 499]
                      )
                    }
                  spids: [494]
                )
              ]
              spids: [494]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:MASTER_PD_DEVICE)
                  op: Equal
                  rhs: {(DQ (/dev/disk/by-id/) (${ VSub_Name relative_path))}
                  spids: [502]
                )
              ]
              spids: [502]
            )
          ]
          spids: [454]
        )
      spids: [450 453]
    )
    (FuncDef
      name: mount-master-pd
      body: 
        (BraceGroup
          children: [
            (C {(find-master-pd)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name MASTER_PD_DEVICE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [542 545]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [-1 551]
                )
              ]
              spids: [-1 557]
            )
            (C {(echo)} {(DQ ("Mounting master-pd"))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pd_path)
                  op: Equal
                  rhs: {(DQ (/dev/disk/by-id/google-master-pd))}
                  spids: [572]
                )
              ]
              spids: [568]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mount_point)
                  op: Equal
                  rhs: {(DQ (/mnt/disks/master-pd))}
                  spids: [582]
                )
              ]
              spids: [578]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name mount_point))})
            (C {(safe-format-and-mount)} {(DQ (${ VSub_Name pd_path))} {(DQ (${ VSub_Name mount_point))})
            (C {(echo)} 
              {
                (DQ ("Mounted master-pd '") (${ VSub_Name pd_path) ("' at '") (${ VSub_Name mount_point) 
                  ("'")
                )
              }
            )
            (C {(mkdir)} {(-m)} {(700)} {(-p)} {(DQ (${ VSub_Name mount_point) (/var/etcd))})
            (C {(ln)} {(-s)} {(-f)} {(DQ (${ VSub_Name mount_point) (/var/etcd))} {(/var/etcd)})
            (C {(mkdir)} {(-p)} {(/etc/srv)})
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name mount_point) (/srv/kubernetes))})
            (C {(ln)} {(-s)} {(-f)} {(DQ (${ VSub_Name mount_point) (/srv/kubernetes))} 
              {(/etc/srv/kubernetes)}
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name mount_point) (/srv/sshproxy))})
            (C {(ln)} {(-s)} {(-f)} {(DQ (${ VSub_Name mount_point) (/srv/sshproxy))} 
              {(/etc/srv/sshproxy)}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(id)} {(etcd)})] negated:True)
                      terminator: <Op_Amp "&">
                    )
                    (Sentence
                      child: 
                        (SimpleCommand
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [772]
                            )
                          ]
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(useradd)} {(-s)} {(/sbin/nologin)} {(-d)} {(/var/etcd)} {(etcd)})]
                  spids: [-1 776]
                )
              ]
              spids: [-1 792]
            )
            (C {(chown)} {(-R)} {(etcd)} {(DQ (${ VSub_Name mount_point) (/var/etcd))})
            (C {(chgrp)} {(-R)} {(etcd)} {(DQ (${ VSub_Name mount_point) (/var/etcd))})
          ]
          spids: [529]
        )
      spids: [525 528]
    )
    (FuncDef
      name: replace_prefixed_line
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [850 853]
                        )
                      )
                    }
                  spids: [848]
                )
              ]
              spids: [844]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:prefix)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 2>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [863 866]
                        )
                      )
                    }
                  spids: [861]
                )
              ]
              spids: [857]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:suffix)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 3>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [876 879]
                        )
                      )
                    }
                  spids: [874]
                )
              ]
              spids: [870]
            )
            (C {(touch)} {(DQ (${ VSub_Name file))})
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {(awk)}
                    {
                      (DQ ("substr(") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) 
                        ("0,0,length(") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name prefix) 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (")) != ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name prefix) 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" { print }")
                      )
                    }
                    {(DQ (${ VSub_Name file))}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ (${ VSub_Name file) (.filtered))}
                      spids: [919]
                    )
                  ]
                )
                (C {(mv)} {(DQ (${ VSub_Name file) (.filtered))} {(DQ (${ VSub_Name file))})
              ]
              op_id: Op_DAmp
            )
            (SimpleCommand
              words: [{(echo)} {(DQ (${ VSub_Name prefix) (${ VSub_Name suffix))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(DQ (${ VSub_Name file))}
                  spids: [957]
                )
              ]
            )
          ]
          spids: [841]
        )
      spids: [837 840]
    )
    (FuncDef
      name: create-master-auth
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Creating master auth files"))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:auth_dir)
                  op: Equal
                  rhs: {(DQ (/etc/srv/kubernetes))}
                  spids: [995]
                )
              ]
              spids: [991]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_e
                                      child: {(DQ (${ VSub_Name auth_dir) (/ca.crt))}
                                    )
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (LogicalNot
                                      child: 
                                        (BoolUnary
                                          op_id: BoolUnary_z
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name CA_CERT>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [1023 1026]
                                                )
                                              )
                                            }
                                        )
                                    )
                                  right: 
                                    (LogicalAnd
                                      left: 
                                        (LogicalNot
                                          child: 
                                            (BoolUnary
                                              op_id: BoolUnary_z
                                              child: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name MASTER_CERT>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VTest_ColonHyphen
                                                          arg_word: {(SQ )}
                                                        )
                                                      spids: [1036 1039]
                                                    )
                                                  )
                                                }
                                            )
                                        )
                                      right: 
                                        (LogicalNot
                                          child: 
                                            (BoolUnary
                                              op_id: BoolUnary_z
                                              child: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name MASTER_KEY>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VTest_ColonHyphen
                                                          arg_word: {(SQ )}
                                                        )
                                                      spids: [1049 1052]
                                                    )
                                                  )
                                                }
                                            )
                                        )
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name CA_CERT))})
                        (SimpleCommand
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name auth_dir) (/ca.crt))}
                              spids: [1075]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name MASTER_CERT))})
                        (SimpleCommand
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name auth_dir) (/server.cert))}
                              spids: [1099]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name MASTER_KEY))})
                        (SimpleCommand
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name auth_dir) (/server.key))}
                              spids: [1123]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 1058]
                )
              ]
              spids: [-1 1133]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:basic_auth_csv)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name auth_dir) (/basic_auth.csv))}
                  spids: [1140]
                )
              ]
              spids: [1136]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBE_PASSWORD>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [1156 1159]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBE_USER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [1167 1170]
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(replace_prefixed_line)} {(DQ (${ VSub_Name basic_auth_csv))} 
                      {(DQ (${ VSub_Name KUBE_PASSWORD) (",") (${ VSub_Name KUBE_USER) (","))} {(DQ ("admin,system:masters"))}
                    )
                  ]
                  spids: [-1 1176]
                )
              ]
              spids: [-1 1203]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:known_tokens_csv)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name auth_dir) (/known_tokens.csv))}
                  spids: [1210]
                )
              ]
              spids: [1206]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_BEARER_TOKEN>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1226 1229]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(replace_prefixed_line)} {(DQ (${ VSub_Name known_tokens_csv))} 
                      {(DQ (${ VSub_Name KUBE_BEARER_TOKEN) (","))} {(DQ ("admin,admin,system:masters"))}
                    )
                  ]
                  spids: [-1 1235]
                )
              ]
              spids: [-1 1258]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_CONTROLLER_MANAGER_TOKEN>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1268 1271]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(replace_prefixed_line)} {(DQ (${ VSub_Name known_tokens_csv))} 
                      {(DQ (${ VSub_Name KUBE_CONTROLLER_MANAGER_TOKEN) (","))} {(DQ ("system:kube-controller-manager,uid:system:kube-controller-manager"))}
                    )
                  ]
                  spids: [-1 1277]
                )
              ]
              spids: [-1 1300]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_SCHEDULER_TOKEN>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1310 1313]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(replace_prefixed_line)} {(DQ (${ VSub_Name known_tokens_csv))} 
                      {(DQ (${ VSub_Name KUBE_SCHEDULER_TOKEN) (","))} {(DQ ("system:kube-scheduler,uid:system:kube-scheduler"))}
                    )
                  ]
                  spids: [-1 1319]
                )
              ]
              spids: [-1 1342]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBELET_TOKEN>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1352 1355]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(replace_prefixed_line)} {(DQ (${ VSub_Name known_tokens_csv))} 
                      {(DQ (${ VSub_Name KUBELET_TOKEN) (","))} {(DQ ("kubelet,uid:kubelet,system:nodes"))}
                    )
                  ]
                  spids: [-1 1361]
                )
              ]
              spids: [-1 1384]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_PROXY_TOKEN>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1394 1397]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(replace_prefixed_line)} {(DQ (${ VSub_Name known_tokens_csv))} 
                      {(DQ (${ VSub_Name KUBE_PROXY_TOKEN) (","))} {(DQ ("system:kube-proxy,uid:kube_proxy"))}
                    )
                  ]
                  spids: [-1 1403]
                )
              ]
              spids: [-1 1426]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:use_cloud_config)
                  op: Equal
                  rhs: {(DQ (false))}
                  spids: [1431]
                )
              ]
              spids: [1429]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: {(DQ ("[global]\n"))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [1439]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/gce.conf)}
                  spids: [1442]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCE_API_ENDPOINT>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1454 1457]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("api-endpoint = ") (${ VSub_Name GCE_API_ENDPOINT) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1468]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1471]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1463]
                )
              ]
              spids: [-1 1480]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name TOKEN_URL>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [1490 1493]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name TOKEN_BODY>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [1501 1504]
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1513]
                        )
                      ]
                      spids: [1513]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("token-url = ") (${ VSub_Name TOKEN_URL) ("\n") ("token-body = ") 
                                (${ VSub_Name TOKEN_BODY) ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1521]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1524]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1510]
                )
              ]
              spids: [-1 1538]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name PROJECT_ID>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1548 1551]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1560]
                        )
                      ]
                      spids: [1560]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("project-id = ") (${ VSub_Name PROJECT_ID) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1568]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1571]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1557]
                )
              ]
              spids: [-1 1580]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NETWORK_PROJECT_ID>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1590 1593]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1602]
                        )
                      ]
                      spids: [1602]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {(DQ ("network-project-id = ") (${ VSub_Name NETWORK_PROJECT_ID) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1610]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1613]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1599]
                )
              ]
              spids: [-1 1622]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NODE_NETWORK>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1632 1635]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1644]
                        )
                      ]
                      spids: [1644]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("network-name = ") (${ VSub_Name NODE_NETWORK) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1652]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1655]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1641]
                )
              ]
              spids: [-1 1664]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NODE_SUBNETWORK>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1674 1677]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1686]
                        )
                      ]
                      spids: [1686]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("subnetwork-name = ") (${ VSub_Name NODE_SUBNETWORK) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1694]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1697]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1683]
                )
              ]
              spids: [-1 1706]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NODE_INSTANCE_PREFIX>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1716 1719]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1728]
                        )
                      ]
                      spids: [1728]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name NODE_TAGS>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [1741 1744]
                                            )
                                          )
                                        }
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              flags: ["'-r'"]
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:node_tags)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name NODE_TAGS))}
                                  spids: [1757]
                                )
                              ]
                              spids: [1753]
                            )
                          ]
                          spids: [-1 1750]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_Local
                          flags: ["'-r'"]
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:node_tags)
                              op: Equal
                              rhs: {(DQ (${ VSub_Name NODE_INSTANCE_PREFIX))}
                              spids: [1772]
                            )
                          ]
                          spids: [1768]
                        )
                      ]
                      spids: [1765 1780]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("node-tags = ") (${ VSub_Name node_tags) ("\n") 
                                ("node-instance-prefix = ") (${ VSub_Name NODE_INSTANCE_PREFIX) ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1785]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1788]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1725]
                )
              ]
              spids: [-1 1802]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name MULTIZONE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1812 1815]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1824]
                        )
                      ]
                      spids: [1824]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("multizone = ") (${ VSub_Name MULTIZONE) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1832]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1835]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1821]
                )
              ]
              spids: [-1 1844]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCE_ALPHA_FEATURES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1854 1857]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1866]
                        )
                      ]
                      spids: [1866]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("alpha-features = ") (${ VSub_Name GCE_ALPHA_FEATURES) ("\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1874]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1877]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1863]
                )
              ]
              spids: [-1 1886]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SECONDARY_RANGE_NAME>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1896 1899]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use_cloud_config)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [1908]
                        )
                      ]
                      spids: [1908]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("secondary-range-name = ") 
                                (BracedVarSub
                                  token: <VSub_Name SECONDARY>
                                  suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(RANGE-NAME)})
                                  spids: [1924 1928]
                                ) ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1916]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/gce.conf)}
                          spids: [1919]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1905]
                )
              ]
              spids: [-1 1931]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {(DQ (${ VSub_Name use_cloud_config))}
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(/etc/gce.conf)})]
                  spids: [-1 1953]
                )
              ]
              spids: [-1 1963]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCP_AUTHN_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [1974 1977]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("clusters:\n") ("  - name: gcp-authentication-server\n") 
                                ("    cluster:\n") ("      server: ") (${ VSub_Name GCP_AUTHN_URL) ("\n") ("users:\n") ("  - name: kube-apiserver\n") 
                                ("    user:\n") ("      auth-provider:\n") ("        name: gcp\n") ("current-context: webhook\n") ("contexts:\n") 
                                ("- context:\n") ("    cluster: gcp-authentication-server\n") ("    user: kube-apiserver\n") ("  name: webhook\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1988]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/etc/gcp_authn.config)}
                          spids: [1991]
                        )
                      ]
                    )
                  ]
                  spids: [-1 1983]
                )
              ]
              spids: [-1 2014]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCP_AUTHZ_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2025 2028]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("clusters:\n") ("  - name: gcp-authorization-server\n") 
                                ("    cluster:\n") ("      server: ") (${ VSub_Name GCP_AUTHZ_URL) ("\n") ("users:\n") ("  - name: kube-apiserver\n") 
                                ("    user:\n") ("      auth-provider:\n") ("        name: gcp\n") ("current-context: webhook\n") ("contexts:\n") 
                                ("- context:\n") ("    cluster: gcp-authorization-server\n") ("    user: kube-apiserver\n") ("  name: webhook\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [2039]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/etc/gcp_authz.config)}
                          spids: [2042]
                        )
                      ]
                    )
                  ]
                  spids: [-1 2034]
                )
              ]
              spids: [-1 2065]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCP_IMAGE_VERIFICATION_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2075 2078]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("clusters:\n") ("  - name: gcp-image-review-server\n") 
                                ("    cluster:\n") ("      server: ") (${ VSub_Name GCP_IMAGE_VERIFICATION_URL) ("\n") ("users:\n") 
                                ("  - name: kube-apiserver\n") ("    user:\n") ("      auth-provider:\n") ("        name: gcp\n") ("current-context: webhook\n") 
                                ("contexts:\n") ("- context:\n") ("    cluster: gcp-image-review-server\n") ("    user: kube-apiserver\n") 
                                ("  name: webhook\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [2093]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/etc/gcp_image_review.config)}
                          spids: [2096]
                        )
                      ]
                    )
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("imagePolicy:\n") 
                                ("  kubeConfigFile: /etc/gcp_image_review.config\n") ("  allowTTL: 30\n") ("  denyTTL: 30\n") ("  retryBackoff: 500\n") ("  defaultAllow: true\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [2125]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(/etc/admission_controller.config)}
                          spids: [2128]
                        )
                      ]
                    )
                  ]
                  spids: [-1 2084]
                )
              ]
              spids: [-1 2138]
            )
          ]
          spids: [981]
        )
      spids: [977 980]
    )
    (FuncDef
      name: create-kubelet-kubeconfig
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:apiserver_address)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [2157]
                )
              ]
              spids: [2155]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: {(DQ (${ VSub_Name apiserver_address))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {(DQ ("Must provide API server address to create Kubelet kubeconfig file!"))}
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 2180]
                )
              ]
              spids: [-1 2195]
            )
            (C {(echo)} {(DQ ("Creating kubelet kubeconfig file"))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBELET_CA_CERT>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2212 2215]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBELET_CA_CERT)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name CA_CERT))}
                          spids: [2224]
                        )
                      ]
                      spids: [2224]
                    )
                  ]
                  spids: [-1 2221]
                )
              ]
              spids: [-1 2232]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("apiVersion: v1\n") ("kind: Config\n") ("users:\n") ("- name: kubelet\n") 
                        ("  user:\n") ("    client-certificate-data: ") (${ VSub_Name KUBELET_CERT) ("\n") ("    client-key-data: ") 
                        (${ VSub_Name KUBELET_KEY) ("\n") ("clusters:\n") ("- name: local\n") ("  cluster:\n") ("    server: ") 
                        (${ VSub_Name apiserver_address) ("\n") ("    certificate-authority-data: ") (${ VSub_Name KUBELET_CA_CERT) ("\n") ("contexts:\n") 
                        ("- context:\n") ("    cluster: local\n") ("    user: kubelet\n") ("  name: service-account-context\n") 
                        ("current-context: service-account-context\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2237]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/var/lib/kubelet/kubeconfig)}
                  spids: [2240]
                )
              ]
            )
          ]
          spids: [2152]
        )
      spids: [2146 2151]
    )
    (FuncDef
      name: create-master-kubelet-auth
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBELET_APISERVER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2314 2317]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name KUBELET_CERT>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [2325 2328]
                                            )
                                          )
                                        }
                                    )
                                  right: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name KUBELET_KEY>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [2336 2339]
                                            )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:REGISTER_MASTER_KUBELET)
                          op: Equal
                          rhs: {(DQ (true))}
                          spids: [2348]
                        )
                      ]
                      spids: [2348]
                    )
                    (C {(create-kubelet-kubeconfig)} 
                      {(DQ ("https://") (${ VSub_Name KUBELET_APISERVER))}
                    )
                  ]
                  spids: [-1 2345]
                )
              ]
              spids: [-1 2364]
            )
          ]
          spids: [2296]
        )
      spids: [2292 2295]
    )
    (FuncDef
      name: create-kubeproxy-user-kubeconfig
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Creating kube-proxy user kubeconfig file"))})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("apiVersion: v1\n") ("kind: Config\n") ("users:\n") ("- name: kube-proxy\n") 
                        ("  user:\n") ("    token: ") (${ VSub_Name KUBE_PROXY_TOKEN) ("\n") ("clusters:\n") ("- name: local\n") 
                        ("  cluster:\n") ("    certificate-authority-data: ") (${ VSub_Name CA_CERT) ("\n") ("contexts:\n") ("- context:\n") 
                        ("    cluster: local\n") ("    user: kube-proxy\n") ("  name: service-account-context\n") 
                        ("current-context: service-account-context\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2385]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/var/lib/kube-proxy/kubeconfig)}
                  spids: [2388]
                )
              ]
            )
          ]
          spids: [2373]
        )
      spids: [2369 2372]
    )
    (FuncDef
      name: create-kubecontrollermanager-kubeconfig
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Creating kube-controller-manager kubeconfig file"))})
            (C {(mkdir)} {(-p)} {(/etc/srv/kubernetes/kube-controller-manager)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("apiVersion: v1\n") ("kind: Config\n") ("users:\n") 
                        ("- name: kube-controller-manager\n") ("  user:\n") ("    token: ") (${ VSub_Name KUBE_CONTROLLER_MANAGER_TOKEN) ("\n") ("clusters:\n") 
                        ("- name: local\n") ("  cluster:\n") ("    insecure-skip-tls-verify: true\n") ("    server: https://localhost:443\n") 
                        ("contexts:\n") ("- context:\n") ("    cluster: local\n") ("    user: kube-controller-manager\n") 
                        ("  name: service-account-context\n") ("current-context: service-account-context\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2441]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/srv/kubernetes/kube-controller-manager/kubeconfig)}
                  spids: [2444]
                )
              ]
            )
          ]
          spids: [2422]
        )
      spids: [2418 2421]
    )
    (FuncDef
      name: create-kubescheduler-kubeconfig
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Creating kube-scheduler kubeconfig file"))})
            (C {(mkdir)} {(-p)} {(/etc/srv/kubernetes/kube-scheduler)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("apiVersion: v1\n") ("kind: Config\n") ("users:\n") 
                        ("- name: kube-scheduler\n") ("  user:\n") ("    token: ") (${ VSub_Name KUBE_SCHEDULER_TOKEN) ("\n") ("clusters:\n") 
                        ("- name: local\n") ("  cluster:\n") ("    insecure-skip-tls-verify: true\n") ("    server: https://localhost:443\n") 
                        ("contexts:\n") ("- context:\n") ("    cluster: local\n") ("    user: kube-scheduler\n") ("  name: kube-scheduler\n") 
                        ("current-context: kube-scheduler\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2494]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/srv/kubernetes/kube-scheduler/kubeconfig)}
                  spids: [2497]
                )
              ]
            )
          ]
          spids: [2475]
        )
      spids: [2471 2474]
    )
    (FuncDef
      name: create-master-etcd-auth
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name ETCD_CA_CERT>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2538 2541]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ETCD_PEER_KEY>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [2549 2552]
                                            )
                                          )
                                        }
                                    )
                                  right: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ETCD_PEER_CERT>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [2560 2563]
                                            )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:auth_dir)
                          op: Equal
                          rhs: {(DQ (/etc/srv/kubernetes))}
                          spids: [2576]
                        )
                      ]
                      spids: [2572]
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name ETCD_CA_CERT))})
                        (C {(base64)} {(--decode)})
                        (SimpleCommand
                          words: [{(gunzip)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name auth_dir) (/etcd-ca.crt))}
                              spids: [2600]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name ETCD_PEER_KEY))})
                        (SimpleCommand
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name auth_dir) (/etcd-peer.key))}
                              spids: [2624]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name ETCD_PEER_CERT))})
                        (C {(base64)} {(--decode)})
                        (SimpleCommand
                          words: [{(gunzip)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name auth_dir) (/etcd-peer.crt))}
                              spids: [2652]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 2569]
                )
              ]
              spids: [-1 2662]
            )
          ]
          spids: [2528]
        )
      spids: [2524 2527]
    )
    (FuncDef
      name: configure-docker-daemon
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Configuring the Docker daemon"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:docker_opts)
                  op: Equal
                  rhs: {(DQ ("-p /var/run/docker.pid --iptables=false --ip-masq=false"))}
                  spids: [2683]
                )
              ]
              spids: [2681]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name TEST_CLUSTER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2694 2697]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:docker_opts)
                          op: PlusEqual
                          rhs: {(DQ (" --log-level=debug"))}
                          spids: [2712]
                        )
                      ]
                      spids: [2712]
                    )
                  ]
                  spids: [-1 2709]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:docker_opts)
                      op: PlusEqual
                      rhs: {(DQ (" --log-level=warn"))}
                      spids: [2721]
                    )
                  ]
                  spids: [2721]
                )
              ]
              spids: [2718 2727]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:use_net_plugin)
                  op: Equal
                  rhs: {(DQ (true))}
                  spids: [2732]
                )
              ]
              spids: [2730]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name NETWORK_PROVIDER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2743 2746]
                                        )
                                      )
                                    }
                                  right: {(DQ (kubenet))}
                                )
                              right: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name NETWORK_PROVIDER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [2758 2761]
                                        )
                                      )
                                    }
                                  right: {(DQ (cni))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:docker_opts)
                          op: PlusEqual
                          rhs: {(DQ (" --bip=169.254.123.1/24"))}
                          spids: [2780]
                        )
                      ]
                      spids: [2780]
                    )
                  ]
                  spids: [-1 2773]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:use_net_plugin)
                      op: Equal
                      rhs: {(DQ (false))}
                      spids: [2789]
                    )
                  ]
                  spids: [2789]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:docker_opts)
                      op: PlusEqual
                      rhs: {(DQ (" --bridge=cbr0"))}
                      spids: [2795]
                    )
                  ]
                  spids: [2795]
                )
              ]
              spids: [2786 2801]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name DOCKER_REGISTRY_MIRROR_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2820 2823]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("Enable docker registry mirror at: ") 
                          (${ VSub_Name DOCKER_REGISTRY_MIRROR_URL)
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:docker_opts)
                          op: PlusEqual
                          rhs: {(DQ (" --registry-mirror=") (${ VSub_Name DOCKER_REGISTRY_MIRROR_URL))}
                          spids: [2842]
                        )
                      ]
                      spids: [2842]
                    )
                  ]
                  spids: [-1 2829]
                )
              ]
              spids: [-1 2851]
            )
            (C {(mkdir)} {(-p)} {(/etc/systemd/system/docker.service.d/)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubernetes_conf_dropin)
                  op: Equal
                  rhs: {(DQ (/etc/systemd/system/docker.service.d/00_kubelet.conf))}
                  spids: [2864]
                )
              ]
              spids: [2862]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ (${ VSub_Name kubernetes_conf_dropin))}
                  spids: [2872]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("[Service]\n") ("Environment=") (Right_DoubleQuote "\"") ("DOCKER_OPTS=") 
                        (${ VSub_Name docker_opts) (" ") 
                        (BracedVarSub
                          token: <VSub_Name EXTRA_DOCKER_OPTS>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [2891 2894]
                        ) (Right_DoubleQuote "\"") ("\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2880]
                )
              ]
            )
            (C {(echo)} {(DQ ("Docker daemon options updated. Restarting docker..."))})
            (C {(systemctl)} {(daemon-reload)})
            (C {(systemctl)} {(restart)} {(docker)})
          ]
          spids: [2671]
        )
      spids: [2667 2670]
    )
    (FuncDef
      name: try-load-docker-image
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:img)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [2942]
                )
              ]
              spids: [2938]
            )
            (C {(echo)} {(DQ ("Try to load docker image file ") (${ VSub_Name img))})
            (C {(set)} {(Lit_Other "+") (e)})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [(assign_pair lhs:(LhsName name:max_attempts) op:Equal rhs:{(5)} spids:[2970])]
              spids: [2966]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-i'"]
              pairs: [(assign_pair lhs:(LhsName name:attempt_num) op:Equal rhs:{(1)} spids:[2978])]
              spids: [2974]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CONTAINER_RUNTIME>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [2988 2991]
                                    )
                                  )
                                }
                              right: {(DQ (rkt))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: attempt_num
                      iter_words: [
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(seq)} {(1)} {(DQ (${ VSub_Name max_attempts))})]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [3012 3022]
                          )
                        }
                      ]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aci_tmpdir)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(mktemp)} {(-t)} {(-d)} {(docker2aci.XXXXX)})
                                              ]
                                            )
                                          left_token: <Left_CommandSub "$(">
                                          spids: [3032 3040]
                                        )
                                      )
                                    }
                                  spids: [3030]
                                )
                              ]
                              spids: [3028]
                            )
                            (Subshell
                              child: 
                                (CommandList
                                  children: [
                                    (Sentence
                                      child: (C {(cd)} {(DQ (${ VSub_Name aci_tmpdir))})
                                      terminator: <Op_Semi ";">
                                    )
                                    (C {(timeout)} {(40)} {(DQ (${ VSub_Name DOCKER2ACI_BIN))} 
                                      {(DQ ($ VSub_Number "$1"))}
                                    )
                                  ]
                                )
                              spids: [3044 3067]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aci_success)
                                  op: Equal
                                  rhs: {($ VSub_QMark "$?")}
                                  spids: [3072]
                                )
                              ]
                              spids: [3070]
                            )
                            (C {(timeout)} {(40)} {(DQ (${ VSub_Name RKT_BIN))} {(fetch)} 
                              {(--insecure-options) (Lit_Other "=") (image)} {(DQ (${ VSub_Name aci_tmpdir)) (/) (Lit_Other "*") (.aci)}
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fetch_success)
                                  op: Equal
                                  rhs: {($ VSub_QMark "$?")}
                                  spids: [3104]
                                )
                              ]
                              spids: [3102]
                            )
                            (C {(rm)} {(-f)} {(DQ (${ VSub_Name aci_tmpdir)) (/) (Lit_Other "*") (.aci)})
                            (C {(rmdir)} {(DQ (${ VSub_Name aci_tmpdir))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (LogicalAnd
                                              left: (WordTest w:{(${ VSub_Name fetch_success)})
                                              right: (WordTest w:{(${ VSub_Name aci_success)})
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(DQ ("rkt: Loaded ") (${ VSub_Name img))})
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [-1 3148]
                                )
                              ]
                              spids: [-1 3164]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(DQ (${ VSub_Name attempt))}
                                              right: {(DQ (${ VSub_Name max_attempts))}
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ("rkt: Failed to load image file ") (${ VSub_Name img) 
                                          (" after ") (${ VSub_Name max_attempts) (" retries.")
                                        )
                                      }
                                    )
                                    (C {(exit)} {(1)})
                                  ]
                                  spids: [-1 3188]
                                )
                              ]
                              spids: [-1 3211]
                            )
                            (C {(sleep)} {(5)})
                          ]
                          spids: [3025 3219]
                        )
                      spids: [3011 3023]
                    )
                  ]
                  spids: [-1 3003]
                )
              ]
              else_action: [
                (Until
                  cond: [
                    (Sentence
                      child: (C {(timeout)} {(30)} {(docker)} {(load)} {(-i)} {(DQ (${ VSub_Name img))})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(DQ (${ VSub_Name attempt_num))}
                                          right: {(DQ (${ VSub_Name max_attempts))}
                                        )
                                    )
                                  terminator: <Op_Semi ";">
                                )
                              ]
                              action: [
                                (C {(echo)} 
                                  {
                                    (DQ ("Fail to load docker image file ") (${ VSub_Name img) 
                                      (" after ") (${ VSub_Name max_attempts) (" retries.")
                                    )
                                  }
                                )
                                (C {(exit)} {(1)})
                              ]
                              spids: [-1 3268]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:attempt_num)
                                  op: Equal
                                  rhs: 
                                    {
                                      (ArithSubPart
                                        anode: 
                                          (ArithBinary
                                            op_id: Arith_Plus
                                            left: (ArithVarRef name:attempt_num)
                                            right: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [3295 3300]
                                      )
                                    }
                                  spids: [3294]
                                )
                              ]
                              spids: [3294]
                            )
                            (C {(sleep)} {(5)})
                          ]
                          spids: [3291 3308]
                        )
                      ]
                      spids: [3244 3311]
                    )
                )
              ]
              spids: [3222 3314]
            )
            (C {(set)} {(-e)})
          ]
          spids: [2935]
        )
      spids: [2931 2934]
    )
    (FuncDef
      name: load-docker-images
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start loading kube-system docker images"))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:img_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-docker-files))}
                  spids: [3352]
                )
              ]
              spids: [3348]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBERNETES_MASTER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3366 3369]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(try-load-docker-image)} {(DQ (${ VSub_Name img_dir) (/kube-apiserver.tar))})
                    (C {(try-load-docker-image)} 
                      {(DQ (${ VSub_Name img_dir) (/kube-controller-manager.tar))}
                    )
                    (C {(try-load-docker-image)} {(DQ (${ VSub_Name img_dir) (/kube-scheduler.tar))})
                  ]
                  spids: [-1 3381]
                )
              ]
              else_action: [
                (C {(try-load-docker-image)} {(DQ (${ VSub_Name img_dir) (/kube-proxy.tar))})
              ]
              spids: [3414 3427]
            )
          ]
          spids: [3338]
        )
      spids: [3334 3337]
    )
    (FuncDef
      name: start-kubelet
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start kubelet"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubelet_bin)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/bin/kubelet))}
                  spids: [3454]
                )
              ]
              spids: [3452]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:version)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(DQ (${ VSub_Name kubelet_bin))} 
                                      {(--version) (Lit_Other "=") (true)}
                                    )
                                    (C {(cut)} {(-f2)} {(-d)} {(DQ (" "))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3469 3491]
                        )
                      )
                    }
                  spids: [3467]
                )
              ]
              spids: [3463]
            )
            (C {(echo)} {(DQ ("Using kubelet binary at ") (${ VSub_Name kubelet_bin))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBELET_TEST_LOG_LEVEL>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ("--v=2"))})
                          spids: [3509 3515]
                        ) (" ") 
                        (BracedVarSub
                          token: <VSub_Name KUBELET_TEST_ARGS>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [3517 3520]
                        )
                      )
                    }
                  spids: [3507]
                )
              ]
              spids: [3505]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --allow-privileged=true"))}
                  spids: [3524]
                )
              ]
              spids: [3524]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --cgroup-root=/"))}
                  spids: [3530]
                )
              ]
              spids: [3530]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --cloud-provider=gce"))}
                  spids: [3536]
                )
              ]
              spids: [3536]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --cluster-dns=") (${ VSub_Name DNS_SERVER_IP))}
                  spids: [3542]
                )
              ]
              spids: [3542]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --cluster-domain=") (${ VSub_Name DNS_DOMAIN))}
                  spids: [3551]
                )
              ]
              spids: [3551]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --pod-manifest-path=/etc/kubernetes/manifests"))}
                  spids: [3560]
                )
              ]
              spids: [3560]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:flags)
                  op: PlusEqual
                  rhs: {(DQ (" --experimental-check-node-capabilities-before-mount=true"))}
                  spids: [3566]
                )
              ]
              spids: [3566]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBELET_PORT>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3580 3583]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --port=") (${ VSub_Name KUBELET_PORT))}
                          spids: [3592]
                        )
                      ]
                      spids: [3592]
                    )
                  ]
                  spids: [-1 3589]
                )
              ]
              spids: [-1 3601]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBERNETES_MASTER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3609 3612]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --enable-debugging-handlers=false"))}
                          spids: [3627]
                        )
                      ]
                      spids: [3627]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --hairpin-mode=none"))}
                          spids: [3633]
                        )
                      ]
                      spids: [3633]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name REGISTER_MASTER_KUBELET>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VTest_ColonHyphen
                                                  arg_word: {(false)}
                                                )
                                              spids: [3644 3648]
                                            )
                                          )
                                        }
                                      right: {(DQ (true))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:flags)
                                  op: PlusEqual
                                  rhs: {(DQ (" --kubeconfig=/var/lib/kubelet/kubeconfig"))}
                                  spids: [3663]
                                )
                              ]
                              spids: [3663]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:flags)
                                  op: PlusEqual
                                  rhs: {(DQ (" --register-schedulable=false"))}
                                  spids: [3669]
                                )
                              ]
                              spids: [3669]
                            )
                          ]
                          spids: [-1 3660]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:flags)
                              op: PlusEqual
                              rhs: {(DQ (" --pod-cidr=") (${ VSub_Name MASTER_IP_RANGE))}
                              spids: [3682]
                            )
                          ]
                          spids: [3682]
                        )
                      ]
                      spids: [3675 3691]
                    )
                  ]
                  spids: [-1 3624]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:flags)
                      op: PlusEqual
                      rhs: {(DQ (" --enable-debugging-handlers=true"))}
                      spids: [3700]
                    )
                  ]
                  spids: [3700]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:flags)
                      op: PlusEqual
                      rhs: {(DQ (" --kubeconfig=/var/lib/kubelet/kubeconfig"))}
                      spids: [3706]
                    )
                  ]
                  spids: [3706]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (AndOr
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name HAIRPIN_MODE>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [3717 3720]
                                            )
                                          )
                                        }
                                      right: {(DQ (promiscuous-bridge))}
                                    )
                                )
                                (AndOr
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name HAIRPIN_MODE>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [3738 3741]
                                                )
                                              )
                                            }
                                          right: {(DQ (hairpin-veth))}
                                        )
                                    )
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name HAIRPIN_MODE>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [3759 3762]
                                                )
                                              )
                                            }
                                          right: {(DQ (none))}
                                        )
                                    )
                                  ]
                                  op_id: Op_DPipe
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:flags)
                              op: PlusEqual
                              rhs: {(DQ (" --hairpin-mode=") (${ VSub_Name HAIRPIN_MODE))}
                              spids: [3777]
                            )
                          ]
                          spids: [3777]
                        )
                      ]
                      spids: [-1 3774]
                    )
                  ]
                  spids: [-1 3786]
                )
              ]
              spids: [3694 3789]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NETWORK_PROVIDER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3803 3806]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --cni-bin-dir=/opt/kubernetes/bin"))}
                          spids: [3815]
                        )
                      ]
                      spids: [3815]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --network-plugin=") (${ VSub_Name NETWORK_PROVIDER))}
                          spids: [3821]
                        )
                      ]
                      spids: [3821]
                    )
                  ]
                  spids: [-1 3812]
                )
              ]
              spids: [-1 3830]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NON_MASQUERADE_CIDR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3840 3843]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --non-masquerade-cidr=") (${ VSub_Name NON_MASQUERADE_CIDR))}
                          spids: [3852]
                        )
                      ]
                      spids: [3852]
                    )
                  ]
                  spids: [-1 3849]
                )
              ]
              spids: [-1 3861]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_MANIFEST_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3869 3872]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --manifest-url=") (${ VSub_Name MANIFEST_URL))}
                          spids: [3887]
                        )
                      ]
                      spids: [3887]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --manifest-url-header=") (${ VSub_Name MANIFEST_URL_HEADER))}
                          spids: [3896]
                        )
                      ]
                      spids: [3896]
                    )
                  ]
                  spids: [-1 3884]
                )
              ]
              spids: [-1 3905]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CUSTOM_METRICS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [3915 3918]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: 
                            {(DQ (" --enable-custom-metrics=") (${ VSub_Name ENABLE_CUSTOM_METRICS))}
                          spids: [3927]
                        )
                      ]
                      spids: [3927]
                    )
                  ]
                  spids: [-1 3924]
                )
              ]
              spids: [-1 3936]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:node_labels) op:Equal rhs:{(DQ )} spids:[3941])]
              spids: [3939]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBE_PROXY_DAEMONSET>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [3951 3954]
                                        )
                                      )
                                    }
                                  right: {(DQ (true))}
                                )
                              right: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBERNETES_MASTER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [3966 3969]
                                        )
                                      )
                                    }
                                  right: {(DQ (true))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:node_labels)
                          op: Equal
                          rhs: {(DQ ("beta.kubernetes.io/kube-proxy-ds-ready=true"))}
                          spids: [3992]
                        )
                      ]
                      spids: [3992]
                    )
                  ]
                  spids: [-1 3981]
                )
              ]
              spids: [-1 3998]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NODE_LABELS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4008 4011]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:node_labels)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name node_labels>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_ColonPlus
                                      arg_word: {(${ VSub_Name node_labels) (",")}
                                    )
                                  spids: [4022 4029]
                                ) (${ VSub_Name NODE_LABELS)
                              )
                            }
                          spids: [4020]
                        )
                      ]
                      spids: [4020]
                    )
                  ]
                  spids: [-1 4017]
                )
              ]
              spids: [-1 4036]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name node_labels>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4046 4049]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --node-labels=") (${ VSub_Name node_labels))}
                          spids: [4058]
                        )
                      ]
                      spids: [4058]
                    )
                  ]
                  spids: [-1 4055]
                )
              ]
              spids: [-1 4067]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NODE_TAINTS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4077 4080]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --register-with-taints=") (${ VSub_Name NODE_TAINTS))}
                          spids: [4089]
                        )
                      ]
                      spids: [4089]
                    )
                  ]
                  spids: [-1 4086]
                )
              ]
              spids: [-1 4098]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name EVICTION_HARD>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4108 4111]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --eviction-hard=") (${ VSub_Name EVICTION_HARD))}
                          spids: [4120]
                        )
                      ]
                      spids: [4120]
                    )
                  ]
                  spids: [-1 4117]
                )
              ]
              spids: [-1 4129]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name FEATURE_GATES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4139 4142]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --feature-gates=") (${ VSub_Name FEATURE_GATES))}
                          spids: [4151]
                        )
                      ]
                      spids: [4151]
                    )
                  ]
                  spids: [-1 4148]
                )
              ]
              spids: [-1 4160]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CONTAINER_RUNTIME>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4170 4173]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --container-runtime=") (${ VSub_Name CONTAINER_RUNTIME))}
                          spids: [4182]
                        )
                      ]
                      spids: [4182]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --rkt-path=") (${ VSub_Name KUBE_HOME) (/bin/rkt))}
                          spids: [4191]
                        )
                      ]
                      spids: [4191]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: PlusEqual
                          rhs: {(DQ (" --rkt-stage1-image=") (${ VSub_Name RKT_STAGE1_IMAGE))}
                          spids: [4201]
                        )
                      ]
                      spids: [4201]
                    )
                  ]
                  spids: [-1 4179]
                )
              ]
              spids: [-1 4210]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubelet_env_file)
                  op: Equal
                  rhs: {(DQ (/etc/kubelet-env))}
                  spids: [4218]
                )
              ]
              spids: [4214]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ("KUBELET_OPTS=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                    (${ VSub_Name flags) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ (${ VSub_Name kubelet_env_file))}
                  spids: [4235]
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("[Unit]\n") ("Description=Kubernetes kubelet\n") 
                        ("Requires=network-online.target\n") ("After=network-online.target\n") ("\n") ("[Service]\n") ("Restart=always\n") ("RestartSec=10\n") 
                        ("EnvironmentFile=") (${ VSub_Name kubelet_env_file) ("\n") ("ExecStart=") (${ VSub_Name kubelet_bin) (" ") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("KUBELET_OPTS\n") ("\n") ("[Install]\n") ("WantedBy=multi-user.target\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [4251]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/systemd/system/kubelet.service)}
                  spids: [4254]
                )
              ]
            )
            (AndOr
              children: [(C {(iptables)} {(-t)} {(nat)} {(-F)}) (C {(true)})]
              op_id: Op_DPipe
            )
            (C {(systemctl)} {(start)} {(kubelet.service)})
          ]
          spids: [3442]
        )
      spids: [3438 3441]
    )
    (FuncDef
      name: prepare-log-file
      body: 
        (BraceGroup
          children: [
            (C {(touch)} {($ VSub_Number "$1")})
            (C {(chmod)} {(644)} {($ VSub_Number "$1")})
            (C {(chown)} {(root) (Lit_Other ":") (root)} {($ VSub_Number "$1")})
          ]
          spids: [4322]
        )
      spids: [4318 4321]
    )
    (FuncDef
      name: prepare-kube-proxy-manifest-variables
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:src_file)
                      op: Equal
                      rhs: {($ VSub_Number "$1")}
                      spids: [4365]
                    )
                  ]
                  spids: [4361]
                )
              terminator: <Op_Semi ";">
            )
            (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name src_file))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubeconfig)
                  op: Equal
                  rhs: {(DQ ("--kubeconfig=/var/lib/kube-proxy/kubeconfig"))}
                  spids: [4385]
                )
              ]
              spids: [4381]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_docker_registry)
                  op: Equal
                  rhs: {(DQ (gcr.io/google_containers))}
                  spids: [4393]
                )
              ]
              spids: [4391]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_DOCKER_REGISTRY>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4406 4409]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kube_docker_registry)
                          op: Equal
                          rhs: {(${ VSub_Name KUBE_DOCKER_REGISTRY)}
                          spids: [4418]
                        )
                      ]
                      spids: [4418]
                    )
                  ]
                  spids: [-1 4415]
                )
              ]
              spids: [-1 4424]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_proxy_docker_tag)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(cat)} {(/opt/kubernetes/kube-docker-files/kube-proxy.docker_tag)})
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [4432 4436]
                      )
                    }
                  spids: [4431]
                )
              ]
              spids: [4427]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:api_servers)
                  op: Equal
                  rhs: {(DQ ("--master=https://") (${ VSub_Name KUBERNETES_MASTER_NAME))}
                  spids: [4441]
                )
              ]
              spids: [4439]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBEPROXY_TEST_LOG_LEVEL>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ("--v=2"))})
                          spids: [4454 4460]
                        )
                      )
                    }
                  spids: [4452]
                )
              ]
              spids: [4450]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name FEATURE_GATES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4471 4474]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --feature-gates=") (${ VSub_Name FEATURE_GATES))}
                          spids: [4483]
                        )
                      ]
                      spids: [4483]
                    )
                  ]
                  spids: [-1 4480]
                )
              ]
              spids: [-1 4492]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: 
                    {
                      (DQ 
                        (
" --iptables-sync-period=1m --iptables-min-sync-period=10s --ipvs-sync-period=1m --ipvs-min-sync-period=10s"
                        )
                      )
                    }
                  spids: [4495]
                )
              ]
              spids: [4495]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBEPROXY_TEST_ARGS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4508 4511]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" ") (${ VSub_Name KUBEPROXY_TEST_ARGS))}
                          spids: [4520]
                        )
                      ]
                      spids: [4520]
                    )
                  ]
                  spids: [-1 4517]
                )
              ]
              spids: [-1 4529]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:container_env)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [4534]
                )
              ]
              spids: [4532]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_cache_mutation_detector_env_name)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [4541]
                )
              ]
              spids: [4539]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_cache_mutation_detector_env_value)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [4548]
                )
              ]
              spids: [4546]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CACHE_MUTATION_DETECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4560 4563]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:container_env)
                          op: Equal
                          rhs: {(DQ ("env:"))}
                          spids: [4572]
                        )
                      ]
                      spids: [4572]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kube_cache_mutation_detector_env_name)
                          op: Equal
                          rhs: {(DQ ("- name: KUBE_CACHE_MUTATION_DETECTOR"))}
                          spids: [4578]
                        )
                      ]
                      spids: [4578]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kube_cache_mutation_detector_env_value)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("value: ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                (${ VSub_Name ENABLE_CACHE_MUTATION_DETECTOR) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                              )
                            }
                          spids: [4584]
                        )
                      ]
                      spids: [4584]
                    )
                  ]
                  spids: [-1 4569]
                )
              ]
              spids: [-1 4595]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:pod_priority) op:Equal rhs:{(DQ )} spids:[4600])]
              spids: [4598]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_POD_PRIORITY>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4610 4613]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pod_priority)
                          op: Equal
                          rhs: {(DQ ("priorityClassName: system-node-critical"))}
                          spids: [4628]
                        )
                      ]
                      spids: [4628]
                    )
                  ]
                  spids: [-1 4625]
                )
              ]
              spids: [-1 4634]
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{kubeconfig}}@") (${ VSub_Name kubeconfig) ("@g"))} 
              {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube_docker_registry'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name kube_docker_registry) ("@g")
                )
              } {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube-proxy_docker_tag'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name kube_proxy_docker_tag) ("@g")
                )
              } {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{params}}@") (${ VSub_Name params) ("@g"))} 
              {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{container_env}}@") (${ VSub_Name container_env) ("@g"))} 
              {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{kube_cache_mutation_detector_env_name}}@") 
                  (${ VSub_Name kube_cache_mutation_detector_env_name) ("@g")
                )
              } {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{kube_cache_mutation_detector_env_value}}@") 
                  (${ VSub_Name kube_cache_mutation_detector_env_value) ("@g")
                )
              } {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{pod_priority}}@") (${ VSub_Name pod_priority) ("@g"))} 
              {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ cpurequest }}@100m@g"))} {(${ VSub_Name src_file)})
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{api_servers_with_port}}@") (${ VSub_Name api_servers) ("@g"))} {(${ VSub_Name src_file)}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{kubernetes_service_host_env_value}}@") (${ VSub_Name KUBERNETES_MASTER_NAME) 
                  ("@g")
                )
              } {(${ VSub_Name src_file)}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CLUSTER_IP_RANGE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4857 4860]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{cluster_cidr}}@--cluster-cidr=") (${ VSub_Name CLUSTER_IP_RANGE) 
                          ("@g")
                        )
                      } {(${ VSub_Name src_file)}
                    )
                  ]
                  spids: [-1 4866]
                )
              ]
              spids: [-1 4888]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CONTAINER_RUNTIME>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [4896 4899]
                                    )
                                  )
                                }
                              right: {(DQ (rkt))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:extra_workaround_cmd)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("ln -sf /proc/self/mounts /etc/mtab; ") 
                                ("      mount -o remount,rw /proc; ") ("      mount -o remount,rw /proc/sys; ") ("      mount -o remount,rw /sys; ")
                              )
                            }
                          spids: [4932]
                        )
                      ]
                      spids: [4930]
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@-") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (s) 
                          (EscapedLiteralPart
                            token: <Lit_EscapedChar "\\\\">
                          ) ("+kube-proxy@- ") (${ VSub_Name extra_workaround_cmd) (" kube-proxy@g")
                        )
                      } {(DQ (${ VSub_Name src_file))}
                    )
                  ]
                  spids: [-1 4911]
                )
              ]
              spids: [-1 4969]
            )
          ]
          spids: [4358]
        )
      spids: [4354 4357]
    )
    (FuncDef
      name: start-kube-proxy
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start kube-proxy static pod"))})
            (C {(prepare-log-file)} {(/var/log/kube-proxy.log)})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_file)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/kube-proxy.manifest))}
                  spids: [5000]
                )
              ]
              spids: [4996]
            )
            (C {(prepare-kube-proxy-manifest-variables)} {(DQ ($ VSub_Name "$src_file"))})
            (C {(cp)} {(DQ (${ VSub_Name src_file))} {(/etc/kubernetes/manifests)})
          ]
          spids: [4981]
        )
      spids: [4977 4980]
    )
    (FuncDef
      name: prepare-etcd-manifest
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host_name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(hostname)} {(-s)})])
                        left_token: <Left_CommandSub "$(">
                        spids: [5061 5065]
                      )
                    }
                  spids: [5060]
                )
              ]
              spids: [5058]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:etcd_cluster) op:Equal rhs:{(DQ )} spids:[5070])]
              spids: [5068]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cluster_state)
                  op: Equal
                  rhs: {(DQ (new))}
                  spids: [5077]
                )
              ]
              spids: [5075]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:etcd_protocol)
                  op: Equal
                  rhs: {(DQ (http))}
                  spids: [5085]
                )
              ]
              spids: [5083]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:etcd_creds) op:Equal rhs:{(DQ )} spids:[5093])]
              spids: [5091]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name ETCD_CA_KEY>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [5106 5109]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ETCD_CA_CERT>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [5117 5120]
                                            )
                                          )
                                        }
                                    )
                                  right: 
                                    (LogicalAnd
                                      left: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name ETCD_PEER_KEY>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [5128 5131]
                                                )
                                              )
                                            }
                                        )
                                      right: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name ETCD_PEER_CERT>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [5139 5142]
                                                )
                                              )
                                            }
                                        )
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:etcd_creds)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (
" --peer-trusted-ca-file /etc/srv/kubernetes/etcd-ca.crt --peer-cert-file /etc/srv/kubernetes/etcd-peer.crt --peer-key-file /etc/srv/kubernetes/etcd-peer.key -peer-client-cert-auth "
                                )
                              )
                            }
                          spids: [5151]
                        )
                      ]
                      spids: [5151]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:etcd_protocol)
                          op: Equal
                          rhs: {(DQ (https))}
                          spids: [5157]
                        )
                      ]
                      spids: [5157]
                    )
                  ]
                  spids: [-1 5148]
                )
              ]
              spids: [-1 5163]
            )
            (ForEach
              iter_name: host
              iter_words: [
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(echo)} 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name INITIAL_ETCD_CLUSTER>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(${ VSub_Name host_name)}
                                        )
                                      spids: [5177 5183]
                                    )
                                  )
                                }
                              )
                              (C {(tr)} {(DQ (","))} 
                                {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}
                              )
                            ]
                            negated: False
                          )
                        ]
                      )
                    left_token: <Left_CommandSub "$(">
                    spids: [5173 5197]
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:etcd_host)
                          op: Equal
                          rhs: 
                            {
                              (DQ (etcd-) (${ VSub_Name host) ("=") (${ VSub_Name etcd_protocol) ("://") 
                                (${ VSub_Name host) (":") ($ VSub_Number "$3")
                              )
                            }
                          spids: [5203]
                        )
                      ]
                      spids: [5203]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(DQ (${ VSub_Name etcd_cluster))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:etcd_cluster)
                                  op: PlusEqual
                                  rhs: {(DQ (","))}
                                  spids: [5240]
                                )
                              ]
                              spids: [5240]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cluster_state)
                                  op: Equal
                                  rhs: {(DQ (existing))}
                                  spids: [5246]
                                )
                              ]
                              spids: [5246]
                            )
                          ]
                          spids: [-1 5237]
                        )
                      ]
                      spids: [-1 5252]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:etcd_cluster)
                          op: PlusEqual
                          rhs: {(DQ (${ VSub_Name etcd_host))}
                          spids: [5255]
                        )
                      ]
                      spids: [5255]
                    )
                  ]
                  spids: [5200 5263]
                )
              spids: [5172 5198]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:temp_file)
                  op: Equal
                  rhs: {(DQ (/tmp/) ($ VSub_Number "$5"))}
                  spids: [5271]
                )
              ]
              spids: [5267]
            )
            (C {(cp)} 
              {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/gci-trusty/etcd.manifest))} {(DQ (${ VSub_Name temp_file))}
            )
            (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name temp_file))})
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *suffix *}}@") ($ VSub_Number "$1") ("@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *port *}}@") ($ VSub_Number "$2") ("@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *server_port *}}@") ($ VSub_Number "$3") ("@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{ *cpulimit *}}@") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                  ($ VSub_Number "$4") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("@g")
                )
              } {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *hostname *}}@") ($ VSub_Name "$host_name") ("@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *srv_kube_path *}}@/etc/srv/kubernetes@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{ *etcd_cluster *}}@") ($ VSub_Name "$etcd_cluster") ("@g"))} {(DQ (${ VSub_Name temp_file))}
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:default_storage_backend)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(cat)} {(DQ (${ VSub_Name temp_file))})
                                  (C {(grep)} {(-o)} 
                                    {
                                      (DQ ("{{ *pillar") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\.">
                                        ) ("get('storage_backend', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\)">
                                        ) ("') *}}")
                                      )
                                    }
                                  )
                                  (C {(sed)} {(-e)} 
                                    {
                                      (DQ ("s@{{ *pillar") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\.">
                                        ) ("get('storage_backend', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\)">
                                        ) ("') *}}@") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("@g")
                                      )
                                    }
                                  )
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [5445 5491]
                      )
                    }
                  spids: [5444]
                )
              ]
              spids: [5440]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name STORAGE_BACKEND>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [5501 5504]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                          ("get('storage_backend', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                          (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (${ VSub_Name STORAGE_BACKEND) ("@g")
                        )
                      } {(DQ (${ VSub_Name temp_file))}
                    )
                  ]
                  spids: [-1 5510]
                )
              ]
              else_action: [
                (C {(sed)} {(-i)} {(-e)} 
                  {
                    (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                      ("get('storage_backend', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("@g")
                    )
                  } {(DQ (${ VSub_Name temp_file))}
                )
              ]
              spids: [5540 5568]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name STORAGE_BACKEND>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(${ VSub_Name default_storage_backend)}
                                        )
                                      spids: [5576 5582]
                                    )
                                  )
                                }
                              right: {(DQ (etcd3))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {(DQ ("s@{{ *quota_bytes *}}@--quota-backend-bytes=4294967296@g"))} {(DQ (${ VSub_Name temp_file))}
                    )
                  ]
                  spids: [-1 5594]
                )
              ]
              else_action: [
                (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *quota_bytes *}}@@g"))} 
                  {(DQ (${ VSub_Name temp_file))}
                )
              ]
              spids: [5614 5634]
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{ *cluster_state *}}@") ($ VSub_Name "$cluster_state") ("@g"))} {(DQ (${ VSub_Name temp_file))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ETCD_IMAGE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [5663 5666]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                          ("get('etcd_docker_tag', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                          (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (${ VSub_Name ETCD_IMAGE) ("@g")
                        )
                      } {(DQ (${ VSub_Name temp_file))}
                    )
                  ]
                  spids: [-1 5672]
                )
              ]
              else_action: [
                (C {(sed)} {(-i)} {(-e)} 
                  {
                    (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                      ("get('etcd_docker_tag', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("@g")
                    )
                  } {(DQ (${ VSub_Name temp_file))}
                )
              ]
              spids: [5702 5730]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ETCD_DOCKER_REPOSITORY>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [5740 5743]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                          ("get('etcd_docker_repository', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                          (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (${ VSub_Name ETCD_DOCKER_REPOSITORY) ("@g")
                        )
                      } {(DQ (${ VSub_Name temp_file))}
                    )
                  ]
                  spids: [-1 5749]
                )
              ]
              else_action: [
                (C {(sed)} {(-i)} {(-e)} 
                  {
                    (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                      ("get('etcd_docker_repository', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("@g")
                    )
                  } {(DQ (${ VSub_Name temp_file))}
                )
              ]
              spids: [5779 5807]
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{ *etcd_protocol *}}@") ($ VSub_Name "$etcd_protocol") ("@g"))} {(DQ (${ VSub_Name temp_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{ *etcd_creds *}}@") ($ VSub_Name "$etcd_creds") ("@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ETCD_VERSION>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [5856 5859]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                          ("get('etcd_version', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                          (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (${ VSub_Name ETCD_VERSION) ("@g")
                        )
                      } {(DQ (${ VSub_Name temp_file))}
                    )
                  ]
                  spids: [-1 5865]
                )
              ]
              else_action: [
                (C {(sed)} {(-i)} {(-e)} 
                  {
                    (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) 
                      ("get('etcd_version', '") (EscapedLiteralPart token:<Lit_EscapedChar "\\(">) (".*") 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\)">) ("') *}}@") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) ("@g")
                    )
                  } {(DQ (${ VSub_Name temp_file))}
                )
              ]
              spids: [5895 5923]
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@/mnt/master-pd/var/etcd@/mnt/disks/master-pd/var/etcd@g"))} 
              {(DQ (${ VSub_Name temp_file))}
            )
            (C {(mv)} {(DQ (${ VSub_Name temp_file))} {(/etc/kubernetes/manifests)})
          ]
          spids: [5055]
        )
      spids: [5051 5054]
    )
    (FuncDef
      name: start-etcd-empty-dir-cleanup-pod
      body: 
        (BraceGroup
          children: [
            (C {(cp)} 
              {
                (DQ (${ VSub_Name KUBE_HOME) 
                  (
/kube-manifests/kubernetes/gci-trusty/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml
                  )
                )
              } {(DQ (/etc/kubernetes/manifests))}
            )
          ]
          spids: [5964]
        )
      spids: [5960 5963]
    )
    (FuncDef
      name: start-etcd-servers
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start etcd pods"))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_d child:{(/etc/etcd)}))
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(rm)} {(-rf)} {(/etc/etcd)})]
                  spids: [-1 6017]
                )
              ]
              spids: [-1 6027]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_e child:{(/etc/default/etcd)}))
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(/etc/default/etcd)})]
                  spids: [-1 6041]
                )
              ]
              spids: [-1 6051]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_e
                              child: {(/etc/systemd/system/etcd.service)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(/etc/systemd/system/etcd.service)})]
                  spids: [-1 6065]
                )
              ]
              spids: [-1 6075]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_e child:{(/etc/init.d/etcd)}))
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(/etc/init.d/etcd)})]
                  spids: [-1 6089]
                )
              ]
              spids: [-1 6099]
            )
            (C {(prepare-log-file)} {(/var/log/etcd.log)})
            (C {(prepare-etcd-manifest)} {(DQ )} {(DQ (2379))} {(DQ (2380))} {(DQ (200m))} 
              {(DQ (etcd.manifest))}
            )
            (C {(prepare-log-file)} {(/var/log/etcd-events.log)})
            (C {(prepare-etcd-manifest)} {(DQ (-events))} {(DQ (4002))} {(DQ (2381))} {(DQ (100m))} 
              {(DQ (etcd-events.manifest))}
            )
          ]
          spids: [5996]
        )
      spids: [5992 5995]
    )
    (FuncDef
      name: compute-master-manifest-variables
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CLOUD_CONFIG_OPT)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6185]
                )
              ]
              spids: [6185]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CLOUD_CONFIG_VOLUME)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6190]
                )
              ]
              spids: [6190]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CLOUD_CONFIG_MOUNT)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6195]
                )
              ]
              spids: [6195]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_f child:{(/etc/gce.conf)}))
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CLOUD_CONFIG_OPT)
                          op: Equal
                          rhs: {(DQ ("--cloud-config=/etc/gce.conf"))}
                          spids: [6214]
                        )
                      ]
                      spids: [6214]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CLOUD_CONFIG_VOLUME)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (cloudconfigmount) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (hostPath) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": {") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (path) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/etc/gce.conf) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (type) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (FileOrCreate) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) ("}},")
                              )
                            }
                          spids: [6220]
                        )
                      ]
                      spids: [6220]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CLOUD_CONFIG_MOUNT)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (cloudconfigmount) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (mountPath) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/etc/gce.conf) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (readOnly) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": true},")
                              )
                            }
                          spids: [6254]
                        )
                      ]
                      spids: [6254]
                    )
                  ]
                  spids: [-1 6211]
                )
              ]
              spids: [-1 6280]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOCKER_REGISTRY)
                  op: Equal
                  rhs: {(DQ (gcr.io/google_containers))}
                  spids: [6283]
                )
              ]
              spids: [6283]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_DOCKER_REGISTRY>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6296 6299]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOCKER_REGISTRY)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name KUBE_DOCKER_REGISTRY))}
                          spids: [6308]
                        )
                      ]
                      spids: [6308]
                    )
                  ]
                  spids: [-1 6305]
                )
              ]
              spids: [-1 6316]
            )
          ]
          spids: [6182]
        )
      spids: [6178 6181]
    )
    (FuncDef
      name: remove-salt-config-comments
      body: 
        (BraceGroup
          children: [
            (C {(sed)} {(-i)} 
              {(DQ ("/^[ |") (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("]*{[#|%]/d"))} {($ VSub_Number "$1")}
            )
            (C {(sed)} {(-i)} 
              {(DQ ("/^[ |") (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) ("]*#/d"))} {($ VSub_Number "$1")}
            )
          ]
          spids: [6337]
        )
      spids: [6333 6336]
    )
    (FuncDef
      name: start-kube-apiserver
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start kubernetes api-server"))})
            (C {(prepare-log-file)} {(/var/log/kube-apiserver.log)})
            (C {(prepare-log-file)} {(/var/log/kube-apiserver-audit.log)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name API_SERVER_TEST_LOG_LEVEL>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ("--v=2"))})
                          spids: [6436 6442]
                        ) (" ") 
                        (BracedVarSub
                          token: <VSub_Name APISERVER_TEST_ARGS>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [6444 6447]
                        ) (" ") (${ VSub_Name CLOUD_CONFIG_OPT)
                      )
                    }
                  spids: [6434]
                )
              ]
              spids: [6432]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --address=127.0.0.1"))}
                  spids: [6455]
                )
              ]
              spids: [6455]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --allow-privileged=true"))}
                  spids: [6461]
                )
              ]
              spids: [6461]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --cloud-provider=gce"))}
                  spids: [6467]
                )
              ]
              spids: [6467]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --client-ca-file=/etc/srv/kubernetes/ca.crt"))}
                  spids: [6473]
                )
              ]
              spids: [6473]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --etcd-servers=http://127.0.0.1:2379"))}
                  spids: [6479]
                )
              ]
              spids: [6479]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --etcd-servers-overrides=/events#http://127.0.0.1:4002"))}
                  spids: [6485]
                )
              ]
              spids: [6485]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --secure-port=443"))}
                  spids: [6491]
                )
              ]
              spids: [6491]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --tls-cert-file=/etc/srv/kubernetes/server.cert"))}
                  spids: [6497]
                )
              ]
              spids: [6497]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --tls-private-key-file=/etc/srv/kubernetes/server.key"))}
                  spids: [6503]
                )
              ]
              spids: [6503]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --token-auth-file=/etc/srv/kubernetes/known_tokens.csv"))}
                  spids: [6509]
                )
              ]
              spids: [6509]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --enable-aggregator-routing=true"))}
                  spids: [6515]
                )
              ]
              spids: [6515]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBE_PASSWORD>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [6528 6531]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name KUBE_USER>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [6539 6542]
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --basic-auth-file=/etc/srv/kubernetes/basic_auth.csv"))}
                          spids: [6551]
                        )
                      ]
                      spids: [6551]
                    )
                  ]
                  spids: [-1 6548]
                )
              ]
              spids: [-1 6557]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name STORAGE_BACKEND>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6567 6570]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --storage-backend=") (${ VSub_Name STORAGE_BACKEND))}
                          spids: [6579]
                        )
                      ]
                      spids: [6579]
                    )
                  ]
                  spids: [-1 6576]
                )
              ]
              spids: [-1 6588]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name STORAGE_MEDIA_TYPE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6598 6601]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --storage-media-type=") (${ VSub_Name STORAGE_MEDIA_TYPE))}
                          spids: [6610]
                        )
                      ]
                      spids: [6610]
                    )
                  ]
                  spids: [-1 6607]
                )
              ]
              spids: [-1 6619]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6629 6632]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --request-timeout=") 
                                (${ VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC) (s)
                              )
                            }
                          spids: [6641]
                        )
                      ]
                      spids: [6641]
                    )
                  ]
                  spids: [-1 6638]
                )
              ]
              spids: [-1 6651]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_GARBAGE_COLLECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6661 6664]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --enable-garbage-collector=") 
                                (${ VSub_Name ENABLE_GARBAGE_COLLECTOR)
                              )
                            }
                          spids: [6673]
                        )
                      ]
                      spids: [6673]
                    )
                  ]
                  spids: [-1 6670]
                )
              ]
              spids: [-1 6682]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NUM_NODES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6692 6695]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_ge
                                      left: {(DQ (${ VSub_Name NUM_NODES))}
                                      right: {(1000)}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:params)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (DQ 
                                        (
" --max-requests-inflight=1500 --max-mutating-requests-inflight=500"
                                        )
                                      )
                                    }
                                  spids: [6728]
                                )
                              ]
                              spids: [6728]
                            )
                          ]
                          spids: [-1 6725]
                        )
                      ]
                      spids: [-1 6734]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --target-ram-mb=") 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Star
                                      left: (ArithWord w:{(${ VSub_Name NUM_NODES)})
                                      right: (ArithWord w:{(Lit_Digits 60)})
                                    )
                                  spids: [6752 6761]
                                )
                              )
                            }
                          spids: [6749]
                        )
                      ]
                      spids: [6749]
                    )
                  ]
                  spids: [-1 6701]
                )
              ]
              spids: [-1 6765]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SERVICE_CLUSTER_IP_RANGE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6775 6778]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --service-cluster-ip-range=") 
                                (${ VSub_Name SERVICE_CLUSTER_IP_RANGE)
                              )
                            }
                          spids: [6787]
                        )
                      ]
                      spids: [6787]
                    )
                  ]
                  spids: [-1 6784]
                )
              ]
              spids: [-1 6796]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ETCD_QUORUM_READ>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6806 6809]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --etcd-quorum-read=") (${ VSub_Name ETCD_QUORUM_READ))}
                          spids: [6818]
                        )
                      ]
                      spids: [6818]
                    )
                  ]
                  spids: [-1 6815]
                )
              ]
              spids: [-1 6827]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_APISERVER_BASIC_AUDIT>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6836 6839]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --audit-log-path=/var/log/kube-apiserver-audit.log"))}
                          spids: [6866]
                        )
                      ]
                      spids: [6866]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --audit-log-maxage=0"))}
                          spids: [6872]
                        )
                      ]
                      spids: [6872]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --audit-log-maxbackup=0"))}
                          spids: [6878]
                        )
                      ]
                      spids: [6878]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --audit-log-maxsize=2000000000"))}
                          spids: [6904]
                        )
                      ]
                      spids: [6904]
                    )
                  ]
                  spids: [-1 6851]
                )
              ]
              spids: [-1 6910]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_APISERVER_LOGS_HANDLER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6919 6922]
                                    )
                                  )
                                }
                              right: {(DQ (false))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --enable-logs-handler=false"))}
                          spids: [6937]
                        )
                      ]
                      spids: [6937]
                    )
                  ]
                  spids: [-1 6934]
                )
              ]
              spids: [-1 6943]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:admission_controller_config_mount)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6949]
                )
              ]
              spids: [6947]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:admission_controller_config_volume)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6956]
                )
              ]
              spids: [6954]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:image_policy_webhook_config_mount)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6963]
                )
              ]
              spids: [6961]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:image_policy_webhook_config_volume)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [6970]
                )
              ]
              spids: [6968]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ADMISSION_CONTROL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [6982 6985]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --admission-control=") (${ VSub_Name ADMISSION_CONTROL))}
                          spids: [6994]
                        )
                      ]
                      spids: [6994]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(${ VSub_Name ADMISSION_CONTROL)}
                                      right: 
                                        {(Lit_Other "*") (DQ (ImagePolicyWebhook)) (Lit_Other "*")}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:params)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (DQ 
                                        (
" --admission-control-config-file=/etc/admission_controller.config"
                                        )
                                      )
                                    }
                                  spids: [7025]
                                )
                              ]
                              spids: [7025]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:admission_controller_config_mount)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                        (name) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (admissioncontrollerconfigmount) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (mountPath) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (/etc/admission_controller.config) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (", ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (readOnly) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": false},")
                                      )
                                    }
                                  spids: [7035]
                                )
                              ]
                              spids: [7035]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:admission_controller_config_volume)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                        (name) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (admissioncontrollerconfigmount) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (hostPath) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": {") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (path) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (/etc/admission_controller.config) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (", ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (type) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (FileOrCreate) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("}},")
                                      )
                                    }
                                  spids: [7061]
                                )
                              ]
                              spids: [7061]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:image_policy_webhook_config_mount)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                        (name) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (imagepolicywebhookconfigmount) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (mountPath) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (/etc/gcp_image_review.config) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (", ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (readOnly) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": false},")
                                      )
                                    }
                                  spids: [7099]
                                )
                              ]
                              spids: [7099]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:image_policy_webhook_config_volume)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                        (name) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (imagepolicywebhookconfigmount) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (",") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (hostPath) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": {") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (path) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (/etc/gcp_image_review.config) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (", ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (type) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (": ") 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar "\\\"">
                                        ) (FileOrCreate) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("}},")
                                      )
                                    }
                                  spids: [7125]
                                )
                              ]
                              spids: [7125]
                            )
                          ]
                          spids: [-1 7022]
                        )
                      ]
                      spids: [-1 7159]
                    )
                  ]
                  spids: [-1 6991]
                )
              ]
              spids: [-1 7162]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7173 7176]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --min-request-timeout=") 
                                (${ VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT)
                              )
                            }
                          spids: [7185]
                        )
                      ]
                      spids: [7185]
                    )
                  ]
                  spids: [-1 7182]
                )
              ]
              spids: [-1 7194]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name RUNTIME_CONFIG>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7204 7207]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --runtime-config=") (${ VSub_Name RUNTIME_CONFIG))}
                          spids: [7216]
                        )
                      ]
                      spids: [7216]
                    )
                  ]
                  spids: [-1 7213]
                )
              ]
              spids: [-1 7225]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name FEATURE_GATES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7235 7238]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --feature-gates=") (${ VSub_Name FEATURE_GATES))}
                          spids: [7247]
                        )
                      ]
                      spids: [7247]
                    )
                  ]
                  spids: [-1 7244]
                )
              ]
              spids: [-1 7256]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name PROJECT_ID>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [7266 7269]
                                        )
                                      )
                                    }
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name TOKEN_URL>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [7277 7280]
                                            )
                                          )
                                        }
                                    )
                                  right: 
                                    (LogicalAnd
                                      left: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name TOKEN_BODY>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [7288 7291]
                                                )
                                              )
                                            }
                                        )
                                      right: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name NODE_NETWORK>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [7299 7302]
                                                )
                                              )
                                            }
                                        )
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:vm_external_ip)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(curl)} {(--retry)} {(5)} {(--retry-delay)} {(3)} {(--fail)} 
                                        {(--silent)} {(-H)} {(SQ <"Metadata-Flavor: Google">)} 
                                        {
                                          (DQ 
                                            (
"http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip"
                                            )
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [7316 7340]
                              )
                            }
                          spids: [7315]
                        )
                      ]
                      spids: [7311]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --advertise-address=") (${ VSub_Name vm_external_ip))}
                          spids: [7343]
                        )
                      ]
                      spids: [7343]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --ssh-user=") (${ VSub_Name PROXY_SSH_USER))}
                          spids: [7352]
                        )
                      ]
                      spids: [7352]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile"))}
                          spids: [7361]
                        )
                      ]
                      spids: [7361]
                    )
                  ]
                  spids: [-1 7308]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name MASTER_ADVERTISE_ADDRESS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [7374 7377]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name params) (" --advertise-address=") 
                                (${ VSub_Name MASTER_ADVERTISE_ADDRESS)
                              )
                            }
                          spids: [7386]
                        )
                      ]
                      spids: [7386]
                    )
                  ]
                  spids: [7367 7383]
                )
              ]
              spids: [-1 7398]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:webhook_authn_config_mount)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [7404]
                )
              ]
              spids: [7402]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:webhook_authn_config_volume)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [7411]
                )
              ]
              spids: [7409]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCP_AUTHN_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7423 7426]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ 
                                (
" --authentication-token-webhook-config-file=/etc/gcp_authn.config"
                                )
                              )
                            }
                          spids: [7435]
                        )
                      ]
                      spids: [7435]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:webhook_authn_config_mount)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (webhookauthnconfigmount) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (mountPath) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/etc/gcp_authn.config) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (readOnly) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": false},")
                              )
                            }
                          spids: [7441]
                        )
                      ]
                      spids: [7441]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:webhook_authn_config_volume)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (webhookauthnconfigmount) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (hostPath) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": {") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (path) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/etc/gcp_authn.config) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (type) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (FileOrCreate) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) ("}},")
                              )
                            }
                          spids: [7467]
                        )
                      ]
                      spids: [7467]
                    )
                  ]
                  spids: [-1 7432]
                )
              ]
              spids: [-1 7501]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:authorization_mode)
                  op: Equal
                  rhs: {(DQ (RBAC))}
                  spids: [7507]
                )
              ]
              spids: [7505]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/gci-trusty))}
                  spids: [7517]
                )
              ]
              spids: [7513]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_LEGACY_ABAC>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7536 7539]
                                    )
                                  )
                                }
                              right: {(DQ (false))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ 
                          (
"Warning: Enabling legacy ABAC policy. All service accounts will have superuser API access. Set ENABLE_LEGACY_ABAC=false to disable this."
                          )
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalOr
                                      left: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name KUBE_USER>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [7572 7575]
                                                )
                                              )
                                            }
                                        )
                                      right: 
                                        (LogicalNot
                                          child: 
                                            (BoolUnary
                                              op_id: BoolUnary_e
                                              child: {(/etc/srv/kubernetes/abac-authz-policy.jsonl)}
                                            )
                                        )
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              flags: ["'-r'"]
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:abac_policy_json)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name src_dir) (/abac-authz-policy.jsonl))}
                                  spids: [7596]
                                )
                              ]
                              spids: [7592]
                            )
                            (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name abac_policy_json))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name KUBE_USER>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VTest_ColonHyphen
                                                          arg_word: {(SQ )}
                                                        )
                                                      spids: [7621 7624]
                                                    )
                                                  )
                                                }
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(sed)} {(-i)} {(-e)} 
                                      {(DQ ("s/{{kube_user}}/") (${ VSub_Name KUBE_USER) (/g))} {(DQ (${ VSub_Name abac_policy_json))}
                                    )
                                  ]
                                  spids: [-1 7630]
                                )
                              ]
                              else_action: [
                                (C {(sed)} {(-i)} {(-e)} {(DQ ("/{{kube_user}}/d"))} 
                                  {(DQ (${ VSub_Name abac_policy_json))}
                                )
                              ]
                              spids: [7654 7674]
                            )
                            (C {(cp)} {(DQ (${ VSub_Name abac_policy_json))} {(/etc/srv/kubernetes/)})
                          ]
                          spids: [-1 7589]
                        )
                      ]
                      spids: [-1 7688]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ 
                                (
" --authorization-policy-file=/etc/srv/kubernetes/abac-authz-policy.jsonl"
                                )
                              )
                            }
                          spids: [7692]
                        )
                      ]
                      spids: [7692]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:authorization_mode)
                          op: PlusEqual
                          rhs: {(DQ (",ABAC"))}
                          spids: [7698]
                        )
                      ]
                      spids: [7698]
                    )
                  ]
                  spids: [-1 7551]
                )
              ]
              spids: [-1 7704]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:webhook_config_mount)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [7710]
                )
              ]
              spids: [7708]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:webhook_config_volume)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [7717]
                )
              ]
              spids: [7715]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name GCP_AUTHZ_URL>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7729 7732]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:authorization_mode)
                          op: PlusEqual
                          rhs: {(DQ (",Webhook"))}
                          spids: [7741]
                        )
                      ]
                      spids: [7741]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --authorization-webhook-config-file=/etc/gcp_authz.config"))}
                          spids: [7747]
                        )
                      ]
                      spids: [7747]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:webhook_config_mount)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (webhookconfigmount) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (mountPath) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/etc/gcp_authz.config) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (readOnly) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": false},")
                              )
                            }
                          spids: [7753]
                        )
                      ]
                      spids: [7753]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:webhook_config_volume)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (webhookconfigmount) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (",") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (hostPath) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": {") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (path) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/etc/gcp_authz.config) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (type) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (FileOrCreate) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) ("}},")
                              )
                            }
                          spids: [7779]
                        )
                      ]
                      spids: [7779]
                    )
                  ]
                  spids: [-1 7738]
                )
              ]
              spids: [-1 7813]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --authorization-mode=") (${ VSub_Name authorization_mode))}
                  spids: [7816]
                )
              ]
              spids: [7816]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:container_env)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [7828]
                )
              ]
              spids: [7826]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CACHE_MUTATION_DETECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7840 7843]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:container_env)
                          op: Equal
                          rhs: 
                            {
                              (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (KUBE_CACHE_MUTATION_DETECTOR) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (value) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                (${ VSub_Name ENABLE_CACHE_MUTATION_DETECTOR) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                              )
                            }
                          spids: [7852]
                        )
                      ]
                      spids: [7852]
                    )
                  ]
                  spids: [-1 7849]
                )
              ]
              spids: [-1 7874]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_PATCH_CONVERSION_DETECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [7884 7887]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(DQ (${ VSub_Name container_env))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:container_env)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name container_env) (", "))}
                                  spids: [7914]
                                )
                              ]
                              spids: [7914]
                            )
                          ]
                          spids: [-1 7911]
                        )
                      ]
                      spids: [-1 7923]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:container_env)
                          op: Equal
                          rhs: 
                            {
                              (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (KUBE_PATCH_CONVERSION_DETECTOR) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (value) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                (${ VSub_Name ENABLE_PATCH_CONVERSION_DETECTOR) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                              )
                            }
                          spids: [7926]
                        )
                      ]
                      spids: [7926]
                    )
                  ]
                  spids: [-1 7893]
                )
              ]
              spids: [-1 7948]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name container_env))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:container_env)
                          op: Equal
                          rhs: 
                            {
                              (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (env) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (":[{") (${ VSub_Name container_env) ("}],")
                              )
                            }
                          spids: [7969]
                        )
                      ]
                      spids: [7969]
                    )
                  ]
                  spids: [-1 7966]
                )
              ]
              spids: [-1 7982]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_file)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name src_dir) (/kube-apiserver.manifest))}
                  spids: [7986]
                )
              ]
              spids: [7986]
            )
            (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name src_file))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_apiserver_docker_tag)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(cat)} 
                                {(/opt/kubernetes/kube-docker-files/kube-apiserver.docker_tag)}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [8013 8017]
                      )
                    }
                  spids: [8012]
                )
              ]
              spids: [8008]
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{params}}@") (${ VSub_Name params) ("@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{container_env}}@") (${ VSub_Name container_env) ("@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{srv_kube_path}}@/etc/srv/kubernetes@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{srv_sshproxy_path}}@/etc/srv/sshproxy@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{cloud_config_mount}}@") (${ VSub_Name CLOUD_CONFIG_MOUNT) ("@g"))} {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{cloud_config_volume}}@") (${ VSub_Name CLOUD_CONFIG_VOLUME) ("@g"))} {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube_docker_registry'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name DOCKER_REGISTRY) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube-apiserver_docker_tag'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name kube_apiserver_docker_tag) 
                  ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'allow_privileged'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@true@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{secure_port}}@443@g"))} {(DQ (${ VSub_Name src_file))})
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{secure_port}}@8080@g"))} {(DQ (${ VSub_Name src_file))})
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{additional_cloud_config_mount}}@@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{additional_cloud_config_volume}}@@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{webhook_authn_config_mount}}@") (${ VSub_Name webhook_authn_config_mount) 
                  ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{webhook_authn_config_volume}}@") (${ VSub_Name webhook_authn_config_volume) 
                  ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{webhook_config_mount}}@") (${ VSub_Name webhook_config_mount) ("@g"))} {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{webhook_config_volume}}@") (${ VSub_Name webhook_config_volume) ("@g"))} {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{admission_controller_config_mount}}@") 
                  (${ VSub_Name admission_controller_config_mount) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{admission_controller_config_volume}}@") 
                  (${ VSub_Name admission_controller_config_volume) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{image_policy_webhook_config_mount}}@") 
                  (${ VSub_Name image_policy_webhook_config_mount) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{image_policy_webhook_config_volume}}@") 
                  (${ VSub_Name image_policy_webhook_config_volume) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(cp)} {(DQ (${ VSub_Name src_file))} {(/etc/kubernetes/manifests)})
          ]
          spids: [6407]
        )
      spids: [6403 6406]
    )
    (FuncDef
      name: start-kube-controller-manager
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start kubernetes controller-manager"))})
            (C {(create-kubecontrollermanager-kubeconfig)})
            (C {(prepare-log-file)} {(/var/log/kube-controller-manager.log)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name CONTROLLER_MANAGER_TEST_LOG_LEVEL>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ("--v=2"))})
                          spids: [8515 8521]
                        ) (" ") 
                        (BracedVarSub
                          token: <VSub_Name CONTROLLER_MANAGER_TEST_ARGS>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [8523 8526]
                        ) (" ") (${ VSub_Name CLOUD_CONFIG_OPT)
                      )
                    }
                  spids: [8513]
                )
              ]
              spids: [8511]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --use-service-account-credentials"))}
                  spids: [8534]
                )
              ]
              spids: [8534]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --cloud-provider=gce"))}
                  spids: [8540]
                )
              ]
              spids: [8540]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --kubeconfig=/etc/srv/kubernetes/kube-controller-manager/kubeconfig"))}
                  spids: [8546]
                )
              ]
              spids: [8546]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --root-ca-file=/etc/srv/kubernetes/ca.crt"))}
                  spids: [8552]
                )
              ]
              spids: [8552]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --service-account-private-key-file=/etc/srv/kubernetes/server.key"))}
                  spids: [8558]
                )
              ]
              spids: [8558]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_GARBAGE_COLLECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8571 8574]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --enable-garbage-collector=") 
                                (${ VSub_Name ENABLE_GARBAGE_COLLECTOR)
                              )
                            }
                          spids: [8583]
                        )
                      ]
                      spids: [8583]
                    )
                  ]
                  spids: [-1 8580]
                )
              ]
              spids: [-1 8592]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name INSTANCE_PREFIX>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8602 8605]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --cluster-name=") (${ VSub_Name INSTANCE_PREFIX))}
                          spids: [8614]
                        )
                      ]
                      spids: [8614]
                    )
                  ]
                  spids: [-1 8611]
                )
              ]
              spids: [-1 8623]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CLUSTER_IP_RANGE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8633 8636]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --cluster-cidr=") (${ VSub_Name CLUSTER_IP_RANGE))}
                          spids: [8645]
                        )
                      ]
                      spids: [8645]
                    )
                  ]
                  spids: [-1 8642]
                )
              ]
              spids: [-1 8654]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SERVICE_CLUSTER_IP_RANGE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8664 8667]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --service-cluster-ip-range=") 
                                (${ VSub_Name SERVICE_CLUSTER_IP_RANGE)
                              )
                            }
                          spids: [8676]
                        )
                      ]
                      spids: [8676]
                    )
                  ]
                  spids: [-1 8673]
                )
              ]
              spids: [-1 8685]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CONCURRENT_SERVICE_SYNCS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8695 8698]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --concurrent-service-syncs=") 
                                (${ VSub_Name CONCURRENT_SERVICE_SYNCS)
                              )
                            }
                          spids: [8707]
                        )
                      ]
                      spids: [8707]
                    )
                  ]
                  spids: [-1 8704]
                )
              ]
              spids: [-1 8716]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NETWORK_PROVIDER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8724 8727]
                                    )
                                  )
                                }
                              right: {(DQ (kubenet))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --allocate-node-cidrs=true"))}
                          spids: [8742]
                        )
                      ]
                      spids: [8742]
                    )
                  ]
                  spids: [-1 8739]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ALLOCATE_NODE_CIDRS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8755 8758]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --allocate-node-cidrs=") (${ VSub_Name ALLOCATE_NODE_CIDRS))}
                          spids: [8767]
                        )
                      ]
                      spids: [8767]
                    )
                  ]
                  spids: [8748 8764]
                )
              ]
              spids: [-1 8776]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name TERMINATED_POD_GC_THRESHOLD>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8786 8789]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --terminated-pod-gc-threshold=") 
                                (${ VSub_Name TERMINATED_POD_GC_THRESHOLD)
                              )
                            }
                          spids: [8798]
                        )
                      ]
                      spids: [8798]
                    )
                  ]
                  spids: [-1 8795]
                )
              ]
              spids: [-1 8807]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_IP_ALIASES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8815 8818]
                                    )
                                  )
                                }
                              right: {(SQ <true>)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --cidr-allocator-type=CloudAllocator"))}
                          spids: [8833]
                        )
                      ]
                      spids: [8833]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --configure-cloud-routes=false"))}
                          spids: [8839]
                        )
                      ]
                      spids: [8839]
                    )
                  ]
                  spids: [-1 8830]
                )
              ]
              spids: [-1 8845]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name FEATURE_GATES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8855 8858]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --feature-gates=") (${ VSub_Name FEATURE_GATES))}
                          spids: [8867]
                        )
                      ]
                      spids: [8867]
                    )
                  ]
                  spids: [-1 8864]
                )
              ]
              spids: [-1 8876]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_rc_docker_tag)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(cat)} 
                                {
                                  (
/opt/kubernetes/kube-docker-files/kube-controller-manager.docker_tag
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [8884 8888]
                      )
                    }
                  spids: [8883]
                )
              ]
              spids: [8879]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:container_env)
                  op: Equal
                  rhs: {(DQ )}
                  spids: [8893]
                )
              ]
              spids: [8891]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CACHE_MUTATION_DETECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [8905 8908]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:container_env)
                          op: Equal
                          rhs: 
                            {
                              (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (env) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (":[{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (name) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (KUBE_CACHE_MUTATION_DETECTOR) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (", ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (value) 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar "\\\"">
                                ) (": ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                (${ VSub_Name ENABLE_CACHE_MUTATION_DETECTOR) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("}],")
                              )
                            }
                          spids: [8917]
                        )
                      ]
                      spids: [8917]
                    )
                  ]
                  spids: [-1 8914]
                )
              ]
              spids: [-1 8944]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_file)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name KUBE_HOME) 
                        (/kube-manifests/kubernetes/gci-trusty/kube-controller-manager.manifest)
                      )
                    }
                  spids: [8952]
                )
              ]
              spids: [8948]
            )
            (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name src_file))})
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{srv_kube_path}}@/etc/srv/kubernetes@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube_docker_registry'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name DOCKER_REGISTRY) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube-controller-manager_docker_tag'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name kube_rc_docker_tag) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{params}}@") (${ VSub_Name params) ("@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{container_env}}@") (${ VSub_Name container_env) ("@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{cloud_config_mount}}@") (${ VSub_Name CLOUD_CONFIG_MOUNT) ("@g"))} {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {(DQ ("s@{{cloud_config_volume}}@") (${ VSub_Name CLOUD_CONFIG_VOLUME) ("@g"))} {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{additional_cloud_config_mount}}@@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{additional_cloud_config_volume}}@@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(cp)} {(DQ (${ VSub_Name src_file))} {(/etc/kubernetes/manifests)})
          ]
          spids: [8489]
        )
      spids: [8485 8488]
    )
    (FuncDef
      name: start-kube-scheduler
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start kubernetes scheduler"))})
            (C {(create-kubescheduler-kubeconfig)})
            (C {(prepare-log-file)} {(/var/log/kube-scheduler.log)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name SCHEDULER_TEST_LOG_LEVEL>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ ("--v=2"))})
                          spids: [9219 9225]
                        ) (" ") 
                        (BracedVarSub
                          token: <VSub_Name SCHEDULER_TEST_ARGS>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                          spids: [9227 9230]
                        )
                      )
                    }
                  spids: [9217]
                )
              ]
              spids: [9217]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:params)
                  op: PlusEqual
                  rhs: {(DQ (" --kubeconfig=/etc/srv/kubernetes/kube-scheduler/kubeconfig"))}
                  spids: [9234]
                )
              ]
              spids: [9234]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name FEATURE_GATES>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [9247 9250]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: {(DQ (" --feature-gates=") (${ VSub_Name FEATURE_GATES))}
                          spids: [9259]
                        )
                      ]
                      spids: [9259]
                    )
                  ]
                  spids: [-1 9256]
                )
              ]
              spids: [-1 9268]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SCHEDULING_ALGORITHM_PROVIDER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [9278 9281]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: PlusEqual
                          rhs: 
                            {
                              (DQ (" --algorithm-provider=") 
                                (${ VSub_Name SCHEDULING_ALGORITHM_PROVIDER)
                              )
                            }
                          spids: [9290]
                        )
                      ]
                      spids: [9290]
                    )
                  ]
                  spids: [-1 9287]
                )
              ]
              spids: [-1 9299]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_scheduler_docker_tag)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(cat)} 
                                {
                                  (DQ (${ VSub_Name KUBE_HOME) 
                                    (/kube-docker-files/kube-scheduler.docker_tag)
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [9307 9316]
                      )
                    }
                  spids: [9306]
                )
              ]
              spids: [9302]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_file)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name KUBE_HOME) 
                        (/kube-manifests/kubernetes/gci-trusty/kube-scheduler.manifest)
                      )
                    }
                  spids: [9328]
                )
              ]
              spids: [9324]
            )
            (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name src_file))})
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{srv_kube_path}}@/etc/srv/kubernetes@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{params}}@") (${ VSub_Name params) ("@g"))} 
              {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube_docker_registry'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name DOCKER_REGISTRY) ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ ("s@{{pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                  ("'kube-scheduler_docker_tag'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) ("}}@") (${ VSub_Name kube_scheduler_docker_tag) 
                  ("@g")
                )
              } {(DQ (${ VSub_Name src_file))}
            )
            (C {(cp)} {(DQ (${ VSub_Name src_file))} {(/etc/kubernetes/manifests)})
          ]
          spids: [9194]
        )
      spids: [9190 9193]
    )
    (FuncDef
      name: start-cluster-autoscaler
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CLUSTER_AUTOSCALER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [9475 9478]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Start kubernetes cluster autoscaler"))})
                    (C {(prepare-log-file)} {(/var/log/cluster-autoscaler.log)})
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:src_file)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name KUBE_HOME) 
                                (/kube-manifests/kubernetes/gci-trusty/cluster-autoscaler.manifest)
                              )
                            }
                          spids: [9514]
                        )
                      ]
                      spids: [9510]
                    )
                    (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name src_file))})
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:params)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name AUTOSCALER_MIG_CONFIG) (" ") 
                                (${ VSub_Name CLOUD_CONFIG_OPT) (" ") 
                                (BracedVarSub
                                  token: <VSub_Name AUTOSCALER_EXPANDER_CONFIG>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_ColonHyphen
                                      arg_word: {("--expander=price")}
                                    )
                                  spids: [9545 9549]
                                )
                              )
                            }
                          spids: [9535]
                        )
                      ]
                      spids: [9533]
                    )
                    (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{{params}}@") (${ VSub_Name params) ("@g"))} 
                      {(DQ (${ VSub_Name src_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {(DQ ("s@{{cloud_config_mount}}@") (${ VSub_Name CLOUD_CONFIG_MOUNT) ("@g"))} {(DQ (${ VSub_Name src_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {(DQ ("s@{{cloud_config_volume}}@") (${ VSub_Name CLOUD_CONFIG_VOLUME) ("@g"))} {(DQ (${ VSub_Name src_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} {(DQ ("s@{%.*%}@@g"))} {(DQ (${ VSub_Name src_file))})
                    (C {(cp)} {(DQ (${ VSub_Name src_file))} {(/etc/kubernetes/manifests)})
                  ]
                  spids: [-1 9490]
                )
              ]
              spids: [-1 9645]
            )
          ]
          spids: [9467]
        )
      spids: [9463 9466]
    )
    (FuncDef
      name: setup-addon-manifests
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_dir)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/gci-trusty/) 
                        ($ VSub_Number "$2")
                      )
                    }
                  spids: [9676]
                )
              ]
              spids: [9672]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dst_dir)
                  op: Equal
                  rhs: {(DQ (/etc/kubernetes/) ($ VSub_Number "$1") (/) ($ VSub_Number "$2"))}
                  spids: [9690]
                )
              ]
              spids: [9686]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: (BoolUnary op_id:BoolUnary_d child:{(DQ (${ VSub_Name dst_dir))})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(mkdir)} {(-p)} {(DQ (${ VSub_Name dst_dir))})]
                  spids: [-1 9716]
                )
              ]
              spids: [-1 9730]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(find)} {(DQ (${ VSub_Name src_dir))} {(-maxdepth)} {(1)} {(-name)} 
                                {(DQ ("*.yaml"))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [9736 9754]
                      )
                    }
                  spids: [9735]
                )
              ]
              spids: [9733]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name files))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(cp)} {(DQ (${ VSub_Name src_dir) (/)) (Lit_Other "*") (.yaml)} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                  ]
                  spids: [-1 9772]
                )
              ]
              spids: [-1 9793]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(find)} {(DQ (${ VSub_Name src_dir))} {(-maxdepth)} {(1)} {(-name)} 
                                {(DQ ("*.json"))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [9797 9815]
                      )
                    }
                  spids: [9796]
                )
              ]
              spids: [9796]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name files))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(cp)} {(DQ (${ VSub_Name src_dir) (/)) (Lit_Other "*") (.json)} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                  ]
                  spids: [-1 9833]
                )
              ]
              spids: [-1 9854]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(find)} {(DQ (${ VSub_Name src_dir))} {(-maxdepth)} {(1)} {(-name)} 
                                {(DQ ("*.yaml.in"))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [9858 9876]
                      )
                    }
                  spids: [9857]
                )
              ]
              spids: [9857]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name files))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(cp)} {(DQ (${ VSub_Name src_dir) (/)) (Lit_Other "*") (.yaml.in)} 
                      {(DQ (${ VSub_Name dst_dir))}
                    )
                  ]
                  spids: [-1 9894]
                )
              ]
              spids: [-1 9915]
            )
            (C {(chown)} {(-R)} {(root) (Lit_Other ":") (root)} {(DQ (${ VSub_Name dst_dir))})
            (C {(chmod)} {(755)} {(DQ (${ VSub_Name dst_dir))})
            (C {(chmod)} {(644)} {(DQ (${ VSub_Name dst_dir)) (/) (Lit_Other "*")})
          ]
          spids: [9669]
        )
      spids: [9665 9668]
    )
    (FuncDef
      name: update-prometheus-to-sd-parameters
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_PROMETHEUS_TO_SD>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [9977 9980]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *prometheus_to_sd_prefix *}}@") 
                          (${ VSub_Name PROMETHEUS_TO_SD_PREFIX) ("@g")
                        )
                      } {(DQ ($ VSub_Number "$1"))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *prometheus_to_sd_endpoint *}}@") 
                          (${ VSub_Name PROMETHEUS_TO_SD_ENDPOINT) ("@g")
                        )
                      } {(DQ ($ VSub_Number "$1"))}
                    )
                  ]
                  spids: [-1 9992]
                )
              ]
              else_action: [
                (C {(sed)} {(-i)} {(-e)} {(DQ ("/# BEGIN_PROMETHEUS_TO_SD/,/# END_PROMETHEUS_TO_SD/d"))} 
                  {(DQ ($ VSub_Number "$1"))}
                )
              ]
              spids: [10033 10055]
            )
          ]
          spids: [9969]
        )
      spids: [9965 9968]
    )
    (FuncDef
      name: start-kube-addons
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Prepare kube-addons manifests and start kube addon manager"))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/gci-trusty))}
                  spids: [10087]
                )
              ]
              spids: [10083]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dst_dir)
                  op: Equal
                  rhs: {(DQ (/etc/kubernetes/addons))}
                  spids: [10100]
                )
              ]
              spids: [10096]
            )
            (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (rbac))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_PROXY_DAEMONSET>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [10132 10135]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(prepare-kube-proxy-manifest-variables)} 
                      {(DQ ($ VSub_Name "$src_dir") (/kube-proxy/kube-proxy-ds.yaml))}
                    )
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (kube-proxy))})
                  ]
                  spids: [-1 10147]
                )
              ]
              spids: [-1 10169]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name ENABLE_CLUSTER_MONITORING>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [10177 10180]
                                        )
                                      )
                                    }
                                  right: {(DQ (influxdb))}
                                )
                            )
                            (AndOr
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ENABLE_CLUSTER_MONITORING>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [10198 10201]
                                            )
                                          )
                                        }
                                      right: {(DQ (google))}
                                    )
                                )
                                (AndOr
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name ENABLE_CLUSTER_MONITORING>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [10219 10222]
                                                )
                                              )
                                            }
                                          right: {(DQ (stackdriver))}
                                        )
                                    )
                                    (AndOr
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name ENABLE_CLUSTER_MONITORING>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VTest_ColonHyphen
                                                          arg_word: {(SQ )}
                                                        )
                                                      spids: [10240 10243]
                                                    )
                                                  )
                                                }
                                              right: {(DQ (standalone))}
                                            )
                                        )
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name ENABLE_CLUSTER_MONITORING>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VTest_ColonHyphen
                                                          arg_word: {(SQ )}
                                                        )
                                                      spids: [10261 10264]
                                                    )
                                                  )
                                                }
                                              right: {(DQ (googleinfluxdb))}
                                            )
                                        )
                                      ]
                                      op_id: Op_DPipe
                                    )
                                  ]
                                  op_id: Op_DPipe
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:file_dir)
                          op: Equal
                          rhs: {(DQ (cluster-monitoring/) (${ VSub_Name ENABLE_CLUSTER_MONITORING))}
                          spids: [10283]
                        )
                      ]
                      spids: [10279]
                    )
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (cluster-monitoring))})
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (${ VSub_Name file_dir))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:base_metrics_memory)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name HEAPSTER_GCP_BASE_MEMORY>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(140Mi)})
                                  spids: [10322 10326]
                                )
                              )
                            }
                          spids: [10320]
                        )
                      ]
                      spids: [10320]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:base_eventer_memory)
                          op: Equal
                          rhs: {(DQ (190Mi))}
                          spids: [10330]
                        )
                      ]
                      spids: [10330]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:base_metrics_cpu)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name HEAPSTER_GCP_BASE_CPU>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(80m)})
                                  spids: [10338 10342]
                                )
                              )
                            }
                          spids: [10336]
                        )
                      ]
                      spids: [10336]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:nanny_memory)
                          op: Equal
                          rhs: {(DQ (90Mi))}
                          spids: [10346]
                        )
                      ]
                      spids: [10346]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:metrics_memory_per_node)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name HEAPSTER_GCP_MEMORY_PER_NODE>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(4)})
                                  spids: [10358 10362]
                                )
                              )
                            }
                          spids: [10356]
                        )
                      ]
                      spids: [10352]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:metrics_cpu_per_node)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name HEAPSTER_GCP_CPU_PER_NODE>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0.5)})
                                  spids: [10372 10376]
                                )
                              )
                            }
                          spids: [10370]
                        )
                      ]
                      spids: [10366]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:eventer_memory_per_node)
                          op: Equal
                          rhs: {(DQ (500))}
                          spids: [10384]
                        )
                      ]
                      spids: [10380]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:nanny_memory_per_node)
                          op: Equal
                          rhs: {(DQ (200))}
                          spids: [10394]
                        )
                      ]
                      spids: [10390]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalAnd
                                      left: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name NUM_NODES>
                                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                                  spids: [10407 10410]
                                                )
                                              )
                                            }
                                        )
                                      right: 
                                        (BoolBinary
                                          op_id: BoolBinary_ge
                                          left: {(DQ (${ VSub_Name NUM_NODES))}
                                          right: {(1)}
                                        )
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:num_kube_nodes)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (ArithSubPart
                                          anode: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithWord w:{(${ VSub_Name NUM_NODES)})
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [10433 10440]
                                        )
                                      )
                                    }
                                  spids: [10431]
                                )
                              ]
                              spids: [10431]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nanny_memory)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (ArithSubPart
                                          anode: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: 
                                                (ArithBinary
                                                  op_id: Arith_Star
                                                  left: (ArithWord w:{(${ VSub_Name num_kube_nodes)})
                                                  right: 
                                                    (ArithWord
                                                      w: {(${ VSub_Name nanny_memory_per_node)}
                                                    )
                                                )
                                              right: 
                                                (ArithBinary
                                                  op_id: Arith_Star
                                                  left: (ArithWord w:{(Lit_Digits 90)})
                                                  right: (ArithWord w:{(Lit_Digits 1024)})
                                                )
                                            )
                                          spids: [10446 10465]
                                        ) (Ki)
                                      )
                                    }
                                  spids: [10444]
                                )
                              ]
                              spids: [10444]
                            )
                          ]
                          spids: [-1 10428]
                        )
                      ]
                      spids: [-1 10470]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:controller_yaml)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name dst_dir) (/) (${ VSub_Name file_dir))}
                          spids: [10473]
                        )
                      ]
                      spids: [10473]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ENABLE_CLUSTER_MONITORING>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [10490 10493]
                                            )
                                          )
                                        }
                                      right: {(DQ (googleinfluxdb))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:controller_yaml)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (${ VSub_Name controller_yaml) 
                                        (/heapster-controller-combined.yaml)
                                      )
                                    }
                                  spids: [10508]
                                )
                              ]
                              spids: [10508]
                            )
                          ]
                          spids: [-1 10505]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:controller_yaml)
                              op: Equal
                              rhs: {(DQ (${ VSub_Name controller_yaml) (/heapster-controller.yaml))}
                              spids: [10520]
                            )
                          ]
                          spids: [10520]
                        )
                      ]
                      spids: [10517 10529]
                    )
                    (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name controller_yaml))})
                    (C {(sed)} {(-i)} {(-e)} 
                      {(DQ ("s@{{ cluster_name }}@") (${ VSub_Name CLUSTER_NAME) ("@g"))} {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *base_metrics_memory *}}@") (${ VSub_Name base_metrics_memory) 
                          ("@g")
                        )
                      } {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {(DQ ("s@{{ *base_metrics_cpu *}}@") (${ VSub_Name base_metrics_cpu) ("@g"))} {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *base_eventer_memory *}}@") (${ VSub_Name base_eventer_memory) 
                          ("@g")
                        )
                      } {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *metrics_memory_per_node *}}@") 
                          (${ VSub_Name metrics_memory_per_node) ("@g")
                        )
                      } {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *eventer_memory_per_node *}}@") 
                          (${ VSub_Name eventer_memory_per_node) ("@g")
                        )
                      } {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {(DQ ("s@{{ *nanny_memory *}}@") (${ VSub_Name nanny_memory) ("@g"))} {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *metrics_cpu_per_node *}}@") (${ VSub_Name metrics_cpu_per_node) 
                          ("@g")
                        )
                      } {(DQ (${ VSub_Name controller_yaml))}
                    )
                    (C {(update-prometheus-to-sd-parameters)} {(${ VSub_Name controller_yaml)})
                  ]
                  spids: [-1 10276]
                )
              ]
              spids: [-1 10716]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_METRICS_SERVER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [10724 10727]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (metrics-server))})]
                  spids: [-1 10739]
                )
              ]
              spids: [-1 10753]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CLUSTER_DNS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [10761 10764]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (dns))})
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kubedns_file)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name dst_dir) (/dns/kube-dns.yaml))}
                          spids: [10794]
                        )
                      ]
                      spids: [10790]
                    )
                    (C {(mv)} {(DQ (${ VSub_Name dst_dir) (/dns/kube-dns.yaml.in))} 
                      {(DQ (${ VSub_Name kubedns_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                          ("'dns_domain'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (" *}}@") (${ VSub_Name DNS_DOMAIN) ("@g")
                        )
                      } {(DQ (${ VSub_Name kubedns_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                          ("'dns_server'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (" *}}@") (${ VSub_Name DNS_SERVER_IP) ("@g")
                        )
                      } {(DQ (${ VSub_Name kubedns_file))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ENABLE_DNS_HORIZONTAL_AUTOSCALER>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [10879 10882]
                                            )
                                          )
                                        }
                                      right: {(DQ (true))}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(setup-addon-manifests)} {(DQ (addons))} 
                              {(DQ (dns-horizontal-autoscaler))}
                            )
                          ]
                          spids: [-1 10894]
                        )
                      ]
                      spids: [-1 10908]
                    )
                  ]
                  spids: [-1 10776]
                )
              ]
              spids: [-1 10911]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CLUSTER_REGISTRY>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [10919 10922]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (registry))})
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:registry_pv_file)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name dst_dir) (/registry/registry-pv.yaml))}
                          spids: [10952]
                        )
                      ]
                      spids: [10948]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:registry_pvc_file)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name dst_dir) (/registry/registry-pvc.yaml))}
                          spids: [10965]
                        )
                      ]
                      spids: [10961]
                    )
                    (C {(mv)} {(DQ (${ VSub_Name dst_dir) (/registry/registry-pv.yaml.in))} 
                      {(DQ (${ VSub_Name registry_pv_file))}
                    )
                    (C {(mv)} {(DQ (${ VSub_Name dst_dir) (/registry/registry-pvc.yaml.in))} 
                      {(DQ (${ VSub_Name registry_pvc_file))}
                    )
                    (C {(remove-salt-config-comments)} {(DQ (${ VSub_Name controller_yaml))})
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                          ("'cluster_registry_disk_size'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (" *}}@") (${ VSub_Name CLUSTER_REGISTRY_DISK_SIZE) 
                          ("@g")
                        )
                      } {(DQ (${ VSub_Name registry_pv_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                          ("'cluster_registry_disk_size'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (" *}}@") (${ VSub_Name CLUSTER_REGISTRY_DISK_SIZE) 
                          ("@g")
                        )
                      } {(DQ (${ VSub_Name registry_pvc_file))}
                    )
                    (C {(sed)} {(-i)} {(-e)} 
                      {
                        (DQ ("s@{{ *pillar") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                          ("'cluster_registry_disk_name'") (EscapedLiteralPart token:<Lit_EscapedChar "\\]">) (" *}}@") (${ VSub_Name CLUSTER_REGISTRY_DISK) ("@g")
                        )
                      } {(DQ (${ VSub_Name registry_pvc_file))}
                    )
                  ]
                  spids: [-1 10934]
                )
              ]
              spids: [-1 11094]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name ENABLE_NODE_LOGGING>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [11102 11105]
                                        )
                                      )
                                    }
                                  right: {(DQ (true))}
                                )
                            )
                            (AndOr
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name LOGGING_DESTINATION>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [11123 11126]
                                            )
                                          )
                                        }
                                      right: {(DQ (elasticsearch))}
                                    )
                                )
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name ENABLE_CLUSTER_LOGGING>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [11144 11147]
                                            )
                                          )
                                        }
                                      right: {(DQ (true))}
                                    )
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (fluentd-elasticsearch))})]
                  spids: [-1 11159]
                )
              ]
              spids: [-1 11173]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name ENABLE_NODE_LOGGING>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [11181 11184]
                                        )
                                      )
                                    }
                                  right: {(DQ (true))}
                                )
                            )
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name LOGGING_DESTINATION>
                                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                          spids: [11202 11205]
                                        )
                                      )
                                    }
                                  right: {(DQ (gcp))}
                                )
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (fluentd-gcp))})
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:event_exporter_yaml)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name dst_dir) (/fluentd-gcp/event-exporter.yaml))}
                          spids: [11235]
                        )
                      ]
                      spids: [11231]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fluentd_gcp_yaml)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name dst_dir) (/fluentd-gcp/fluentd-gcp-ds.yaml))}
                          spids: [11248]
                        )
                      ]
                      spids: [11244]
                    )
                    (C {(update-prometheus-to-sd-parameters)} {(${ VSub_Name event_exporter_yaml)})
                    (C {(update-prometheus-to-sd-parameters)} {(${ VSub_Name fluentd_gcp_yaml)})
                  ]
                  spids: [-1 11217]
                )
              ]
              spids: [-1 11271]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_CLUSTER_UI>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [11279 11282]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (dashboard))})]
                  spids: [-1 11294]
                )
              ]
              spids: [-1 11308]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_NODE_PROBLEM_DETECTOR>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [11316 11319]
                                    )
                                  )
                                }
                              right: {(DQ (daemonset))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (node-problem-detector))})]
                  spids: [-1 11331]
                )
              ]
              spids: [-1 11345]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name ADMISSION_CONTROL>
                                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                    spids: [11353 11356]
                                  )
                                )
                              }
                            )
                            (C {(grep)} {(-q)} {(DQ (LimitRanger))})
                          ]
                          negated: False
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(setup-addon-manifests)} {(DQ (admission-controls))} {(DQ (limit-range))})
                  ]
                  spids: [-1 11370]
                )
              ]
              spids: [-1 11384]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name NETWORK_POLICY_PROVIDER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [11392 11395]
                                    )
                                  )
                                }
                              right: {(DQ (calico))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (calico-policy-controller))})
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ds_file)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name dst_dir) 
                                (/calico-policy-controller/calico-node-daemonset.yaml)
                              )
                            }
                          spids: [11430]
                        )
                      ]
                      spids: [11426]
                    )
                    (C {(sed)} {(-i)} {(-e)} {(DQ ("s@__CALICO_CNI_DIR__@/opt/cni/bin@g"))} 
                      {(DQ (${ VSub_Name ds_file))}
                    )
                  ]
                  spids: [-1 11407]
                )
              ]
              spids: [-1 11456]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_DEFAULT_STORAGE_CLASS>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [11464 11467]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (storage-class/gce))})]
                  spids: [-1 11479]
                )
              ]
              spids: [-1 11493]
            )
            (C {(cp)} {(DQ (${ VSub_Name src_dir) (/kube-addon-manager.yaml))} 
              {(/etc/kubernetes/manifests)}
            )
          ]
          spids: [10073]
        )
      spids: [10069 10072]
    )
    (FuncDef
      name: start-image-puller
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start image-puller"))})
            (C {(cp)} 
              {
                (DQ (${ VSub_Name KUBE_HOME) 
                  (/kube-manifests/kubernetes/gci-trusty/e2e-image-puller.manifest)
                )
              } {(/etc/kubernetes/manifests/)}
            )
          ]
          spids: [11522]
        )
      spids: [11518 11521]
    )
    (FuncDef
      name: start-kube-registry-proxy
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Start kube-registry-proxy"))})
            (C {(cp)} 
              {(DQ (${ VSub_Name KUBE_HOME) (/kube-manifests/kubernetes/kube-registry-proxy.yaml))} {(/etc/kubernetes/manifests)}
            )
          ]
          spids: [11555]
        )
      spids: [11551 11554]
    )
    (FuncDef
      name: start-lb-controller
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_L7_LOADBALANCING>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [11594 11597]
                                    )
                                  )
                                }
                              right: {(DQ (glbc))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Start GCE L7 pod"))})
                    (C {(prepare-log-file)} {(/var/log/glbc.log)})
                    (C {(setup-addon-manifests)} {(DQ (addons))} {(DQ (cluster-loadbalancing/glbc))})
                    (C {(cp)} 
                      {
                        (DQ (${ VSub_Name KUBE_HOME) 
                          (/kube-manifests/kubernetes/gci-trusty/glbc.manifest)
                        )
                      } {(/etc/kubernetes/manifests/)}
                    )
                  ]
                  spids: [-1 11609]
                )
              ]
              spids: [-1 11649]
            )
          ]
          spids: [11586]
        )
      spids: [11582 11585]
    )
    (FuncDef
      name: start-rescheduler
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name ENABLE_RESCHEDULER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [11669 11672]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Start Rescheduler"))})
                    (C {(prepare-log-file)} {(/var/log/rescheduler.log)})
                    (C {(cp)} 
                      {
                        (DQ (${ VSub_Name KUBE_HOME) 
                          (/kube-manifests/kubernetes/gci-trusty/rescheduler.manifest)
                        )
                      } {(/etc/kubernetes/manifests/)}
                    )
                  ]
                  spids: [-1 11684]
                )
              ]
              spids: [-1 11713]
            )
          ]
          spids: [11661]
        )
      spids: [11657 11660]
    )
    (FuncDef
      name: setup-rkt
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rkt_bin)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/bin/rkt))}
                  spids: [11739]
                )
              ]
              spids: [11737]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_x child:{(DQ (${ VSub_Name rkt_bin))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RKT_BIN)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name rkt_bin))}
                          spids: [11778]
                        )
                      ]
                      spids: [11778]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 11763]
                )
              ]
              spids: [-1 11789]
            )
            (C {(mkdir)} {(-p)} {(/etc/rkt)} {(DQ (${ VSub_Name KUBE_HOME) (/download/))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rkt_tar)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/download/rkt.tar.gz))}
                  spids: [11808]
                )
              ]
              spids: [11806]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rkt_tmpdir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(mktemp)} {(-d)} {(DQ (${ VSub_Name KUBE_HOME) (/rkt_download.XXXXX))})
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [11820 11831]
                      )
                    }
                  spids: [11819]
                )
              ]
              spids: [11817]
            )
            (C {(curl)} {(--retry)} {(5)} {(--retry-delay)} {(3)} {(--fail)} {(--silent)} {(--show-error)} 
              {(--location)} {(--create-dirs)} {(--output)} {(DQ (${ VSub_Name rkt_tar))} 
              {(https) (Lit_Other ":") (//github.com/coreos/rkt/releases/download/v) 
                (${ VSub_Name RKT_VERSION) (/rkt-v) (${ VSub_Name RKT_VERSION) (.tar.gz)
              }
            )
            (C {(tar)} {(--strip-components) (Lit_Other "=") (1)} {(-xf)} {(DQ (${ VSub_Name rkt_tar))} 
              {(-C)} {(DQ (${ VSub_Name rkt_tmpdir))} {(--overwrite)}
            )
            (C {(mv)} {(DQ (${ VSub_Name rkt_tmpdir) (/rkt))} {(DQ (${ VSub_Name rkt_bin))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: (BoolUnary op_id:BoolUnary_x child:{(DQ (${ VSub_Name rkt_bin))})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Could not download requested rkt binary"))})
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 11937]
                )
              ]
              spids: [-1 11952]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RKT_BIN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name rkt_bin))}
                  spids: [11955]
                )
              ]
              spids: [11955]
            )
            (C {(DQ (${ VSub_Name RKT_BIN))} {(fetch)} {(--insecure-options) (Lit_Other "=") (image)} 
              {(DQ (${ VSub_Name rkt_tmpdir)) (/) (Lit_Other "*") (.aci)}
            )
            (C {(rm)} {(-rf)} {(DQ (${ VSub_Name rkt_tmpdir))})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/systemd/system/rkt-api.service)}
                  spids: [12003]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("[Unit]\n") ("Description=rkt api service\n") 
                        ("Documentation=http://github.com/coreos/rkt\n") ("After=network.target\n") ("\n") ("[Service]\n") ("ExecStart=") (${ VSub_Name RKT_BIN) 
                        (" api-service --listen=127.0.0.1:15441\n") ("Restart=on-failure\n") ("\n") ("[Install]\n") ("WantedBy=multi-user.target\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [12007]
                )
              ]
            )
            (C {(systemctl)} {(enable)} {(rkt-api.service)})
            (C {(systemctl)} {(start)} {(rkt-api.service)})
          ]
          spids: [11734]
        )
      spids: [11730 11733]
    )
    (FuncDef
      name: install-docker2aci
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tar_path)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/download/docker2aci.tar.gz))}
                  spids: [12063]
                )
              ]
              spids: [12061]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_path)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/docker2aci))}
                  spids: [12074]
                )
              ]
              spids: [12072]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name KUBE_HOME) (/download/))} 
              {(DQ (${ VSub_Name tmp_path))}
            )
            (C {(curl)} {(--retry)} {(5)} {(--retry-delay)} {(3)} {(--fail)} {(--silent)} {(--show-error)} 
              {(--location)} {(--create-dirs)} {(--output)} {(DQ (${ VSub_Name tar_path))} 
              {(https) (Lit_Other ":") 
                (//github.com/appc/docker2aci/releases/download/v0.14.0/docker2aci-v0.14.0.tar.gz)
              }
            )
            (C {(tar)} {(--strip-components) (Lit_Other "=") (1)} {(-xf)} {(DQ (${ VSub_Name tar_path))} 
              {(-C)} {(DQ (${ VSub_Name tmp_path))} {(--overwrite)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOCKER2ACI_BIN)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name KUBE_HOME) (/bin/docker2aci))}
                  spids: [12163]
                )
              ]
              spids: [12163]
            )
            (C {(mv)} {(DQ (${ VSub_Name tmp_path) (/docker2aci))} {(DQ (${ VSub_Name DOCKER2ACI_BIN))})
          ]
          spids: [12058]
        )
      spids: [12054 12057]
    )
    (C {(echo)} {(DQ ("Start to configure instance for kubernetes"))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_HOME)
          op: Equal
          rhs: {(DQ (/opt/kubernetes))}
          spids: [12206]
        )
      ]
      spids: [12206]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalNot
                      child: 
                        (BoolUnary
                          op_id: BoolUnary_e
                          child: {(DQ (${ VSub_Name KUBE_HOME) (/kube-env))}
                        )
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("The ") (${ VSub_Name KUBE_HOME) 
                  ("/kube-env file does not exist!! Terminate cluster initialization.")
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 12229]
        )
      ]
      spids: [-1 12247]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_HOME) (/kube-env))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_n
                      child: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBE_USER>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [12267 12270]
                            )
                          )
                        }
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_EqualTilde
                                  left: {(DQ (${ VSub_Name KUBE_USER))}
                                  right: 
                                    {(Lit_Other "^") (Lit_Other "[") (-._) (Lit_Other "@") (a-zA-Z0-9) 
                                      (Lit_Other "]") (Lit_Other "+") (Lit_Other "$")
                                    }
                                )
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(echo)} {(DQ ("Bad KUBE_USER format."))}) (C {(exit)} {(1)})]
                  spids: [-1 12305]
                )
              ]
              spids: [-1 12320]
            )
          ]
          spids: [-1 12276]
        )
      ]
      spids: [-1 12322]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_CONTROLLER_MANAGER_TOKEN)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (SimpleCommand
                            words: [
                              {(dd)}
                              {(Lit_VarLike "if=") (/dev/urandom)}
                              {(Lit_VarLike "bs=") (128)}
                              {(Lit_VarLike "count=") (1)}
                            ]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 2
                                arg_word: {(/dev/null)}
                                spids: [12341]
                              )
                            ]
                          )
                          (C {(base64)})
                          (C {(tr)} {(-d)} {(DQ ("=+/"))})
                          (SimpleCommand
                            words: [{(dd)} {(Lit_VarLike "bs=") (32)} {(Lit_VarLike "count=") (1)}]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 2
                                arg_word: {(/dev/null)}
                                spids: [12368]
                              )
                            ]
                          )
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [12329 12370]
              )
            }
          spids: [12328]
        )
      ]
      spids: [12328]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_SCHEDULER_TOKEN)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (SimpleCommand
                            words: [
                              {(dd)}
                              {(Lit_VarLike "if=") (/dev/urandom)}
                              {(Lit_VarLike "bs=") (128)}
                              {(Lit_VarLike "count=") (1)}
                            ]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 2
                                arg_word: {(/dev/null)}
                                spids: [12385]
                              )
                            ]
                          )
                          (C {(base64)})
                          (C {(tr)} {(-d)} {(DQ ("=+/"))})
                          (SimpleCommand
                            words: [{(dd)} {(Lit_VarLike "bs=") (32)} {(Lit_VarLike "count=") (1)}]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 2
                                arg_word: {(/dev/null)}
                                spids: [12412]
                              )
                            ]
                          )
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [12373 12414]
              )
            }
          spids: [12372]
        )
      ]
      spids: [12372]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name CONTAINER_RUNTIME>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [12425 12428]
                            )
                          )
                        }
                      right: {(DQ )}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CONTAINER_RUNTIME)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBERNETES_CONTAINER_RUNTIME>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(docker)})
                          spids: [12444 12448]
                        )
                      )
                    }
                  spids: [12442]
                )
              ]
              spids: [12442]
            )
          ]
          spids: [-1 12439]
        )
      ]
      spids: [-1 12451]
    )
    (C {(create-dirs)})
    (C {(ensure-local-ssds)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBERNETES_MASTER>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [12463 12466]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(mount-master-pd)})
            (C {(create-master-auth)})
            (C {(create-master-kubelet-auth)})
            (C {(create-master-etcd-auth)})
          ]
          spids: [-1 12478]
        )
      ]
      else_action: [
        (C {(create-kubelet-kubeconfig)} {(DQ ("https://") (${ VSub_Name KUBERNETES_MASTER_NAME))})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobNEqual
                          left: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name KUBE_PROXY_DAEMONSET>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [12510 12513]
                                )
                              )
                            }
                          right: {(DQ (true))}
                        )
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              action: [(C {(create-kubeproxy-user-kubeconfig)})]
              spids: [-1 12525]
            )
          ]
          spids: [-1 12531]
        )
      ]
      spids: [12492 12533]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name CONTAINER_RUNTIME>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [12541 12544]
                            )
                          )
                        }
                      right: {(DQ (rkt))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(systemctl)} {(stop)} {(docker)})
            (C {(systemctl)} {(disable)} {(docker)})
            (C {(setup-rkt)})
            (C {(install-docker2aci)})
            (C {(create-kube-controller-manager-dirs)})
          ]
          spids: [-1 12556]
        )
      ]
      else_action: [(C {(configure-docker-daemon)})]
      spids: [12581 12586]
    )
    (C {(load-docker-images)})
    (C {(start-kubelet)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBERNETES_MASTER>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [12599 12602]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(compute-master-manifest-variables)})
            (C {(start-etcd-servers)})
            (C {(start-etcd-empty-dir-cleanup-pod)})
            (C {(start-kube-apiserver)})
            (C {(start-kube-controller-manager)})
            (C {(start-kube-scheduler)})
            (C {(start-kube-addons)})
            (C {(start-cluster-autoscaler)})
            (C {(start-lb-controller)})
            (C {(start-rescheduler)})
          ]
          spids: [-1 12614]
        )
      ]
      else_action: [
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobNEqual
                          left: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name KUBE_PROXY_DAEMONSET>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [12654 12657]
                                )
                              )
                            }
                          right: {(DQ (true))}
                        )
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              action: [(C {(start-kube-proxy)})]
              spids: [-1 12669]
            )
          ]
          spids: [-1 12675]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobDEqual
                          left: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name ENABLE_CLUSTER_REGISTRY>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [12687 12690]
                                )
                              )
                            }
                          right: {(DQ (true))}
                        )
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              action: [(C {(start-kube-registry-proxy)})]
              spids: [-1 12702]
            )
          ]
          spids: [-1 12708]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobDEqual
                          left: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name PREPULL_E2E_IMAGES>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [12716 12719]
                                )
                              )
                            }
                          right: {(DQ (true))}
                        )
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              action: [(C {(start-image-puller)})]
              spids: [-1 12731]
            )
          ]
          spids: [-1 12737]
        )
      ]
      spids: [12646 12739]
    )
    (C {(echo)} {(DQ ("Done for the configuration for kubernetes"))})
  ]
)