(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          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: [82 90]
              ) (/..)
            }
          spids: [81]
        )
      ]
      spids: [81]
    )
    (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: [93]
        )
      ]
      spids: [93]
    )
    (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: [147 150]
                          )
                        }
                    )
                )
                (SimpleCommand
                  words: [{(kill)} {(${ VSub_Name APISERVER_PID)}]
                  redirects: [
                    (Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[162])
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [165]
                    )
                  ]
                )
              ]
              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: [140]
        )
      spids: [134 139]
    )
    (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: [214 226]
              )
            }
          spids: [213]
        )
      ]
      spids: [213]
    )
    (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: [230 236]
              )
            }
          spids: [229]
        )
      ]
      spids: [229]
    )
    (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: [239 243]
              )
            }
          spids: [238]
        )
      ]
      spids: [238]
    )
    (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: [246 250]
              )
            }
          spids: [245]
        )
      ]
      spids: [245]
    )
    (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: [253 257]
              )
            }
          spids: [252]
        )
      ]
      spids: [252]
    )
    (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: [260 264]
              )
            }
          spids: [259]
        )
      ]
      spids: [259]
    )
    (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: [370 388]
              )
            }
            {(--service-cluster-ip-range) (Lit_Other '=') (DQ (10.0.0.0/24))}
          ]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(/tmp/swagger-api-server.log)}
              spids: [398]
            )
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[401])
          ]
        )
      terminator: <Op_Amp '&'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:APISERVER_PID)
          op: Equal
          rhs: {($ VSub_Bang '$!')}
          spids: [406]
        )
      ]
      spids: [406]
    )
    (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: [434]
        )
      ]
      spids: [434]
    )
    (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: [464]
        )
        (env_pair
          name: SWAGGER_ROOT_DIR
          val: {(DQ (${ VSub_Name SWAGGER_ROOT_DIR))}
          spids: [471]
        )
        (env_pair
          name: VERSIONS
          val: {(DQ (${ VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS))}
          spids: [478]
        )
        (env_pair
          name: KUBE_NONSERVER_GROUP_VERSIONS
          val: {(DQ (${ VSub_Name KUBE_NONSERVER_GROUP_VERSIONS))}
          spids: [485]
        )
      ]
    )
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
      {(DQ (SUCCESS))}
    )
  ]
)