(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SSH_OPTS)
          op: Equal
          rhs: {(DQ ('-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oLogLevel=ERROR -C'))}
          spids: [56]
        )
      ]
      spids: [56]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_ROOT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [69 77]
              ) (/../..)
            }
          spids: [68]
        )
      ]
      spids: [68]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:ROOT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [83 91]
              )
            }
          spids: [82]
        )
      ]
      spids: [80]
    )
    (C {(source)} 
      {
        (DQ (${ VSub_Name ROOT) (/) 
          (BracedVarSub
            token: <VSub_Name KUBE_CONFIG_FILE>
            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (config-default.sh))})
            spids: [100 106]
          )
        )
      }
    )
    (C {(source)} {(DQ ($ VSub_Name '$KUBE_ROOT') (/cluster/common.sh))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBECTL_PATH)
          op: Equal
          rhs: {(${ VSub_Name KUBE_ROOT) (/cluster/centos/binaries/kubectl)}
          spids: [118]
        )
      ]
      spids: [118]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_TEMP)
          op: Equal
          rhs: {(DQ ('~/kube_temp'))}
          spids: [128]
        )
      ]
      spids: [128]
    )
    (FuncDef
      name: detect-masters
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KUBE_MASTER_IP_ADDRESSES)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [153]
                )
              ]
              spids: [153]
            )
            (ForEach
              iter_name: master
              iter_words: [{(${ VSub_Name MASTERS)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBE_MASTER_IP_ADDRESSES)
                          op: PlusEqual
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name master>
                                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')})
                                        spids: [175 179]
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [172]
                        )
                      ]
                      spids: [172]
                    )
                  ]
                  spids: [169 184]
                )
              spids: [163 167]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('KUBE_MASTERS: ') (${ VSub_Name MASTERS))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[196])]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('KUBE_MASTER_IP_ADDRESSES: [') 
                    (BracedVarSub
                      token: <VSub_Name KUBE_MASTER_IP_ADDRESSES>
                      bracket_op: (WholeArray op_id:Arith_Star)
                      spids: [204 209]
                    ) (']')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[213])]
            )
          ]
          spids: [150]
        )
      spids: [144 149]
    )
    (FuncDef
      name: detect-nodes
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KUBE_NODE_IP_ADDRESSES)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [231]
                )
              ]
              spids: [231]
            )
            (ForEach
              iter_name: node
              iter_words: [{(${ VSub_Name NODES)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBE_NODE_IP_ADDRESSES)
                          op: PlusEqual
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name node>
                                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')})
                                        spids: [253 257]
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [250]
                        )
                      ]
                      spids: [250]
                    )
                  ]
                  spids: [247 262]
                )
              spids: [241 245]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('KUBE_NODE_IP_ADDRESSES: [') 
                    (BracedVarSub
                      token: <VSub_Name KUBE_NODE_IP_ADDRESSES>
                      bracket_op: (WholeArray op_id:Arith_Star)
                      spids: [269 274]
                    ) (']')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[278])]
            )
          ]
          spids: [228]
        )
      spids: [222 227]
    )
    (FuncDef
      name: verify-prereqs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal spids:[298])]
              spids: [296]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[301])]
              spids: [301]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(ssh-add)} {(-L)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 1
                      arg_word: {(/dev/null)}
                      spids: [309]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [313]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rc)
                      op: Equal
                      rhs: {(DQ ($ VSub_QMark '$?'))}
                      spids: [319]
                    )
                  ]
                  spids: [319]
                )
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_eq
                              left: {(DQ (${ VSub_Name rc))}
                              right: {(2)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(eval)}
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: (CommandList children:[(C {(ssh-agent)})])
                              left_token: <Left_CommandSub '$('>
                              spids: [352 354]
                            )
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [357]
                        )
                      ]
                    )
                    (C {(trap-add)} {(DQ ('kill ') (${ VSub_Name SSH_AGENT_PID))} {(EXIT)})
                  ]
                  spids: [16777215 346]
                )
              ]
              spids: [16777215 374]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[377])]
              spids: [377]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(ssh-add)} {(-L)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 1
                      arg_word: {(/dev/null)}
                      spids: [385]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [389]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rc)
                      op: Equal
                      rhs: {(DQ ($ VSub_QMark '$?'))}
                      spids: [395]
                    )
                  ]
                  spids: [395]
                )
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_eq
                              left: {(DQ (${ VSub_Name rc))}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(AndOr children:[(C {(ssh-add)}) (C {(true)})] op_id:Op_DPipe)]
                  spids: [16777215 422]
                )
              ]
              spids: [16777215 436]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[439])]
              spids: [439]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{(ssh-add)} {(-L)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 1
                                  arg_word: {(/dev/null)}
                                  spids: [455]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [459]
                                )
                              ]
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Could not find or add an SSH identity.'))})
                    (C {(echo)} {(DQ ('Please start ssh-agent, add your identity, and retry.'))})
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 464]
                )
              ]
              spids: [16777215 486]
            )
          ]
          spids: [293]
        )
      spids: [287 292]
    )
    (FuncDef
      name: trap-add
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:handler)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [503]
                )
              ]
              spids: [501]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:signal)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 2>
                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(EXIT)})
                          spids: [513 517]
                        )
                      )
                    }
                  spids: [511]
                )
              ]
              spids: [509]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:cur) op:Equal spids:[523])]
              spids: [521]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cur)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(eval)} 
                                  {
                                    (DQ ("sh -c 'echo ") 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\$'>
                                      ) ("3' -- ") 
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [(C {(trap)} {(-p)} {(${ VSub_Name signal)})]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [536 544]
                                      )
                                    )
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [529 546]
                        )
                      )
                    }
                  spids: [527]
                )
              ]
              spids: [527]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name cur))})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:handler)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name cur) ('; ') (${ VSub_Name handler))}
                          spids: [568]
                        )
                      ]
                      spids: [568]
                    )
                  ]
                  spids: [16777215 565]
                )
              ]
              spids: [16777215 580]
            )
            (C {(trap)} {(DQ (${ VSub_Name handler))} {(${ VSub_Name signal)})
          ]
          spids: [498]
        )
      spids: [494 497]
    )
    (FuncDef
      name: validate-cluster
      body: 
        (BraceGroup
          children: [
            (C {(set)} {(Lit_Other '+') (e)})
            (C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/validate-cluster.sh))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_ne
                              left: {(DQ ($ VSub_QMark '$?'))}
                              right: {(DQ (0))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: master
                      iter_words: [{(${ VSub_Name MASTERS)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [(C {(troubleshoot-master)} {(${ VSub_Name master)})]
                          spids: [664 674]
                        )
                      spids: [658 662]
                    )
                    (ForEach
                      iter_name: node
                      iter_words: [{(${ VSub_Name NODES)}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [(C {(troubleshoot-node)} {(${ VSub_Name node)})]
                          spids: [688 698]
                        )
                      spids: [682 686]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 650]
                )
              ]
              spids: [16777215 706]
            )
            (C {(set)} {(-e)})
          ]
          spids: [608]
        )
      spids: [602 607]
    )
    (FuncDef
      name: kube-up
      body: 
        (BraceGroup
          children: [
            (C {(make-ca-cert)})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:num_infra) op:Equal rhs:{(0)} spids:[734])]
              spids: [732]
            )
            (ForEach
              iter_name: master
              iter_words: [{(${ VSub_Name MASTERS)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (C {(provision-master)} {(DQ (${ VSub_Name master))} 
                      {(DQ (infra) (${ VSub_Name num_infra))}
                    )
                    (C {(let)} {(Lit_Other '+') (Lit_Other '+') (num_infra)})
                  ]
                  spids: [749 775]
                )
              spids: [743 747]
            )
            (ForEach
              iter_name: master
              iter_words: [{(${ VSub_Name MASTERS)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [(C {(post-provision-master)} {(DQ (${ VSub_Name master))})]
                  spids: [790 802]
                )
              spids: [784 788]
            )
            (ForEach
              iter_name: node
              iter_words: [{(${ VSub_Name NODES)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [(C {(provision-node)} {(DQ (${ VSub_Name node))})]
                  spids: [817 829]
                )
              spids: [811 815]
            )
            (C {(detect-masters)})
            (C {(export)} {(Lit_VarLike 'CONTEXT=') (DQ (centos))})
            (C {(export)} 
              {(Lit_VarLike 'KUBE_SERVER=') 
                (DQ ('http://') (${ VSub_Name MASTER_ADVERTISE_ADDRESS) (':8080'))
              }
            )
            (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/common.sh))})
            (C {(get-password)})
            (C {(create-kubeconfig)})
          ]
          spids: [725]
        )
      spids: [719 724]
    )
    (FuncDef
      name: kube-down
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: master
              iter_words: [{(${ VSub_Name MASTERS)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [(C {(tear-down-master)} {(${ VSub_Name master)})]
                  spids: [907 917]
                )
              spids: [901 905]
            )
            (ForEach
              iter_name: node
              iter_words: [{(${ VSub_Name NODES)}]
              do_arg_iter: False
              body: (DoGroup children:[(C {(tear-down-node)} {(${ VSub_Name node)})] spids:[932 942])
              spids: [926 930]
            )
          ]
          spids: [893]
        )
      spids: [887 892]
    )
    (FuncDef
      name: troubleshoot-master
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] Troubleshooting on master ') ($ VSub_Number '$1'))})
            (Assignment
              keyword: Assign_Local
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:required_daemon)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {(DQ (kube-apiserver))}
                          {(DQ (kube-controller-manager))}
                          {(DQ (kube-scheduler))}
                        ]
                      )
                    }
                  spids: [972]
                )
              ]
              spids: [968]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:daemon) op:Equal spids:[990])]
              spids: [988]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:daemon_status) op:Equal spids:[995])]
              spids: [993]
            )
            (C {(printf)} {(DQ ('%-24s %-10s ') (Lit_Other '\\') (n))} {(DQ (PROCESS))} {(DQ (STATUS))})
            (ForEach
              iter_name: daemon
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name required_daemon>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [1022 1027]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[1036])]
                      spids: [1034]
                    )
                    (AndOr
                      children: [
                        (SimpleCommand
                          words: [
                            {(kube-ssh)}
                            {(DQ (${ VSub_Number 1))}
                            {(DQ ('sudo systemctl is-active ') (${ VSub_Name daemon))}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [1055]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [1058]
                            )
                          ]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:rc)
                              op: Equal
                              rhs: {(DQ ($ VSub_QMark '$?'))}
                              spids: [1063]
                            )
                          ]
                          spids: [1063]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_ne
                                      left: {(DQ (${ VSub_Name rc))}
                                      right: {(DQ (0))}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:daemon_status)
                                  op: Equal
                                  rhs: {(DQ (inactive))}
                                  spids: [1091]
                                )
                              ]
                              spids: [1091]
                            )
                          ]
                          spids: [16777215 1088]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:daemon_status)
                              op: Equal
                              rhs: {(DQ (active))}
                              spids: [1100]
                            )
                          ]
                          spids: [1100]
                        )
                      ]
                      spids: [1097 1106]
                    )
                    (C {(printf)} {(DQ ('%-24s %s') (Lit_Other '\\') (n))} {(${ VSub_Name daemon)} 
                      {(${ VSub_Name daemon_status)}
                    )
                  ]
                  spids: [1031 1126]
                )
              spids: [1020 1029]
            )
            (C {(printf)} {(DQ (Lit_Other '\\') (n))})
          ]
          spids: [953]
        )
      spids: [947 952]
    )
    (FuncDef
      name: troubleshoot-node
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] Troubleshooting on node ') (${ VSub_Number 1))})
            (Assignment
              keyword: Assign_Local
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:required_daemon)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [{(DQ (kube-proxy))} {(DQ (kubelet))} {(DQ (docker))} {(DQ (flannel))}]
                      )
                    }
                  spids: [1166]
                )
              ]
              spids: [1162]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:daemon) op:Equal spids:[1188])]
              spids: [1186]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:daemon_status) op:Equal spids:[1193])]
              spids: [1191]
            )
            (C {(printf)} {(DQ ('%-24s %-10s ') (Lit_Other '\\') (n))} {(DQ (PROCESS))} {(DQ (STATUS))})
            (ForEach
              iter_name: daemon
              iter_words: [
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name required_daemon>
                      bracket_op: (WholeArray op_id:Lit_At)
                      spids: [1220 1225]
                    )
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{(0)} spids:[1234])]
                      spids: [1232]
                    )
                    (AndOr
                      children: [
                        (SimpleCommand
                          words: [
                            {(kube-ssh)}
                            {(DQ (${ VSub_Number 1))}
                            {(DQ ('sudo systemctl is-active ') (${ VSub_Name daemon))}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [1253]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [1256]
                            )
                          ]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:rc)
                              op: Equal
                              rhs: {(DQ ($ VSub_QMark '$?'))}
                              spids: [1261]
                            )
                          ]
                          spids: [1261]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_ne
                                      left: {(DQ (${ VSub_Name rc))}
                                      right: {(DQ (0))}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:daemon_status)
                                  op: Equal
                                  rhs: {(DQ (inactive))}
                                  spids: [1289]
                                )
                              ]
                              spids: [1289]
                            )
                          ]
                          spids: [16777215 1286]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:daemon_status)
                              op: Equal
                              rhs: {(DQ (active))}
                              spids: [1298]
                            )
                          ]
                          spids: [1298]
                        )
                      ]
                      spids: [1295 1304]
                    )
                    (C {(printf)} {(DQ ('%-24s %s') (Lit_Other '\\') (n))} {(${ VSub_Name daemon)} 
                      {(${ VSub_Name daemon_status)}
                    )
                  ]
                  spids: [1229 1324]
                )
              spids: [1218 1227]
            )
            (C {(printf)} {(DQ (Lit_Other '\\') (n))})
          ]
          spids: [1145]
        )
      spids: [1139 1144]
    )
    (FuncDef
      name: tear-down-master
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] tear-down-master on ') ($ VSub_Number '$1'))})
            (ForEach
              iter_name: service_name
              iter_words: [{(etcd)} {(kube-apiserver)} {(kube-controller-manager)} {(kube-scheduler)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:service_file)
                          op: Equal
                          rhs: {(DQ (/usr/lib/systemd/system/) (${ VSub_Name service_name) (.service))}
                          spids: [1375]
                        )
                      ]
                      spids: [1375]
                    )
                    (C {(kube-ssh)} {(DQ ($ VSub_Number '$1'))} 
                      {
                        (DQ (' ') ('        if [[ -f ') ($ VSub_Name '$service_file') (' ]]; then ') 
                          ('          sudo systemctl stop ') ($ VSub_Name '$service_name') ('; ') ('          sudo systemctl disable ') ($ VSub_Name '$service_name') 
                          ('; ') ('          sudo rm -f ') ($ VSub_Name '$service_file') ('; ') ('        fi')
                        )
                      }
                    )
                  ]
                  spids: [1372 1414]
                )
              spids: [1361 1370]
            )
            (C {(kube-ssh)} {(DQ (${ VSub_Number 1))} {(DQ ('sudo rm -rf /opt/kubernetes'))})
            (C {(kube-ssh)} {(DQ (${ VSub_Number 1))} {(DQ ('sudo rm -rf /srv/kubernetes'))})
            (C {(kube-ssh)} {(DQ (${ VSub_Number 1))} {(DQ ('sudo rm -rf ') (${ VSub_Name KUBE_TEMP))})
            (C {(kube-ssh)} {(DQ (${ VSub_Number 1))} {(DQ ('sudo rm -rf /var/lib/etcd'))})
          ]
          spids: [1346]
        )
      spids: [1340 1345]
    )
    (FuncDef
      name: tear-down-node
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] tear-down-node on ') ($ VSub_Number '$1'))})
            (ForEach
              iter_name: service_name
              iter_words: [{(kube-proxy)} {(kubelet)} {(docker)} {(flannel)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:service_file)
                          op: Equal
                          rhs: {(DQ (/usr/lib/systemd/system/) (${ VSub_Name service_name) (.service))}
                          spids: [1512]
                        )
                      ]
                      spids: [1512]
                    )
                    (C {(kube-ssh)} {(DQ ($ VSub_Number '$1'))} 
                      {
                        (DQ (' ') ('        if [[ -f ') ($ VSub_Name '$service_file') (' ]]; then ') 
                          ('          sudo systemctl stop ') ($ VSub_Name '$service_name') ('; ') ('          sudo systemctl disable ') ($ VSub_Name '$service_name') 
                          ('; ') ('          sudo rm -f ') ($ VSub_Name '$service_file') ('; ') ('        fi')
                        )
                      }
                    )
                  ]
                  spids: [1509 1551]
                )
              spids: [1498 1507]
            )
            (C {(kube-ssh)} {(DQ ($ VSub_Number '$1'))} {(DQ ('sudo rm -rf /run/flannel'))})
            (C {(kube-ssh)} {(DQ ($ VSub_Number '$1'))} {(DQ ('sudo rm -rf /opt/kubernetes'))})
            (C {(kube-ssh)} {(DQ ($ VSub_Number '$1'))} {(DQ ('sudo rm -rf /srv/kubernetes'))})
            (C {(kube-ssh)} {(DQ ($ VSub_Number '$1'))} {(DQ ('sudo rm -rf ') (${ VSub_Name KUBE_TEMP))})
          ]
          spids: [1483]
        )
      spids: [1477 1482]
    )
    (FuncDef
      name: make-ca-cert
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] make-ca-cert'))})
            (C {(bash)} {(DQ (${ VSub_Name ROOT) (/../saltbase/salt/generate-cert/make-ca-cert.sh))} 
              {(DQ (${ VSub_Name MASTER_ADVERTISE_IP))} 
              {
                (DQ ('IP:') (${ VSub_Name MASTER_ADVERTISE_IP) (',IP:') 
                  (BracedVarSub
                    token: <VSub_Name SERVICE_CLUSTER_IP_RANGE>
                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('.*')})
                    spids: [1643 1647]
                  ) 
                  (
'.1,DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local'
                  )
                )
              }
            )
          ]
          spids: [1612]
        )
      spids: [1606 1611]
    )
    (FuncDef
      name: provision-master
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] Provision master on ') ($ VSub_Number '$1'))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:master)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1703]
                )
              ]
              spids: [1701]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:master_ip)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name master>
                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')})
                          spids: [1713 1717]
                        )
                      )
                    }
                  spids: [1711]
                )
              ]
              spids: [1709]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:etcd_name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [1723]
                )
              ]
              spids: [1721]
            )
            (C {(ensure-setup-dir)} {(DQ (${ VSub_Name master))})
            (C {(ensure-etcd-cert)} {(DQ (${ VSub_Name etcd_name))} {(DQ (${ VSub_Name master_ip))})
            (C {(kube-scp)} {(DQ (${ VSub_Name master))} 
              {
                (DQ (${ VSub_Name ROOT) ('/ca-cert ') (${ VSub_Name ROOT) ('/binaries/master ') 
                  (${ VSub_Name ROOT) ('/master ') (${ VSub_Name ROOT) ('/config-default.sh ') (${ VSub_Name ROOT) (/util.sh)
                )
              } {(DQ (${ VSub_Name KUBE_TEMP))}
            )
            (C {(kube-scp)} {(DQ (${ VSub_Name master))} 
              {
                (DQ (${ VSub_Name ROOT) ('/etcd-cert/ca.pem ') ('    ') (${ VSub_Name ROOT) 
                  ('/etcd-cert/client.pem ') ('    ') (${ VSub_Name ROOT) ('/etcd-cert/client-key.pem ') ('    ') (${ VSub_Name ROOT) 
                  (/etcd-cert/server-) (${ VSub_Name etcd_name) ('.pem ') ('    ') (${ VSub_Name ROOT) (/etcd-cert/server-) 
                  (${ VSub_Name etcd_name) ('-key.pem ') ('    ') (${ VSub_Name ROOT) (/etcd-cert/peer-) (${ VSub_Name etcd_name) ('.pem ') ('    ') 
                  (${ VSub_Name ROOT) (/etcd-cert/peer-) (${ VSub_Name etcd_name) (-key.pem)
                )
              } {(DQ (${ VSub_Name KUBE_TEMP) (/etcd-cert))}
            )
            (C {(kube-ssh)} {(DQ (${ VSub_Name master))} 
              {
                (DQ (' ') ('    sudo rm -rf /opt/kubernetes/bin; ') ('    sudo cp -r ') 
                  (${ VSub_Name KUBE_TEMP) ('/master/bin /opt/kubernetes; ') ('    sudo mkdir -p /srv/kubernetes/; sudo cp -f ') 
                  (${ VSub_Name KUBE_TEMP) ('/ca-cert/* /srv/kubernetes/; ') ('    sudo mkdir -p /srv/kubernetes/etcd; sudo cp -f ') 
                  (${ VSub_Name KUBE_TEMP) ('/etcd-cert/* /srv/kubernetes/etcd/; ') ('    sudo chmod -R +x /opt/kubernetes/bin; ') 
                  ('    sudo ln -sf /opt/kubernetes/bin/* /usr/local/bin/; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) ('/master/scripts/etcd.sh ') (${ VSub_Name etcd_name) (' ') 
                  (${ VSub_Name master_ip) (' ') (${ VSub_Name ETCD_INITIAL_CLUSTER) ('; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) 
                  ('/master/scripts/apiserver.sh ') (${ VSub_Name master_ip) (' ') (${ VSub_Name ETCD_SERVERS) (' ') (${ VSub_Name SERVICE_CLUSTER_IP_RANGE) 
                  (' ') (${ VSub_Name ADMISSION_CONTROL) ('; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) 
                  ('/master/scripts/controller-manager.sh ') (${ VSub_Name MASTER_ADVERTISE_ADDRESS) ('; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) 
                  ('/master/scripts/scheduler.sh ') (${ VSub_Name MASTER_ADVERTISE_ADDRESS)
                )
              }
            )
          ]
          spids: [1690]
        )
      spids: [1684 1689]
    )
    (FuncDef
      name: post-provision-master
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] Post provision master on ') ($ VSub_Number '$1'))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:master)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2005]
                )
              ]
              spids: [2003]
            )
            (C {(kube-ssh)} {(DQ (${ VSub_Name master))} 
              {
                (DQ (' ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) ('/master/scripts/flannel.sh ') 
                  (${ VSub_Name ETCD_SERVERS) (' ') (${ VSub_Name FLANNEL_NET) ('; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) 
                  (/master/scripts/post-etcd.sh)
                )
              }
            )
          ]
          spids: [1992]
        )
      spids: [1986 1991]
    )
    (FuncDef
      name: provision-node
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('[INFO] Provision node on ') ($ VSub_Number '$1'))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:node)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2096]
                )
              ]
              spids: [2094]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:node_ip)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name node>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')})
                        spids: [2103 2107]
                      )
                    }
                  spids: [2102]
                )
              ]
              spids: [2100]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dns_ip)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name DNS_SERVER_IP>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')})
                        spids: [2113 2117]
                      )
                    }
                  spids: [2112]
                )
              ]
              spids: [2110]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dns_domain)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name DNS_DOMAIN>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*@')})
                        spids: [2123 2127]
                      )
                    }
                  spids: [2122]
                )
              ]
              spids: [2120]
            )
            (C {(ensure-setup-dir)} {(${ VSub_Name node)})
            (C {(kube-scp)} {(DQ (${ VSub_Name node))} 
              {
                (DQ (${ VSub_Name ROOT) ('/binaries/node ') (${ VSub_Name ROOT) ('/node ') 
                  (${ VSub_Name ROOT) ('/config-default.sh ') (${ VSub_Name ROOT) (/util.sh)
                )
              } {(DQ (${ VSub_Name KUBE_TEMP))}
            )
            (C {(kube-scp)} {(DQ (${ VSub_Name node))} 
              {
                (DQ (${ VSub_Name ROOT) ('/etcd-cert/ca.pem ') ('    ') (${ VSub_Name ROOT) 
                  ('/etcd-cert/client.pem ') ('    ') (${ VSub_Name ROOT) (/etcd-cert/client-key.pem)
                )
              } {(DQ (${ VSub_Name KUBE_TEMP) (/etcd-cert))}
            )
            (C {(kube-ssh)} {(DQ (${ VSub_Name node))} 
              {
                (DQ (' ') ('    rm -rf /opt/kubernetes/bin; ') ('    sudo cp -r ') 
                  (${ VSub_Name KUBE_TEMP) ('/node/bin /opt/kubernetes; ') ('    sudo chmod -R +x /opt/kubernetes/bin; ') 
                  ('    sudo mkdir -p /srv/kubernetes/etcd; sudo cp -f ') (${ VSub_Name KUBE_TEMP) ('/etcd-cert/* /srv/kubernetes/etcd/; ') 
                  ('    sudo ln -s /opt/kubernetes/bin/* /usr/local/bin/; ') ('    sudo mkdir -p /srv/kubernetes/etcd; sudo cp -f ') (${ VSub_Name KUBE_TEMP) 
                  ('/etcd-cert/* /srv/kubernetes/etcd/; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) ('/node/scripts/flannel.sh ') (${ VSub_Name ETCD_SERVERS) 
                  (' ') (${ VSub_Name FLANNEL_NET) ('; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) 
                  ('/node/scripts/docker.sh ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name DOCKER_OPTS) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('; ') ('    sudo bash ') (${ VSub_Name KUBE_TEMP) ('/node/scripts/kubelet.sh ') 
                  (${ VSub_Name MASTER_ADVERTISE_ADDRESS) (' ') (${ VSub_Name node_ip) (' ') (${ VSub_Name dns_ip) (' ') (${ VSub_Name dns_domain) ('; ') 
                  ('    sudo bash ') (${ VSub_Name KUBE_TEMP) ('/node/scripts/proxy.sh ') (${ VSub_Name MASTER_ADVERTISE_ADDRESS)
                )
              }
            )
          ]
          spids: [2083]
        )
      spids: [2077 2082]
    )
    (FuncDef
      name: ensure-setup-dir
      body: 
        (BraceGroup
          children: [
            (C {(kube-ssh)} {(DQ (${ VSub_Number 1))} 
              {
                (DQ ('mkdir -p ') (${ VSub_Name KUBE_TEMP) ('; ') ('                   mkdir -p ') 
                  (${ VSub_Name KUBE_TEMP) ('/etcd-cert; ') ('                   sudo mkdir -p /opt/kubernetes/bin; ') 
                  ('                   sudo mkdir -p /opt/kubernetes/cfg')
                )
              }
            )
          ]
          spids: [2321]
        )
      spids: [2315 2320]
    )
    (FuncDef
      name: ensure-etcd-cert
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:etcd_name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [2379]
                )
              ]
              spids: [2377]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:master_ip)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [2387]
                )
              ]
              spids: [2385]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cert_dir)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name ROOT) (/etcd-cert))}
                  spids: [2395]
                )
              ]
              spids: [2393]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_r
                                      child: {(DQ (${ VSub_Name cert_dir) (/client.pem))}
                                    )
                                )
                              right: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_r
                                      child: {(DQ (${ VSub_Name cert_dir) (/client-key.pem))}
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(generate-etcd-cert)} {(DQ (${ VSub_Name cert_dir))} 
                      {(DQ (${ VSub_Name master_ip))} {(DQ (client))} {(DQ (client))}
                    )
                  ]
                  spids: [16777215 2436]
                )
              ]
              spids: [16777215 2462]
            )
            (C {(generate-etcd-cert)} {(DQ (${ VSub_Name cert_dir))} {(DQ (${ VSub_Name master_ip))} 
              {(DQ (server))} {(DQ (server-) (${ VSub_Name etcd_name))}
            )
            (C {(generate-etcd-cert)} {(DQ (${ VSub_Name cert_dir))} {(DQ (${ VSub_Name master_ip))} 
              {(DQ (peer))} {(DQ (peer-) (${ VSub_Name etcd_name))}
            )
          ]
          spids: [2374]
        )
      spids: [2368 2373]
    )
    (FuncDef
      name: kube-ssh
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [2534]
                )
              ]
              spids: [2532]
            )
            (C {(shift)})
            (SimpleCommand
              words: [
                {(ssh)}
                {(${ VSub_Name SSH_OPTS)}
                {(-t)}
                {(DQ (${ VSub_Name host))}
                {(DQ ($ VSub_At '$@'))}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [2561]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2564])
              ]
            )
          ]
          spids: [2529]
        )
      spids: [2523 2528]
    )
    (FuncDef
      name: kube-scp
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [2584]
                )
              ]
              spids: [2582]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {(ArrayLiteralPart words:[{($ VSub_Number '$2')}])}
                  spids: [2592]
                )
              ]
              spids: [2590]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dst)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [2600]
                )
              ]
              spids: [2598]
            )
            (C {(scp)} {(-r)} {(${ VSub_Name SSH_OPTS)} 
              {
                (BracedVarSub
                  token: <VSub_Name src>
                  bracket_op: (WholeArray op_id:Arith_Star)
                  spids: [2614 2619]
                )
              } {(DQ (${ VSub_Name host) (':') (${ VSub_Name dst))}
            )
          ]
          spids: [2579]
        )
      spids: [2573 2578]
    )
    (FuncDef
      name: get-password
      body: 
        (BraceGroup
          children: [
            (C {(load-or-gen-kube-basicauth)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: (BoolUnary op_id:BoolUnary_z child:{(DQ (${ VSub_Name KUBE_USER))})
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_z
                                  child: {(DQ (${ VSub_Name KUBE_PASSWORD))}
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBE_USER)
                          op: Equal
                          rhs: {(admin)}
                          spids: [2690]
                        )
                      ]
                      spids: [2690]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:KUBE_PASSWORD)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(python)} {(-c)} 
                                        {
                                          (SQ <'import string,random; \\\n'> 
                                            <
'      print("".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(16)))'
                                            >
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2695 2704]
                              )
                            }
                          spids: [2694]
                        )
                      ]
                      spids: [2694]
                    )
                  ]
                  spids: [16777215 2687]
                )
              ]
              spids: [16777215 2707]
            )
          ]
          spids: [2656]
        )
      spids: [2652 2655]
    )
  ]
)