(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (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: [64 72]
              ) (/../..)
            }
          spids: [63]
        )
      ]
      spids: [63]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/federation/cluster/common.sh))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_VERSION)
          op: Equal
          rhs: {(DQ (${ VSub_Number 1))}
          spids: [88]
        )
      ]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:host_kubectl)
          op: Equal
          rhs: 
            {
              (DQ (${ VSub_Name KUBE_ROOT) ('/cluster/kubectl.sh --context=') 
                (${ VSub_Name HOST_CLUSTER_CONTEXT) (' --namespace=') (${ VSub_Name FEDERATION_NAMESPACE)
              )
            }
          spids: [96]
        )
      ]
      spids: [96]
    )
    (FuncDef
      name: upgrade
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:project)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBE_PROJECT>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonHyphen
                              arg_word: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name PROJECT>
                                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{})
                                    spids: [130 133]
                                  )
                                }
                            )
                          spids: [127 134]
                        )
                      )
                    }
                  spids: [125]
                )
              ]
              spids: [121]
            )
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_registry)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBE_REGISTRY>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonHyphen
                              arg_word: {(gcr.io) (Lit_Slash /) (${ VSub_Name project)}
                            )
                          spids: [144 152]
                        )
                      )
                    }
                  spids: [142]
                )
              ]
              spids: [138]
            )
            (Assignment
              keyword: Assign_Local
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:image_version)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name kube_registry) ('/hyperkube-amd64:') 
                        (${ VSub_Name KUBE_VERSION)
                      )
                    }
                  spids: [160]
                )
              ]
              spids: [156]
            )
            (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
              {
                (DQ ('Upgrading federation control plane ') (${ VSub_Name FEDERATION_NAME) 
                  (' with image ') (${ VSub_Name image_version)
                )
              }
            )
            (C {(${ VSub_Name host_kubectl)} {(set)} {(image)} {(deployment/federation-apiserver)} 
              {(Lit_VarLike 'apiserver=') (${ VSub_Name image_version)}
            )
            (C {(${ VSub_Name host_kubectl)} {(set)} {(image)} 
              {(deployment/federation-controller-manager)} {(controller-manager) (Lit_Other '=') (${ VSub_Name image_version)}
            )
          ]
          spids: [118]
        )
      spids: [112 117]
    )
    (C {(upgrade)})
  ]
)