(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("Note: This assumes that the 'types_swagger_doc_generated.go' file has been\n") 
                ("updated for all API group versions. If you are unsure, please run\n") ("hack/update-generated-swagger-docs.sh first.\n")
              )
            }
          do_expansion: True
          here_end: __EOF__
          was_filled: True
          spids: [72]
        )
      ]
    )
    (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: [81 89]
              ) (/..)
            }
          spids: [80]
        )
      ]
      spids: [80]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SWAGGER_ROOT_DIR)
          op: Equal
          rhs: {(DQ (${ VSub_Name KUBE_ROOT) (/api/swagger-spec))}
          spids: [92]
        )
      ]
      spids: [92]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))})
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (golang) (Lit_Other ":") (Lit_Other ":") (setup_env)})
    (C {(make)} {(-C)} {(DQ (${ VSub_Name KUBE_ROOT))} {(Lit_VarLike "WHAT=") (cmd/kube-apiserver)})
    (FuncDef
      name: cleanup
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_n
                      child: 
                        {
                          (BracedVarSub
                            token: <VSub_Name APISERVER_PID>
                            suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{})
                            spids: [146 149]
                          )
                        }
                    )
                )
                (SimpleCommand
                  words: [{(kill)} {(${ VSub_Name APISERVER_PID)}]
                  redirects: [
                    (Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[161])
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [164]
                    )
                  ]
                )
              ]
              op_id: Op_DAmp
            )
            (C 
              {(kube) (Lit_Other ":") (Lit_Other ":") (etcd) (Lit_Other ":") (Lit_Other ":") (cleanup)}
            )
            (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} 
              {(DQ ("Clean up complete"))}
            )
          ]
          spids: [139]
        )
      spids: [133 138]
    )
    (C {(trap)} {(cleanup)} {(EXIT)} {(SIGINT)})
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (golang) (Lit_Other ":") (Lit_Other ":") (setup_env)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:apiserver)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C 
                        {(kube) (Lit_Other ":") (Lit_Other ":") (util) (Lit_Other ":") (Lit_Other ":") 
                          (find-binary)
                        } {(DQ (kube-apiserver))}
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [213 225]
              )
            }
          spids: [212]
        )
      ]
      spids: [212]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(mktemp)} {(-d)} {(/tmp/update-swagger-spec.XXXX)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [229 235]
              )
            }
          spids: [228]
        )
      ]
      spids: [228]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ETCD_HOST)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name ETCD_HOST>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(127.0.0.1)})
                spids: [238 242]
              )
            }
          spids: [237]
        )
      ]
      spids: [237]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ETCD_PORT)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name ETCD_PORT>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(2379)})
                spids: [245 249]
              )
            }
          spids: [244]
        )
      ]
      spids: [244]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:API_PORT)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name API_PORT>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(8050)})
                spids: [252 256]
              )
            }
          spids: [251]
        )
      ]
      spids: [251]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:API_HOST)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name API_HOST>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(127.0.0.1)})
                spids: [259 263]
              )
            }
          spids: [258]
        )
      ]
      spids: [258]
    )
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (etcd) (Lit_Other ":") (Lit_Other ":") (start)})
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} 
      {(DQ ("Starting kube-apiserver"))}
    )
    (Sentence
      child: 
        (SimpleCommand
          words: [
            {(DQ (${ VSub_Name KUBE_OUTPUT_HOSTBIN) (/kube-apiserver))}
            {(--insecure-bind-address) (Lit_Other "=") (DQ (${ VSub_Name API_HOST))}
            {(--bind-address) (Lit_Other "=") (DQ (${ VSub_Name API_HOST))}
            {(--insecure-port) (Lit_Other "=") (DQ (${ VSub_Name API_PORT))}
            {(--etcd-servers) (Lit_Other "=") 
              (DQ ("http://") (${ VSub_Name ETCD_HOST) (":") (${ VSub_Name ETCD_PORT))
            }
            {(--advertise-address) (Lit_Other "=") (DQ (10.10.10.10))}
            {(--cert-dir) (Lit_Other "=") (DQ (${ VSub_Name TMP_DIR) (/certs))}
            {(--runtime-config) (Lit_Other "=") 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {(DQ (${ VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS))})
                          (C {(sed)} {(-E)} {(SQ <"s|[[:blank:]]+|,|g">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [369 387]
              )
            }
            {(--service-cluster-ip-range) (Lit_Other "=") (DQ (10.0.0.0/24))}
          ]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: -1
              arg_word: {(/tmp/swagger-api-server.log)}
              spids: [397]
            )
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[400])
          ]
        )
      terminator: <Op_Amp "&">
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:APISERVER_PID)
          op: Equal
          rhs: {($ VSub_Bang "$!")}
          spids: [405]
        )
      ]
      spids: [405]
    )
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (util) (Lit_Other ":") (Lit_Other ":") (wait_for_url)} 
      {(DQ (${ VSub_Name API_HOST) (":") (${ VSub_Name API_PORT) (/healthz))} {(DQ ("apiserver: "))}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SWAGGER_API_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name API_HOST) (":") (${ VSub_Name API_PORT) (/swaggerapi/))}
          spids: [433]
        )
      ]
      spids: [433]
    )
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} 
      {(DQ ("Updating "))} {(${ VSub_Name SWAGGER_ROOT_DIR)}
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ":") (Lit_Other ":") (util) (Lit_Other ":") (Lit_Other ":") 
          (fetch-swagger-spec)
        }
      ]
      more_env: [
        (env_pair
          name: SWAGGER_API_PATH
          val: {(DQ (${ VSub_Name SWAGGER_API_PATH))}
          spids: [463]
        )
        (env_pair
          name: SWAGGER_ROOT_DIR
          val: {(DQ (${ VSub_Name SWAGGER_ROOT_DIR))}
          spids: [470]
        )
        (env_pair
          name: VERSIONS
          val: {(DQ (${ VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS))}
          spids: [477]
        )
        (env_pair
          name: KUBE_NONSERVER_GROUP_VERSIONS
          val: {(DQ (${ VSub_Name KUBE_NONSERVER_GROUP_VERSIONS))}
          spids: [484]
        )
      ]
    )
    (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} 
      {(DQ (SUCCESS))}
    )
  ]
)