(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:is_push) op:Equal rhs:{($ VSub_At "$@")} spids:[66])]
      spids: [66]
    )
    (FuncDef
      name: ensure-basic-networking
      body: 
        (BraceGroup
          children: [
            (Until
              cond: [
                (Sentence
                  child: (C {(getent)} {(hosts)} {(metadata.google.internal)})
                  terminator: <Op_Amp "&">
                )
                (Sentence
                  child: 
                    (SimpleCommand
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[100])]
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} 
                      {
                        (SQ 
                          <
"Waiting for functional DNS (trying to resolve metadata.google.internal)..."
                          >
                        )
                      }
                    )
                    (C {(sleep)} {(3)})
                  ]
                  spids: [104 119]
                )
            )
            (Until
              cond: [
                (Sentence
                  child: 
                    (C {(getent)} {(hosts)} 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (AndOr
                                  children: [(C {(hostname)} {(-f)}) (C {(echo)} {(_error_)})]
                                  op_id: Op_DPipe
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [128 138]
                        )
                      }
                    )
                  terminator: <Op_Amp "&">
                )
                (Sentence
                  child: 
                    (SimpleCommand
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[141])]
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(SQ <"Waiting for functional DNS (trying to resolve my own FQDN)...">)})
                    (C {(sleep)} {(3)})
                  ]
                  spids: [145 160]
                )
            )
            (Until
              cond: [
                (Sentence
                  child: 
                    (C {(getent)} {(hosts)} 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (AndOr
                                  children: [(C {(hostname)} {(-i)}) (C {(echo)} {(_error_)})]
                                  op_id: Op_DPipe
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [169 179]
                        )
                      }
                    )
                  terminator: <Op_Amp "&">
                )
                (Sentence
                  child: 
                    (SimpleCommand
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[182])]
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(SQ <"Waiting for functional DNS (trying to resolve my own IP)...">)})
                    (C {(sleep)} {(3)})
                  ]
                  spids: [186 201]
                )
            )
            (C {(echo)} 
              {
                (DQ ("Networking functional on ") 
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(hostname)})])
                    left_token: <Left_CommandSub "$(">
                    spids: [209 211]
                  ) (" (") 
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(hostname)} {(-i)})])
                    left_token: <Left_CommandSub "$(">
                    spids: [213 217]
                  ) (")")
                )
              }
            )
          ]
          spids: [76]
        )
      spids: [70 75]
    )
    (FuncDef
      name: ensure-packages
      body: (BraceGroup children:[(C {(Lit_Other ":")})] spids:[231])
      spids: [227 230]
    )
    (FuncDef
      name: create-node-pki
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Creating node pki files"))})
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pki_dir)
                  op: Equal
                  rhs: {(DQ (/etc/kubernetes/pki))}
                  spids: [258]
                )
              ]
              spids: [254]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name pki_dir))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name CA_CERT_BUNDLE>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [283 286]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CA_CERT_BUNDLE)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name CA_CERT))}
                          spids: [295]
                        )
                      ]
                      spids: [295]
                    )
                  ]
                  spids: [-1 292]
                )
              ]
              spids: [-1 303]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CA_CERT_BUNDLE_PATH)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name pki_dir) (/ca-certificates.crt))}
                  spids: [307]
                )
              ]
              spids: [307]
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ (${ VSub_Name CA_CERT_BUNDLE))})
                (SimpleCommand
                  words: [{(base64)} {(--decode)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ (${ VSub_Name CA_CERT_BUNDLE_PATH))}
                      spids: [330]
                    )
                  ]
                )
              ]
              negated: False
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name KUBELET_CERT>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [349 352]
                                            )
                                          )
                                        }
                                    )
                                )
                              right: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name KUBELET_KEY>
                                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                              spids: [362 365]
                                            )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBELET_CERT_PATH)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name pki_dir) (/kubelet.crt))}
                          spids: [374]
                        )
                      ]
                      spids: [374]
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name KUBELET_CERT))})
                        (SimpleCommand
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name KUBELET_CERT_PATH))}
                              spids: [397]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBELET_KEY_PATH)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name pki_dir) (/kubelet.key))}
                          spids: [407]
                        )
                      ]
                      spids: [407]
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name KUBELET_KEY))})
                        (SimpleCommand
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name KUBELET_KEY_PATH))}
                              spids: [430]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [-1 371]
                )
              ]
              spids: [-1 439]
            )
            (C {(ln)} {(-sf)} {(DQ (${ VSub_Name CA_CERT_BUNDLE_PATH))} {(/etc/kubernetes/ca.crt)})
          ]
          spids: [243]
        )
      spids: [239 242]
    )
    (FuncDef
      name: ensure-local-disks
      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: [506 520]
                                      )
                                    }
                                  spids: [505]
                                )
                              ]
                              spids: [505]
                            )
                            (C {(echo)} 
                              {
                                (DQ ("Formatting and mounting local SSD ") ($ VSub_Name "$ssd") 
                                  (" to /mnt/disks/ssd") ($ VSub_Name "$ssdnum")
                                )
                              }
                            )
                            (C {(mkdir)} {(-p)} {(/mnt/disks/ssd) ($ VSub_Name "$ssdnum")})
                            (Sentence
                              child: 
                                (C {(/usr/share/google/safe_format_and_mount)} {(-m)} 
                                  {(DQ ("mkfs.ext4 -F"))} {(DQ (${ VSub_Name ssd))} {(/mnt/disks/ssd) ($ VSub_Name "$ssdnum")}
                                )
                              terminator: <Op_Amp "&">
                            )
                            (AndOr
                              children: [
                                (SimpleCommand
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: -1
                                      arg_word: 
                                        {(/var/log/local-ssd-) ($ VSub_Name "$ssdnum") (-mount.log)}
                                      spids: [559]
                                    )
                                  ]
                                )
                                (BraceGroup
                                  children: [
                                    (Sentence
                                      child: 
                                        (C {(echo)} 
                                          {
                                            (DQ ("Local SSD ") ($ VSub_Name "$ssdnum") 
                                              (" mount failed, review /var/log/local-ssd-") ($ VSub_Name "$ssdnum") (-mount.log)
                                            )
                                          }
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                    (Sentence
                                      child: 
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  spids: [568]
                                )
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          spids: [-1 502]
                        )
                      ]
                      else_action: [(C {(echo)} {(DQ ("No local SSD disks found."))})]
                      spids: [589 599]
                    )
                  ]
                  spids: [486 602]
                )
              spids: [481 484]
            )
          ]
          spids: [473]
        )
      spids: [469 472]
    )
    (FuncDef
      name: config-ip-firewall
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Configuring IP firewall rules"))})
            (C {(iptables)} {(-N)} {(KUBE-METADATA-SERVER)})
            (C {(iptables)} {(-I)} {(FORWARD)} {(-p)} {(tcp)} {(-d)} {(169.254.169.254)} {(--dport)} {(80)} 
              {(-j)} {(KUBE-METADATA-SERVER)}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name KUBE_FIREWALL_METADATA_SERVER>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [660 663]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(iptables)} {(-A)} {(KUBE-METADATA-SERVER)} {(-j)} {(DROP)})]
                  spids: [-1 669]
                )
              ]
              spids: [-1 683]
            )
          ]
          spids: [611]
        )
      spids: [607 610]
    )
    (FuncDef
      name: ensure-install-dir
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INSTALL_DIR)
                  op: Equal
                  rhs: {(DQ (/var/cache/kubernetes-install))}
                  spids: [697]
                )
              ]
              spids: [697]
            )
            (C {(mkdir)} {(-p)} {(${ VSub_Name INSTALL_DIR)})
            (C {(cd)} {(${ VSub_Name INSTALL_DIR)})
          ]
          spids: [694]
        )
      spids: [688 693]
    )
    (FuncDef
      name: salt-apiserver-timeout-grain
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: {(DQ ("  minRequestTimeout: '") ($ VSub_Number "$1") ("'\n"))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [732]
                )
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(/etc/salt/minion.d/grains.conf)}
                  spids: [735]
                )
              ]
            )
          ]
          spids: [727]
        )
      spids: [721 726]
    )
    (FuncDef
      name: set-broken-motd
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(echo)}
                {(-e)}
                {
                  (SQ 
                    <
"\\nBroken (or in progress) Kubernetes node setup! Suggested first step:\\n  tail /var/log/startupscript.log\\n"
                    >
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/etc/motd)} spids:[761])]
            )
          ]
          spids: [750]
        )
      spids: [744 749]
    )
    (FuncDef
      name: reset-motd
      body: 
        (BraceGroup
          children: [
            (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 {(/usr/local/bin/kubelet)} {(--version) (Lit_Other "=") (true)})
                                    (C {(cut)} {(-f2)} {(-d)} {(DQ (" "))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [787 805]
                        )
                      )
                    }
                  spids: [785]
                )
              ]
              spids: [781]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:gitref)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ (${ VSub_Name version))})
                                    (C {(sed)} {(-r)} 
                                      {
                                        (DQ ("s/(v[0-9]+") 
                                          (EscapedLiteralPart
                                            token: <Lit_EscapedChar "\\.">
                                          ) ("[0-9]+") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) ("[0-9]+)(-[a-z]+") 
                                          (EscapedLiteralPart
                                            token: <Lit_EscapedChar "\\.">
                                          ) ("[0-9]+)?.*/") (EscapedLiteralPart token:<Lit_EscapedChar "\\1">) 
                                          (EscapedLiteralPart
                                            token: <Lit_EscapedChar "\\2">
                                          ) (/g)
                                        )
                                      }
                                    )
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [821 848]
                        )
                      )
                    }
                  spids: [819]
                )
              ]
              spids: [817]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:devel) op:Equal rhs:{(DQ )} spids:[854])]
              spids: [852]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {(DQ (${ VSub_Name gitref))}
                              right: {(DQ (${ VSub_Name version))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:devel)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("\n") 
                                (
"Note: This looks like a development version, which might not be present on GitHub.\n"
                                ) ("If it isn't, the closest tag is at:\n") ("  https://github.com/kubernetes/kubernetes/tree/") 
                                (${ VSub_Name gitref) ("\n")
                              )
                            }
                          spids: [883]
                        )
                      ]
                      spids: [883]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gitref)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name version>
                                  suffix_op: 
                                    (PatSub
                                      pat: {("*+")}
                                      replace: {(SQ )}
                                      do_all: True
                                      do_prefix: False
                                      do_suffix: False
                                    )
                                  spids: [898 904]
                                )
                              )
                            }
                          spids: [896]
                        )
                      ]
                      spids: [896]
                    )
                  ]
                  spids: [-1 880]
                )
              ]
              spids: [-1 908]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(/etc/motd)} spids:[913])
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("\n") ("Welcome to Kubernetes ") (${ VSub_Name version) ("!\n") ("\n") 
                        ("You can find documentation for Kubernetes at:\n") ("  http://docs.kubernetes.io/\n") ("\n") ("The source for this release can be found at:\n") 
                        ("  /usr/local/share/doc/kubernetes/kubernetes-src.tar.gz\n") ("Or you can download it at:\n") ("  https://storage.googleapis.com/kubernetes-release/release/") 
                        (${ VSub_Name version) ("/kubernetes-src.tar.gz\n") ("\n") ("It is based on the Kubernetes source at:\n") 
                        ("  https://github.com/kubernetes/kubernetes/tree/") (${ VSub_Name gitref) ("\n") (${ VSub_Name devel) ("\n") 
                        ("For Kubernetes copyright and licensing information, see:\n") ("  /usr/local/share/doc/kubernetes/LICENSES\n") ("\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [917]
                )
              ]
            )
          ]
          spids: [774]
        )
      spids: [768 773]
    )
    (FuncDef
      name: curl-metadata
      body: 
        (BraceGroup
          children: [
            (C {(curl)} {(--fail)} {(--retry)} {(5)} {(--silent)} {(-H)} {(SQ <"Metadata-Flavor: Google">)} 
              {(DQ ("http://metadata/computeMetadata/v1/instance/attributes/") (${ VSub_Number 1))}
            )
          ]
          spids: [961]
        )
      spids: [955 960]
    )
    (FuncDef
      name: set-kube-env
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_env_yaml)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name INSTALL_DIR) (/kube_env.yaml))}
                  spids: [1001]
                )
              ]
              spids: [999]
            )
            (Until
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(curl-metadata)} {(kube-env)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: -1
                          arg_word: {(DQ (${ VSub_Name kube_env_yaml))}
                          spids: [1017]
                        )
                      ]
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [(C {(echo)} {(SQ <"Waiting for kube-env...">)}) (C {(sleep)} {(3)})]
                  spids: [1026 1041]
                )
            )
            (C {(eval)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (SimpleCommand
                            words: [
                              {(python)}
                              {(-c)}
                              {
                                (SQ <"\n"> <"import pipes,sys,yaml\n"> <"\n"> 
                                  <"for k,v in yaml.load(sys.stdin).iteritems():\n"> <"  print(\"\"\"readonly {var}={value}\"\"\".format(var = k, value = pipes.quote(str(v))))\n"> 
                                  <"  print(\"\"\"export {var}\"\"\".format(var = k))\n"> <"  ">
                                )
                              }
                            ]
                            redirects: [
                              (Redir
                                op_id: Redir_Less
                                fd: -1
                                arg_word: {(DQ ) (DQ (${ VSub_Name kube_env_yaml)) (DQ )}
                                spids: [1067]
                              )
                            ]
                          )
                        ]
                      )
                    left_token: <Left_CommandSub "$(">
                    spids: [1052 1078]
                  )
                )
              }
            )
          ]
          spids: [996]
        )
      spids: [990 995]
    )
    (FuncDef
      name: remove-docker-artifacts
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("== Deleting docker0 =="))})
            (C {(apt-get-install)} {(bridge-utils)})
            (AndOr
              children: [(C {(iptables)} {(-t)} {(nat)} {(-F)}) (C {(true)})]
              op_id: Op_DPipe
            )
            (AndOr
              children: [(C {(ifconfig)} {(docker0)} {(down)}) (C {(true)})]
              op_id: Op_DPipe
            )
            (AndOr
              children: [(C {(brctl)} {(delbr)} {(docker0)}) (C {(true)})]
              op_id: Op_DPipe
            )
            (C {(echo)} {(DQ ("== Finished deleting docker0 =="))})
          ]
          spids: [1090]
        )
      spids: [1084 1089]
    )
    (FuncDef
      name: download-or-bust
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hash)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1177]
                )
              ]
              spids: [1173]
            )
            (C {(shift)} {(1)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:urls)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_Star "$*")}])}
                  spids: [1189]
                )
              ]
              spids: [1189]
            )
            (While
              cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: url
                      iter_words: [
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name urls>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [1212 1217]
                            )
                          )
                        }
                      ]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:file)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name url>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPound
                                              arg_word: {("*") (Lit_Slash /)}
                                            )
                                          spids: [1228 1233]
                                        )
                                      )
                                    }
                                  spids: [1226]
                                )
                              ]
                              spids: [1224]
                            )
                            (C {(rm)} {(-f)} {(DQ (${ VSub_Name file))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(curl)} {(-f)} {(--ipv4)} {(-Lo)} 
                                              {(DQ (${ VSub_Name file))} {(--connect-timeout)} {(20)} {(--max-time)} {(300)} {(--retry)} {(6)} {(--retry-delay)} {(10)} 
                                              {(DQ (${ VSub_Name url))}
                                            )
                                          ]
                                          negated: True
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ("== Failed to download ") (${ VSub_Name url) 
                                          (". Retrying. ==")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [-1 1289]
                                )
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          children: [
                                            (DBracket
                                              expr: 
                                                (BoolUnary
                                                  op_id: BoolUnary_n
                                                  child: {(DQ (${ VSub_Name hash))}
                                                )
                                            )
                                            (Pipeline
                                              children: [
                                                (C {(validate-hash)} {(DQ (${ VSub_Name file))} 
                                                  {(DQ (${ VSub_Name hash))}
                                                )
                                              ]
                                              negated: True
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ("== Hash validation of ") (${ VSub_Name url) 
                                          (" failed. Retrying. ==")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1303 1336]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolUnary
                                                  op_id: BoolUnary_n
                                                  child: {(DQ (${ VSub_Name hash))}
                                                )
                                            )
                                          terminator: <Op_Semi ";">
                                        )
                                      ]
                                      action: [
                                        (C {(echo)} 
                                          {
                                            (DQ ("== Downloaded ") (${ VSub_Name url) (" (SHA1 = ") 
                                              (${ VSub_Name hash) (") ==")
                                            )
                                          }
                                        )
                                      ]
                                      spids: [-1 1368]
                                    )
                                  ]
                                  else_action: [
                                    (C {(echo)} {(DQ ("== Downloaded ") (${ VSub_Name url) (" =="))})
                                  ]
                                  spids: [1386 1400]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                )
                              ]
                              spids: [1350 1406]
                            )
                          ]
                          spids: [1221 1409]
                        )
                      spids: [1210 1219]
                    )
                  ]
                  spids: [1202 1412]
                )
            )
          ]
          spids: [1170]
        )
      spids: [1166 1169]
    )
    (FuncDef
      name: validate-hash
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1428]
                )
              ]
              spids: [1424]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expected)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [1438]
                )
              ]
              spids: [1434]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:actual) op:Equal spids:[1446])]
              spids: [1444]
            )
            (AndOr
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:actual)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(sha1sum)} {(${ VSub_Name file)})
                                      (C {(awk)} {(SQ <"{ print $1 }">)})
                                    ]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [1451 1465]
                          )
                        }
                      spids: [1450]
                    )
                  ]
                  spids: [1450]
                )
                (C {(true)})
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: {(DQ (${ VSub_Name actual))}
                              right: {(DQ (${ VSub_Name expected))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("== ") (${ VSub_Name file) (" corrupted, sha1 ") (${ VSub_Name actual) 
                          (" doesn't match expected ") (${ VSub_Name expected) (" ==")
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 1493]
                )
              ]
              spids: [-1 1520]
            )
          ]
          spids: [1421]
        )
      spids: [1417 1420]
    )
    (FuncDef
      name: apt-get-install
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:packages)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_At "$@")}])}
                  spids: [1536]
                )
              ]
              spids: [1532]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:installed) op:Equal rhs:{(true)} spids:[1544])]
              spids: [1544]
            )
            (ForEach
              iter_name: package
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name packages>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [1555 1560]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [(C {(dpkg)} {(-s)} {(DQ (${ VSub_Name package))})]
                                  negated: True
                                )
                              terminator: <Op_Amp "&">
                            )
                            (Sentence
                              child: 
                                (SimpleCommand
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: -1
                                      arg_word: {(/dev/null)}
                                      spids: [1582]
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:installed)
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [1589]
                                )
                              ]
                              spids: [1589]
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [-1 1586]
                        )
                      ]
                      spids: [-1 1596]
                    )
                  ]
                  spids: [1564 1599]
                )
              spids: [1553 1562]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name installed))}
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("== ") 
                          (BracedVarSub
                            token: <VSub_Name packages>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [1628 1633]
                          ) (" already installed, skipped apt-get install ") 
                          (BracedVarSub
                            token: <VSub_Name packages>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [1635 1640]
                          ) (" ==")
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1621]
                )
              ]
              spids: [-1 1648]
            )
            (C {(apt-get-update)})
            (Until
              cond: [
                (Sentence
                  child: 
                    (C {(apt-get)} {(-q)} {(-y)} {(-o)} 
                      {(DPkg) (Lit_Other ":") (Lit_Other ":") (Options) (Lit_Other ":") (Lit_Other ":") 
                        (Lit_Other "=") (--force-confold)
                      } {(-o)} 
                      {(DPkg) (Lit_Other ":") (Lit_Other ":") (Options) (Lit_Other ":") (Lit_Other ":") 
                        (Lit_Other "=") (--force-confdef)
                      } {(install)} {($ VSub_At "$@")}
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} 
                      {(DQ ("== install of packages ") ($ VSub_At "$@") (" failed, retrying =="))}
                    )
                    (C {(sleep)} {(5)})
                  ]
                  spids: [1695 1712]
                )
            )
          ]
          spids: [1529]
        )
      spids: [1525 1528]
    )
    (FuncDef
      name: apt-get-update
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("== Refreshing package database =="))})
            (Until
              cond: [(Sentence child:(C {(apt-get)} {(update)}) terminator:<Op_Semi ";">)]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(DQ ("== apt-get update failed, retrying =="))})
                    (C {(sleep)} {(5)})
                  ]
                  spids: [1738 1753]
                )
            )
          ]
          spids: [1721]
        )
      spids: [1717 1720]
    )
    (FuncDef
      name: restart-updated-services
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name AUTO_RESTART_SERVICES>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(true)}
                                        )
                                      spids: [1780 1784]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("Auto restart of services prevented by AUTO_RESTART_SERVICES=") 
                          (${ VSub_Name AUTO_RESTART_SERVICES)
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1796]
                )
              ]
              spids: [-1 1812]
            )
            (C {(echo)} {(DQ ("Restarting services with updated libraries (needrestart -r a)"))})
            (Pipeline
              children: [
                (C {(echo)} {(DQ )})
                (SimpleCommand
                  words: [{(needrestart)} {(-r)} {(a)}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1843])]
                )
                (C {(tee)} {(/dev/null)})
              ]
              negated: False
            )
          ]
          spids: [1768]
        )
      spids: [1764 1767]
    )
    (FuncDef
      name: reboot-if-required
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_e
                                  child: {(DQ (/var/run/reboot-required))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [-1 1880]
                )
              ]
              spids: [-1 1886]
            )
            (C {(echo)} {(DQ ("Reboot is required (/var/run/reboot-required detected)"))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_e
                              child: {(DQ (/var/run/reboot-required.pkgs))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Packages that triggered reboot:"))})
                    (C {(cat)} {(/var/run/reboot-required.pkgs)})
                  ]
                  spids: [-1 1910]
                )
              ]
              spids: [-1 1925]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name AUTO_REBOOT>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(true)}
                                        )
                                      spids: [1938 1942]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Reboot prevented by AUTO_REBOOT=") (${ VSub_Name AUTO_REBOOT))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 1954]
                )
              ]
              spids: [-1 1970]
            )
            (C {(rm)} {(-f)} {(/var/run/reboot-required)})
            (C {(rm)} {(-f)} {(/var/run/reboot-required.pkgs)})
            (C {(echo)} {(DQ ("Triggering reboot"))})
            (C {(init)} {(6)})
          ]
          spids: [1862]
        )
      spids: [1858 1861]
    )
    (FuncDef
      name: auto-upgrade
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobNEqual
                              left: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name AUTO_UPGRADE>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(false)}
                                        )
                                      spids: [2021 2025]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("AUTO_UPGRADE not set to true; won't auto-upgrade"))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 2037]
                )
              ]
              spids: [-1 2050]
            )
            (C {(apt-get-install)} {(unattended-upgrades)} {(needrestart)})
            (C {(unattended-upgrade)} {(--debug)})
            (C {(reboot-if-required)})
            (C {(restart-updated-services)})
          ]
          spids: [2009]
        )
      spids: [2005 2008]
    )
    (FuncDef
      name: install-salt
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(dpkg)} {(-s)} {(salt-minion)})
                      terminator: <Op_Amp "&">
                    )
                    (Sentence
                      child: 
                        (SimpleCommand
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(/dev/null)}
                              spids: [2101]
                            )
                          ]
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("== SaltStack already installed, skipping install step =="))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 2105]
                )
              ]
              spids: [-1 2118]
            )
            (C {(echo)} {(DQ ("== Refreshing package database =="))})
            (Until
              cond: [(Sentence child:(C {(apt-get)} {(update)}) terminator:<Op_Semi ";">)]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(DQ ("== apt-get update failed, retrying =="))})
                    (C {(sleep)} {(5)})
                  ]
                  spids: [2136 2151]
                )
            )
            (C {(mkdir)} {(-p)} {(/var/cache/salt-install)})
            (C {(cd)} {(/var/cache/salt-install)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DEBS)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {(libzmq3_3.2.3) (Lit_Other "+") (dfsg-1) (Lit_Tilde "~") (bpo70) 
                            (Lit_Tilde "~") (dst) (Lit_Other "+") (1_amd64.deb)
                          }
                          {(python-zmq_13.1.0-1) (Lit_Tilde "~") (bpo70) (Lit_Tilde "~") (dst) 
                            (Lit_Other "+") (1_amd64.deb)
                          }
                          {(salt-common_2014.1.13) (Lit_Other "+") (ds-1) (Lit_Tilde "~") (bpo70) 
                            (Lit_Other "+") (1_all.deb)
                          }
                          {(salt-minion_2014.1.13) (Lit_Other "+") (ds-1) (Lit_Tilde "~") (bpo70) 
                            (Lit_Other "+") (1_all.deb)
                          }
                        ]
                      )
                    }
                  spids: [2168]
                )
              ]
              spids: [2168]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:URL_BASE)
                  op: Equal
                  rhs: {(DQ ("https://storage.googleapis.com/kubernetes-release/salt"))}
                  spids: [2213]
                )
              ]
              spids: [2213]
            )
            (ForEach
              iter_name: deb
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name DEBS>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [2227 2232]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} {(DQ (${ VSub_Name deb))} 
                                  {(Lit_Other "]")}
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(download-or-bust)} {(DQ )} 
                              {(DQ (${ VSub_Name URL_BASE) (/) (${ VSub_Name deb))}
                            )
                          ]
                          spids: [-1 2256]
                        )
                      ]
                      spids: [-1 2275]
                    )
                  ]
                  spids: [2236 2278]
                )
              spids: [2225 2234]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/usr/sbin/policy-rc.d)}
                  spids: [2308]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("#!/bin/sh\n") ("echo ") (Right_DoubleQuote "\"") ("Salt shall not start.") 
                        (Right_DoubleQuote "\"") (" >&2\n") ("exit 101\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2312]
                )
              ]
            )
            (C {(chmod)} {(0755)} {(/usr/sbin/policy-rc.d)})
            (ForEach
              iter_name: deb
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name DEBS>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [2338 2343]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ("== Installing ") (${ VSub_Name deb) 
                          (", ignore dependency complaints (will fix later) ==")
                        )
                      }
                    )
                    (C {(dpkg)} {(--skip-same-version)} {(--force-depends)} {(-i)} 
                      {(DQ (${ VSub_Name deb))}
                    )
                  ]
                  spids: [2347 2376]
                )
              spids: [2336 2345]
            )
            (C {(echo)} {(DQ ("== Installing unmet dependencies =="))})
            (Until
              cond: [
                (Sentence
                  child: (C {(apt-get)} {(install)} {(-f)} {(-y)})
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(DQ ("== apt-get install failed, retrying =="))})
                    (C {(sleep)} {(5)})
                  ]
                  spids: [2402 2417]
                )
            )
            (C {(rm)} {(/usr/sbin/policy-rc.d)})
            (C {(echo)} {(DQ ("== Finished installing Salt =="))})
          ]
          spids: [2089]
        )
      spids: [2085 2088]
    )
    (FuncDef
      name: stop-salt-minion
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_e child:{(/etc/init/salt-minion.override)})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return>)]
                  spids: [-1 2461]
                )
              ]
              spids: [-1 2471]
            )
            (SimpleCommand
              words: [{(echo)} {(manual)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/init/salt-minion.override)}
                  spids: [2483]
                )
              ]
            )
            (C {(update-rc.d)} {(salt-minion)} {(disable)})
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(service)} {(salt-minion)} {(status)}]
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2504])]
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(DQ ("salt-minion found running, stopping"))})
                    (C {(service)} {(salt-minion)} {(stop)})
                    (C {(sleep)} {(1)})
                  ]
                  spids: [2508 2530]
                )
            )
          ]
          spids: [2447]
        )
      spids: [2443 2446]
    )
    (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: [2545]
                )
              ]
              spids: [2545]
            )
            (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 2563]
                )
              ]
              spids: [-1 2569]
            )
            (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: [2573 2579]
                      )
                    }
                  spids: [2572]
                )
              ]
              spids: [2572]
            )
            (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: [2583 2587]
                      )
                    }
                  spids: [2582]
                )
              ]
              spids: [2582]
            )
            (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: [2590]
                )
              ]
              spids: [2590]
            )
          ]
          spids: [2542]
        )
      spids: [2538 2541]
    )
    (FuncDef
      name: create-salt-pillar
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(/srv/salt-overlay/pillar)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("instance_prefix: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$INSTANCE_PREFIX"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2643 2659]
                        ) ("'\n") ("node_tags: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$NODE_TAGS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2662 2678]
                        ) ("'\n") ("node_instance_prefix: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$NODE_INSTANCE_PREFIX"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2681 2697]
                        ) ("'\n") ("cluster_cidr: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$CLUSTER_IP_RANGE"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2700 2716]
                        ) ("'\n") ("allocate_node_cidrs: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ALLOCATE_NODE_CIDRS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2719 2735]
                        ) ("'\n") ("non_masquerade_cidr: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$NON_MASQUERADE_CIDR"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2738 2754]
                        ) ("'\n") ("service_cluster_ip_range: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$SERVICE_CLUSTER_IP_RANGE"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2757 2773]
                        ) ("'\n") ("enable_cluster_monitoring: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_CLUSTER_MONITORING"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2776 2792]
                        ) ("'\n") ("enable_cluster_logging: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_CLUSTER_LOGGING"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2795 2811]
                        ) ("'\n") ("enable_cluster_ui: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_CLUSTER_UI"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2814 2830]
                        ) ("'\n") ("enable_node_problem_detector: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_NODE_PROBLEM_DETECTOR"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2833 2849]
                        ) ("'\n") ("enable_l7_loadbalancing: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_L7_LOADBALANCING"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2852 2868]
                        ) ("'\n") ("enable_node_logging: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_NODE_LOGGING"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2871 2887]
                        ) ("'\n") ("enable_metadata_proxy: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_METADATA_PROXY"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2890 2906]
                        ) ("'\n") ("enable_metrics_server: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_METRICS_SERVER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2909 2925]
                        ) ("'\n") ("enable_rescheduler: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_RESCHEDULER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2928 2944]
                        ) ("'\n") ("logging_destination: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$LOGGING_DESTINATION"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2947 2963]
                        ) ("'\n") ("elasticsearch_replicas: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ELASTICSEARCH_LOGGING_REPLICAS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2966 2982]
                        ) ("'\n") ("enable_cluster_dns: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_CLUSTER_DNS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [2985 3001]
                        ) ("'\n") ("enable_cluster_registry: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_CLUSTER_REGISTRY"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3004 3020]
                        ) ("'\n") ("dns_server: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$DNS_SERVER_IP"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3023 3039]
                        ) ("'\n") ("dns_domain: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$DNS_DOMAIN"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3042 3058]
                        ) ("'\n") ("enable_dns_horizontal_autoscaler: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_DNS_HORIZONTAL_AUTOSCALER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3061 3077]
                        ) ("'\n") ("admission_control: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ADMISSION_CONTROL"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3080 3096]
                        ) ("'\n") ("network_provider: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$NETWORK_PROVIDER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3099 3115]
                        ) ("'\n") ("prepull_e2e_images: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$PREPULL_E2E_IMAGES"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3118 3134]
                        ) ("'\n") ("hairpin_mode: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$HAIRPIN_MODE"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3137 3153]
                        ) ("'\n") ("softlockup_panic: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$SOFTLOCKUP_PANIC"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3156 3172]
                        ) ("'\n") ("opencontrail_tag: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$OPENCONTRAIL_TAG"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3175 3191]
                        ) ("'\n") ("opencontrail_kubernetes_tag: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(echo)} {(DQ ($ VSub_Name "$OPENCONTRAIL_KUBERNETES_TAG"))})
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3194 3200]
                        ) ("'\n") ("opencontrail_public_subnet: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(echo)} {(DQ ($ VSub_Name "$OPENCONTRAIL_PUBLIC_SUBNET"))})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3203 3209]
                        ) ("'\n") ("network_policy_provider: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$NETWORK_POLICY_PROVIDER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3212 3228]
                        ) ("'\n") ("enable_manifest_url: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name ENABLE_MANIFEST_URL>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3235 3238]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3231 3250]
                        ) ("'\n") ("manifest_url: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name MANIFEST_URL>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3257 3260]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3253 3272]
                        ) ("'\n") ("manifest_url_header: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name MANIFEST_URL_HEADER>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3279 3282]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3275 3294]
                        ) ("'\n") ("num_nodes: ") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name NUM_NODES>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3301 3304]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3297 3316]
                        ) ("\n") ("e2e_storage_test_environment: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$E2E_STORAGE_TEST_ENVIRONMENT"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3319 3335]
                        ) ("'\n") ("kube_uid: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ (${ VSub_Name KUBE_UID))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3338 3356]
                        ) ("'\n") ("initial_etcd_cluster: '") 
                        (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:{(SQ )})
                                            spids: [3363 3366]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3359 3378]
                        ) ("'\n") ("initial_etcd_cluster_state: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name INITIAL_ETCD_CLUSTER_STATE>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3385 3388]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3381 3400]
                        ) ("'\n") ("ca_cert_bundle_path: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name CA_CERT_BUNDLE_PATH>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3407 3410]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3403 3422]
                        ) ("'\n") ("hostname: ") 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(hostname)} {(-s)})])
                          left_token: <Left_CommandSub "$(">
                          spids: [3425 3429]
                        ) ("\n") ("enable_pod_priority: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name ENABLE_POD_PRIORITY>
                                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                            spids: [3436 3439]
                                          )
                                        )
                                      }
                                    )
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3432 3451]
                        ) ("'\n") ("enable_default_storage_class: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_DEFAULT_STORAGE_CLASS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3454 3470]
                        ) ("'\n") ("kube_proxy_daemonset: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$KUBE_PROXY_DAEMONSET"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3473 3489]
                        ) ("'\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [2636]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                  spids: [2639]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name STORAGE_BACKEND>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3499 3502]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("storage_backend: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$STORAGE_BACKEND"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3520 3536]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3513]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3516]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3508]
                )
              ]
              spids: [-1 3539]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name STORAGE_MEDIA_TYPE>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3549 3552]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("storage_media_type: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$STORAGE_MEDIA_TYPE"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3570 3586]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3563]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3566]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3558]
                )
              ]
              spids: [-1 3589]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3599 3602]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("kube_apiserver_request_timeout_sec: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {
                                                (DQ 
                                                  ($ VSub_Name "$KUBE_APISERVER_REQUEST_TIMEOUT_SEC")
                                                )
                                              }
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3620 3636]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3613]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3616]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3608]
                )
              ]
              spids: [-1 3639]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (C {(Lit_Other "[")} {(-n)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name ADMISSION_CONTROL>
                                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                    spids: [3649 3652]
                                  )
                                )
                              } {(Lit_Other "]")}
                            )
                            (C {(Lit_Other "[")} {(${ VSub_Name ADMISSION_CONTROL)} 
                              {(Lit_Other "=") (Lit_Other "=")} {(Lit_Other "*") (DQ (ImagePolicyWebhook)) (Lit_Other "*")} {(Lit_Other "]")}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ 
                                (
"admission-control-config-file: /etc/admission_controller.config\n"
                                )
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3682]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3685]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3677]
                )
              ]
              spids: [-1 3690]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBELET_PORT>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3700 3703]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("kubelet_port: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$KUBELET_PORT"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3721 3737]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3714]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3717]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3709]
                )
              ]
              spids: [-1 3740]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name ETCD_IMAGE>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3750 3753]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("etcd_docker_tag: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$ETCD_IMAGE"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3771 3787]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3764]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3767]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3759]
                )
              ]
              spids: [-1 3790]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name ETCD_DOCKER_REPOSITORY>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3800 3803]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("etcd_docker_repository: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$ETCD_DOCKER_REPOSITORY"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3821 3837]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3814]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3817]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3809]
                )
              ]
              spids: [-1 3840]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name ETCD_VERSION>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3850 3853]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("etcd_version: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$ETCD_VERSION"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3871 3887]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3864]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3867]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3859]
                )
              ]
              spids: [-1 3890]
            )
            (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: [3900 3903]
                                        )
                                      )
                                    }
                                )
                              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: [3911 3914]
                                            )
                                          )
                                        }
                                    )
                                  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: [3922 3925]
                                                )
                                              )
                                            }
                                        )
                                      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: [3933 3936]
                                                )
                                              )
                                            }
                                        )
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: {(DQ ("etcd_over_ssl: 'true'\n"))}
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3947]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3950]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3942]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: -1
                      body: {(DQ ("etcd_over_ssl: 'false'\n"))}
                      do_expansion: True
                      here_end: EOF
                      was_filled: True
                      spids: [3960]
                    )
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                      spids: [3963]
                    )
                  ]
                )
              ]
              spids: [3955 3968]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name ETCD_QUORUM_READ>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [3978 3981]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("etcd_quorum_read: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name ETCD_QUORUM_READ))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [3999 4017]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [3992]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [3995]
                        )
                      ]
                    )
                  ]
                  spids: [-1 3987]
                )
              ]
              spids: [-1 4020]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name APISERVER_TEST_ARGS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4034 4037]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("apiserver_test_args: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$APISERVER_TEST_ARGS"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4055 4071]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4048]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4051]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4043]
                )
              ]
              spids: [-1 4074]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name API_SERVER_TEST_LOG_LEVEL>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4084 4087]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("api_server_test_log_level: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {(DQ ($ VSub_Name "$API_SERVER_TEST_LOG_LEVEL"))}
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4105 4121]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4098]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4101]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4093]
                )
              ]
              spids: [-1 4124]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBELET_TEST_ARGS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4134 4137]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("kubelet_test_args: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$KUBELET_TEST_ARGS"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4155 4171]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4148]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4151]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4143]
                )
              ]
              spids: [-1 4174]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBELET_TEST_LOG_LEVEL>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4184 4187]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("kubelet_test_log_level: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$KUBELET_TEST_LOG_LEVEL"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4205 4221]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4198]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4201]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4193]
                )
              ]
              spids: [-1 4224]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name DOCKER_TEST_LOG_LEVEL>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4234 4237]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("docker_test_log_level: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$DOCKER_TEST_LOG_LEVEL"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4255 4271]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4248]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4251]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4243]
                )
              ]
              spids: [-1 4274]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name CONTROLLER_MANAGER_TEST_ARGS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4284 4287]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("controller_manager_test_args: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {(DQ ($ VSub_Name "$CONTROLLER_MANAGER_TEST_ARGS"))}
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4305 4321]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4298]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4301]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4293]
                )
              ]
              spids: [-1 4324]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name CONTROLLER_MANAGER_TEST_LOG_LEVEL>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4334 4337]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("controller_manager_test_log_level: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {
                                                (DQ 
                                                  ($ VSub_Name "$CONTROLLER_MANAGER_TEST_LOG_LEVEL")
                                                )
                                              }
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4355 4371]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4348]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4351]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4343]
                )
              ]
              spids: [-1 4374]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name SCHEDULER_TEST_ARGS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4384 4387]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("scheduler_test_args: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$SCHEDULER_TEST_ARGS"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4405 4421]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4398]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4401]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4393]
                )
              ]
              spids: [-1 4424]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name SCHEDULER_TEST_LOG_LEVEL>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4434 4437]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("scheduler_test_log_level: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$SCHEDULER_TEST_LOG_LEVEL"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4455 4471]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4448]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4451]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4443]
                )
              ]
              spids: [-1 4474]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBEPROXY_TEST_ARGS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4484 4487]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("kubeproxy_test_args: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$KUBEPROXY_TEST_ARGS"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4505 4521]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4498]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4501]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4493]
                )
              ]
              spids: [-1 4524]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name KUBEPROXY_TEST_LOG_LEVEL>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4534 4537]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("kubeproxy_test_log_level: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$KUBEPROXY_TEST_LOG_LEVEL"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4555 4571]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4548]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4551]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4543]
                )
              ]
              spids: [-1 4574]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ (${ VSub_Name ENABLE_CLUSTER_REGISTRY))}
                                  right: {(true)}
                                )
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: {(DQ (${ VSub_Name CLUSTER_REGISTRY_DISK))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("cluster_registry_disk_type: gce\n") 
                                ("cluster_registry_disk_size: ") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(convert-bytes-gce-kube)} 
                                                          {
                                                            (${ VSub_Name CLUSTER_REGISTRY_DISK_SIZE)
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub "$(">
                                                  spids: [4624 4630]
                                                )
                                              }
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4621 4641]
                                ) ("\n") ("cluster_registry_disk_name: ") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(${ VSub_Name CLUSTER_REGISTRY_DISK)})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4644 4660]
                                ) ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4613]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4616]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4608]
                )
              ]
              spids: [-1 4663]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name TERMINATED_POD_GC_THRESHOLD>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4673 4676]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("terminated_pod_gc_threshold: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {(DQ (${ VSub_Name TERMINATED_POD_GC_THRESHOLD))}
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4694 4712]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4687]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4690]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4682]
                )
              ]
              spids: [-1 4715]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name ENABLE_CUSTOM_METRICS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4725 4728]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("enable_custom_metrics: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name ENABLE_CUSTOM_METRICS))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4746 4764]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4739]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4742]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4734]
                )
              ]
              spids: [-1 4767]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name NODE_LABELS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4777 4780]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("node_labels: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name NODE_LABELS))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4798 4816]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4791]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4794]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4786]
                )
              ]
              spids: [-1 4819]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name NODE_TAINTS>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4829 4832]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("node_taints: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name NODE_TAINTS))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4850 4868]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4843]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4846]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4838]
                )
              ]
              spids: [-1 4871]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name EVICTION_HARD>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [4881 4884]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("eviction_hard: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name EVICTION_HARD))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4902 4920]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4895]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4898]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4890]
                )
              ]
              spids: [-1 4923]
            )
            (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: {(false)}
                                        )
                                      spids: [4931 4935]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("enable_cluster_autoscaler: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name ENABLE_CLUSTER_AUTOSCALER))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4959 4977]
                                ) ("'\n") ("autoscaler_mig_config: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name AUTOSCALER_MIG_CONFIG))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [4980 4998]
                                ) ("'\n") ("autoscaler_expander_config: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name AUTOSCALER_EXPANDER_CONFIG))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [5001 5019]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [4952]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [4955]
                        )
                      ]
                    )
                  ]
                  spids: [-1 4947]
                )
              ]
              spids: [-1 5022]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name SCHEDULING_ALGORITHM_PROVIDER>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [5032 5035]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("scheduling_algorithm_provider: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} 
                                              {(DQ (${ VSub_Name SCHEDULING_ALGORITHM_PROVIDER))}
                                            )
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [5053 5071]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [5046]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [5049]
                        )
                      ]
                    )
                  ]
                  spids: [-1 5041]
                )
              ]
              spids: [-1 5074]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name ENABLE_IP_ALIASES>
                                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                spids: [5084 5087]
                              )
                            )
                          } {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("enable_ip_aliases: '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_IP_ALIASES"))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [5105 5121]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [5098]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [5101]
                        )
                      ]
                    )
                  ]
                  spids: [-1 5093]
                )
              ]
              spids: [-1 5124]
            )
          ]
          spids: [2616]
        )
      spids: [2610 2615]
    )
    (FuncDef
      name: convert-bytes-gce-kube
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:storage_space)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [5169]
                )
              ]
              spids: [5165]
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ (${ VSub_Name storage_space))})
                (C {(sed)} {(-e)} {(SQ <"s/^\\([0-9]\\+\\)\\([A-Z]\\)\\?i\\?B$/\\1\\2/g">)} {(-e)} 
                  {(SQ <"s/\\([A-Z]\\)$/\\1i/">)}
                )
              ]
              negated: False
            )
          ]
          spids: [5162]
        )
      spids: [5156 5161]
    )
    (FuncDef
      name: create-salt-kubelet-auth
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubelet_kubeconfig_file)
                  op: Equal
                  rhs: {(DQ (/srv/salt-overlay/salt/kubelet/bootstrap-kubeconfig))}
                  spids: [5229]
                )
              ]
              spids: [5225]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} 
                          {(DQ (${ VSub_Name kubelet_kubeconfig_file))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(mkdir)} {(-p)} {(/srv/salt-overlay/salt/kubelet)})
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (Sentence
                              child: (C {(umask)} {(077)})
                              terminator: <Op_Semi ";">
                            )
                            (SimpleCommand
                              words: [{(cat)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(DQ (${ VSub_Name kubelet_kubeconfig_file))}
                                  spids: [5271]
                                )
                                (HereDoc
                                  op_id: Redir_DLess
                                  fd: -1
                                  body: 
                                    {
                                      (DQ ("apiVersion: v1\n") ("kind: Config\n") ("users:\n") 
                                        ("- name: kubelet\n") ("  user:\n") ("    client-certificate: ") (${ VSub_Name KUBELET_CERT_PATH) ("\n") ("    client-key: ") 
                                        (${ VSub_Name KUBELET_KEY_PATH) ("\n") ("clusters:\n") ("- name: local\n") ("  cluster:\n") ("    server: https://") 
                                        (${ VSub_Name KUBERNETES_MASTER_NAME) ("\n") ("    certificate-authority: ") (${ VSub_Name CA_CERT_BUNDLE_PATH) ("\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: [5279]
                                )
                              ]
                            )
                          ]
                        )
                      spids: [5262 5316]
                    )
                  ]
                  spids: [-1 5252]
                )
              ]
              spids: [-1 5319]
            )
          ]
          spids: [5222]
        )
      spids: [5216 5221]
    )
    (FuncDef
      name: create-salt-kubeproxy-auth
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_proxy_kubeconfig_file)
                  op: Equal
                  rhs: {(DQ (/srv/salt-overlay/salt/kube-proxy/kubeconfig))}
                  spids: [5349]
                )
              ]
              spids: [5345]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} 
                          {(DQ (${ VSub_Name kube_proxy_kubeconfig_file))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(mkdir)} {(-p)} {(/srv/salt-overlay/salt/kube-proxy)})
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (Sentence
                              child: (C {(umask)} {(077)})
                              terminator: <Op_Semi ";">
                            )
                            (SimpleCommand
                              words: [{(cat)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(DQ (${ VSub_Name kube_proxy_kubeconfig_file))}
                                  spids: [5391]
                                )
                                (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_BUNDLE) ("\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: [5399]
                                )
                              ]
                            )
                          ]
                        )
                      spids: [5382 5426]
                    )
                  ]
                  spids: [-1 5372]
                )
              ]
              spids: [-1 5429]
            )
          ]
          spids: [5342]
        )
      spids: [5336 5341]
    )
    (FuncDef
      name: split-commas
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {($ VSub_Number "$1")})
                (C {(tr)} {(DQ (","))} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))})
              ]
              negated: False
            )
          ]
          spids: [5440]
        )
      spids: [5434 5439]
    )
    (FuncDef
      name: try-download-release
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:server_binary_tar_urls)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(split-commas)} {(DQ (${ VSub_Name SERVER_BINARY_TAR_URL))})
                                  ]
                                )
                              left_token: <Left_CommandSub "$(">
                              spids: [5487 5495]
                            )
                          }
                        ]
                      )
                    }
                  spids: [5484]
                )
              ]
              spids: [5480]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:server_binary_tar)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name server_binary_tar_urls>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                          spids: [5506 5514]
                        )
                      )
                    }
                  spids: [5504]
                )
              ]
              spids: [5500]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SERVER_BINARY_TAR_HASH>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [5525 5528]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:server_binary_tar_hash)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name SERVER_BINARY_TAR_HASH))}
                          spids: [5541]
                        )
                      ]
                      spids: [5537]
                    )
                  ]
                  spids: [-1 5534]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ("Downloading binary release sha1 (not found in env)"))})
                (C {(download-or-bust)} {(DQ )} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name server_binary_tar_urls>
                        bracket_op: (WholeArray op_id:Lit_At)
                        suffix_op: 
                          (PatSub
                            pat: {(.tar.gz)}
                            replace: {(.tar.gz.sha1)}
                            do_all: False
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [5565 5574]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:server_binary_tar_hash)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(DQ (${ VSub_Name server_binary_tar) (.sha1))})]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [5583 5592]
                          )
                        }
                      spids: [5582]
                    )
                  ]
                  spids: [5578]
                )
              ]
              spids: [5549 5595]
            )
            (C {(echo)} 
              {
                (DQ ("Downloading binary release tar (") 
                  (BracedVarSub
                    token: <VSub_Name server_binary_tar_urls>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [5603 5608]
                  ) (")")
                )
              }
            )
            (C {(download-or-bust)} {(DQ (${ VSub_Name server_binary_tar_hash))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name server_binary_tar_urls>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [5622 5627]
                  )
                )
              }
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:salt_tar_urls)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(split-commas)} {(DQ (${ VSub_Name SALT_TAR_URL))})]
                                )
                              left_token: <Left_CommandSub "$(">
                              spids: [5639 5647]
                            )
                          }
                        ]
                      )
                    }
                  spids: [5636]
                )
              ]
              spids: [5632]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:salt_tar)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name salt_tar_urls>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                          suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                          spids: [5658 5666]
                        )
                      )
                    }
                  spids: [5656]
                )
              ]
              spids: [5652]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name SALT_TAR_HASH>
                                      suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                      spids: [5677 5680]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      flags: ["'-r'"]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:salt_tar_hash)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name SALT_TAR_HASH))}
                          spids: [5693]
                        )
                      ]
                      spids: [5689]
                    )
                  ]
                  spids: [-1 5686]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ("Downloading Salt tar sha1 (not found in env)"))})
                (C {(download-or-bust)} {(DQ )} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name salt_tar_urls>
                        bracket_op: (WholeArray op_id:Lit_At)
                        suffix_op: 
                          (PatSub
                            pat: {(.tar.gz)}
                            replace: {(.tar.gz.sha1)}
                            do_all: False
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [5717 5726]
                      )
                    )
                  }
                )
                (Assignment
                  keyword: Assign_Local
                  flags: ["'-r'"]
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:salt_tar_hash)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(DQ (${ VSub_Name salt_tar) (.sha1))})]
                              )
                            left_token: <Left_CommandSub "$(">
                            spids: [5735 5744]
                          )
                        }
                      spids: [5734]
                    )
                  ]
                  spids: [5730]
                )
              ]
              spids: [5701 5747]
            )
            (C {(echo)} 
              {
                (DQ ("Downloading Salt tar (") 
                  (BracedVarSub
                    token: <VSub_Name salt_tar_urls>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [5755 5760]
                  ) (")")
                )
              }
            )
            (C {(download-or-bust)} {(DQ (${ VSub_Name salt_tar_hash))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name salt_tar_urls>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [5774 5779]
                  )
                )
              }
            )
            (C {(echo)} {(DQ ("Unpacking Salt tree and checking integrity of binary release tar"))})
            (C {(rm)} {(-rf)} {(kubernetes)})
            (AndOr
              children: [
                (C {(tar)} {(xzf)} {(DQ (${ VSub_Name salt_tar))})
                (SimpleCommand
                  words: [{(tar)} {(tzf)} {(DQ (${ VSub_Name server_binary_tar))}]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[5820])]
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [5468]
        )
      spids: [5462 5467]
    )
    (FuncDef
      name: download-release
      body: 
        (BraceGroup
          children: [
            (Until
              cond: [(Sentence child:(C {(try-download-release)}) terminator:<Op_Semi ";">)]
              body: 
                (DoGroup
                  children: [
                    (C {(sleep)} {(15)})
                    (C {(echo)} {(DQ ("Couldn't download release. Retrying..."))})
                  ]
                  spids: [5845 5860]
                )
            )
            (C {(echo)} {(DQ ("Running release install script"))})
            (C {(kubernetes/saltbase/install.sh)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name SERVER_BINARY_TAR_URL>
                    suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                    spids: [5874 5879]
                  )
                )
              }
            )
          ]
          spids: [5833]
        )
      spids: [5827 5832]
    )
    (FuncDef
      name: fix-apt-sources
      body: 
        (BraceGroup
          children: [
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\|">) 
                  ("^deb.*http://http.debian.net/debian| s/^/#/")
                )
              } {(/etc/apt/sources.list)}
            )
            (C {(sed)} {(-i)} {(-e)} 
              {
                (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\|">) 
                  ("^deb.*http://ftp.debian.org/debian| s/^/#/")
                )
              } {(/etc/apt/sources.list.d/backports.list)}
            )
          ]
          spids: [5891]
        )
      spids: [5885 5890]
    )
    (FuncDef
      name: salt-run-local
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("file_client: local\n") ("file_roots:\n") ("  base:\n") ("    - /srv/salt\n"))
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [5935]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/salt/minion.d/local.conf)}
                  spids: [5938]
                )
              ]
            )
          ]
          spids: [5930]
        )
      spids: [5924 5929]
    )
    (FuncDef
      name: salt-debug-log
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: {(DQ ("log_level: debug\n") ("log_level_logfile: debug\n"))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [5959]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/salt/minion.d/log-level-debug.conf)}
                  spids: [5962]
                )
              ]
            )
          ]
          spids: [5954]
        )
      spids: [5948 5953]
    )
    (FuncDef
      name: salt-node-role
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubelet_bootstrap_kubeconfig)
                  op: Equal
                  rhs: {(DQ (/srv/salt-overlay/salt/kubelet/bootstrap-kubeconfig))}
                  spids: [5983]
                )
              ]
              spids: [5979]
            )
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubelet_kubeconfig)
                  op: Equal
                  rhs: {(DQ (/srv/salt-overlay/salt/kubelet/kubeconfig))}
                  spids: [5993]
                )
              ]
              spids: [5989]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("grains:\n") ("  roles:\n") ("    - kubernetes-pool\n") ("  cloud: gce\n") 
                        ("  api_servers: '") (${ VSub_Name KUBERNETES_MASTER_NAME) ("'\n") 
                        ("  kubelet_bootstrap_kubeconfig: /var/lib/kubelet/bootstrap-kubeconfig\n") ("  kubelet_kubeconfig: /var/lib/kubelet/kubeconfig\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [6001]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/salt/minion.d/grains.conf)}
                  spids: [6004]
                )
              ]
            )
          ]
          spids: [5976]
        )
      spids: [5970 5975]
    )
    (FuncDef
      name: env-to-grains
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:key)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [6030]
                )
              ]
              spids: [6028]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:env_key)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {($ VSub_Name "$key")})
                                  (C {(tr)} {(SQ <"[:lower:]">)} {(SQ <"[:upper:]">)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [6037 6053]
                      )
                    }
                  spids: [6036]
                )
              ]
              spids: [6034]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name env_key>
                        prefix_op: VSub_Bang
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{})
                        spids: [6059 6063]
                      )
                    }
                  spids: [6058]
                )
              ]
              spids: [6056]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name value))})
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("  ") (${ VSub_Name key) (": '") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ (${ VSub_Name value))})
                                            (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub "$(">
                                  spids: [6101 6119]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [6090]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/salt/minion.d/grains.conf)}
                          spids: [6093]
                        )
                      ]
                    )
                  ]
                  spids: [-1 6081]
                )
              ]
              spids: [-1 6122]
            )
          ]
          spids: [6025]
        )
      spids: [6021 6024]
    )
    (FuncDef
      name: node-docker-opts
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name EXTRA_DOCKER_OPTS>
                                      suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )})
                                      spids: [6143 6146]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOCKER_OPTS)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name DOCKER_OPTS>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [6157 6160]
                                ) (" ") (${ VSub_Name EXTRA_DOCKER_OPTS)
                              )
                            }
                          spids: [6155]
                        )
                      ]
                      spids: [6155]
                    )
                  ]
                  spids: [-1 6152]
                )
              ]
              spids: [-1 6168]
            )
            (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: [6187 6190]
                                    )
                                  )
                                }
                            )
                        )
                      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: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name DOCKER_OPTS>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [6211 6214]
                                ) (" --registry-mirror=") (${ VSub_Name DOCKER_REGISTRY_MIRROR_URL)
                              )
                            }
                          spids: [6209]
                        )
                      ]
                      spids: [6209]
                    )
                  ]
                  spids: [-1 6196]
                )
              ]
              spids: [-1 6222]
            )
          ]
          spids: [6133]
        )
      spids: [6127 6132]
    )
    (FuncDef
      name: salt-grains
      body: 
        (BraceGroup
          children: [
            (C {(env-to-grains)} {(DQ (docker_opts))})
            (C {(env-to-grains)} {(DQ (docker_root))})
            (C {(env-to-grains)} {(DQ (kubelet_root))})
            (C {(env-to-grains)} {(DQ (feature_gates))})
          ]
          spids: [6233]
        )
      spids: [6227 6232]
    )
    (FuncDef
      name: configure-salt
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(/etc/salt/minion.d)})
            (C {(salt-run-local)})
            (C {(salt-node-role)})
            (C {(node-docker-opts)})
            (C {(salt-grains)})
            (C {(install-salt)})
            (C {(stop-salt-minion)})
          ]
          spids: [6272]
        )
      spids: [6266 6271]
    )
    (FuncDef
      name: run-salt
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("== Calling Salt =="))})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[6320])]
              spids: [6318]
            )
            (ForEach
              iter_name: i
              iter_words: [{(Lit_LBrace "{") (0..6) (Lit_RBrace "}")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(salt-call)} {(--retcode-passthrough)} {(--local)} {(state.highstate)})
                        (AndOr
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rc)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [6348]
                                )
                              ]
                              spids: [6348]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rc)
                                  op: Equal
                                  rhs: {($ VSub_QMark "$?")}
                                  spids: [6353]
                                )
                              ]
                              spids: [6353]
                            )
                          ]
                          op_id: Op_DPipe
                        )
                      ]
                      op_id: Op_DAmp
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ (${ VSub_Name rc))}
                                      right: {(0)}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [-1 6374]
                        )
                      ]
                      spids: [-1 6382]
                    )
                  ]
                  spids: [6335 6385]
                )
              spids: [6329 6333]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("Salt failed to run repeatedly"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[6394])]
            )
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {(DQ (${ VSub_Name rc))}
            )
          ]
          spids: [6308]
        )
      spids: [6302 6307]
    )
    (FuncDef
      name: run-user-script
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(curl-metadata)} {(k8s-user-startup-script)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(DQ (${ VSub_Name INSTALL_DIR) (/k8s-user-script.sh))}
                              spids: [6424]
                            )
                          ]
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:user_script)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(cat)} {(DQ (${ VSub_Name INSTALL_DIR) (/k8s-user-script.sh))})
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [6438 6447]
                              )
                            }
                          spids: [6437]
                        )
                      ]
                      spids: [6437]
                    )
                  ]
                  spids: [-1 6434]
                )
              ]
              spids: [-1 6450]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_z
                                  child: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name user_script>
                                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{})
                                        spids: [6461 6464]
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(chmod)} {(u) (Lit_Other "+") (x)} 
                      {(DQ (${ VSub_Name INSTALL_DIR) (/k8s-user-script.sh))}
                    )
                    (C {(echo)} {(DQ ("== running user startup script =="))})
                    (C {(DQ (${ VSub_Name INSTALL_DIR) (/k8s-user-script.sh))})
                  ]
                  spids: [-1 6469]
                )
              ]
              spids: [-1 6501]
            )
          ]
          spids: [6415]
        )
      spids: [6409 6414]
    )
    (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: [6511 6514]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("Support for debian master has been removed"))}) (C {(exit)} {(1)})]
          spids: [-1 6526]
        )
      ]
      spids: [-1 6540]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(DQ (${ VSub_Name is_push))}))
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("== kube-up node config starting =="))})
            (C {(set-broken-motd)})
            (C {(config-ip-firewall)})
            (C {(ensure-basic-networking)})
            (C {(fix-apt-sources)})
            (C {(ensure-install-dir)})
            (C {(ensure-packages)})
            (C {(set-kube-env)})
            (C {(auto-upgrade)})
            (C {(ensure-local-disks)})
            (C {(create-node-pki)})
            (C {(create-salt-pillar)})
            (C {(create-salt-kubelet-auth)})
            (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: [6609 6612]
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(create-salt-kubeproxy-auth)})]
                  spids: [-1 6624]
                )
              ]
              spids: [-1 6630]
            )
            (C {(download-release)})
            (C {(configure-salt)})
            (C {(remove-docker-artifacts)})
            (C {(run-salt)})
            (C {(reset-motd)})
            (C {(run-user-script)})
            (C {(echo)} {(DQ ("== kube-up node config done =="))})
          ]
          spids: [-1 6558]
        )
      ]
      else_action: [
        (C {(echo)} {(DQ ("== kube-push node config starting =="))})
        (C {(ensure-basic-networking)})
        (C {(ensure-install-dir)})
        (C {(set-kube-env)})
        (C {(create-salt-pillar)})
        (C {(download-release)})
        (C {(reset-motd)})
        (C {(run-salt)})
        (C {(echo)} {(DQ ("== kube-push node config done =="))})
      ]
      spids: [6658 6695]
    )
  ]
)