(CommandList
  children: [
    (FuncDef
      name: enable-accounting
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(/etc/systemd/system.conf.d/)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("[Manager]\n") ("DefaultCPUAccounting=yes\n") 
                        ("DefaultMemoryAccounting=yes\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [62]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/systemd/system.conf.d/kubernetes-accounting.conf)}
                  spids: [65]
                )
              ]
            )
            (C {(systemctl)} {(daemon-reload)})
          ]
          spids: [50]
        )
      spids: [44 49]
    )
    (FuncDef
      name: prepare-package-manager
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Prepare package manager"))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$CUSTOM_FEDORA_REPOSITORY_URL"))} 
                          {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ("fastestmirror=True"))}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/etc/dnf/dnf.conf)}
                          spids: [122]
                        )
                      ]
                    )
                  ]
                  spids: [-1 113]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CUSTOM_FEDORA_REPOSITORY_URL)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name CUSTOM_FEDORA_REPOSITORY_URL>
                              suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /)})
                              spids: [136 140]
                            )
                          )
                        }
                      spids: [134]
                    )
                  ]
                  spids: [134]
                )
                (C {(sed)} {(-i)} {(-e)} {(DQ ("/^metalink=/d"))} 
                  {(/etc/yum.repos.d/) (Lit_Other "*") (.repo)}
                )
                (C {(sed)} {(-i)} {(-e)} 
                  {
                    (DQ ("s@^#baseurl=http://download.fedoraproject.org/pub/fedora@baseurl=") 
                      ($ VSub_Name "$CUSTOM_FEDORA_REPOSITORY_URL") ("@")
                    )
                  } {(/etc/yum.repos.d/) (Lit_Other "*") (.repo)}
                )
              ]
              spids: [127 176]
            )
          ]
          spids: [85]
        )
      spids: [79 84]
    )
    (FuncDef
      name: add-volume-support
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Adding nfs volume support"))})
            (C {(dnf)} {(install)} {(-y)} {(nfs-utils)})
          ]
          spids: [188]
        )
      spids: [182 187]
    )
    (FuncDef
      name: write-salt-config
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:role)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [225]
                )
              ]
              spids: [223]
            )
            (C {(mkdir)} {(-p)} {(/etc/salt/minion.d)})
            (C {(mkdir)} {(-p)} {(/srv/salt-overlay/pillar)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("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: [260 276]
                        ) ("'\n") ("cert_ip: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$MASTER_IP"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [279 295]
                        ) ("'\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: [298 314]
                        ) ("'\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: [317 333]
                        ) ("'\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: [336 352]
                        ) ("'\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: [355 371]
                        ) ("'\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: [374 390]
                        ) ("'\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: [393 409]
                        ) ("'\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: [412 428]
                        ) ("'\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: [431 447]
                        ) ("'\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: [450 466]
                        ) ("'\n") ("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: [469 485]
                        ) ("'\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: [488 504]
                        ) ("'\n") ("enable_cpu_cfs_quota: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_CPU_CFS_QUOTA"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [507 523]
                        ) ("'\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: [526 542]
                        ) ("'\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: [545 561]
                        ) ("'\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: [564 580]
                        ) ("'\n") ("opencontrail_kubernetes_tag: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$OPENCONTRAIL_KUBERNETES_TAG"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [583 599]
                        ) ("'\n") ("opencontrail_public_subnet: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$OPENCONTRAIL_PUBLIC_SUBNET"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [602 618]
                        ) ("'\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: [621 637]
                        ) ("'\n") ("enable_hostpath_provisioner: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$ENABLE_HOSTPATH_PROVISIONER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [640 656]
                        ) ("'\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [253]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                  spids: [256]
                )
              ]
            )
            (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: [666 669]
                              )
                            )
                          } {(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: [687 705]
                                ) ("'\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [680]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(/srv/salt-overlay/pillar/cluster-params.sls)}
                          spids: [683]
                        )
                      ]
                    )
                  ]
                  spids: [-1 675]
                )
              ]
              spids: [-1 707]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: {(DQ ("log_level: warning\n") ("log_level_logfile: warning\n"))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [713]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/salt/minion.d/log-level-debug.conf)}
                  spids: [716]
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: 
                    {
                      (DQ ("grains:\n") ("  node_ip: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$MASTER_IP"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [733 749]
                        ) ("'\n") ("  publicAddressOverride: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$MASTER_IP"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [752 768]
                        ) ("'\n") ("  network_mode: openvswitch\n") ("  networkInterfaceName: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$NETWORK_IF_NAME"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [772 788]
                        ) ("'\n") ("  api_servers: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$MASTER_IP"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [791 807]
                        ) ("'\n") ("  kubelet_kubeconfig: /srv/salt-overlay/salt/kubelet/kubeconfig\n") ("  cloud: vagrant\n") 
                        ("  roles:\n") ("    - ") ($ VSub_Name "$role") ("\n") ("  runtime_config: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$RUNTIME_CONFIG"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [816 832]
                        ) ("'\n") ("  docker_opts: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$DOCKER_OPTS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [835 851]
                        ) ("'\n") ("  master_extra_sans: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$MASTER_EXTRA_SANS"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [854 870]
                        ) ("'\n") ("  keep_host_etcd: true\n") ("  kube_user: '") 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name "$KUBE_USER"))})
                                    (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [874 890]
                        ) ("'\n")
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [725]
                )
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/salt/minion.d/grains.conf)}
                  spids: [728]
                )
              ]
            )
          ]
          spids: [220]
        )
      spids: [214 219]
    )
    (FuncDef
      name: release_not_found
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ("It looks as if you don't have a compiled version of Kubernetes.  If you"))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[910])]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ("are running from a clone of the git repo, please run 'make quick-release'."))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[920])]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ("Note that this requires having Docker installed.  If you are running "))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[930])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ("from a release tarball, something is wrong.  Look at "))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[940])]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ 
                    (
"http://kubernetes.io/ for information on how to contact the development team for help."
                    )
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[950])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [901]
        )
      spids: [895 900]
    )
    (FuncDef
      name: install-salt
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:server_binary_tar)
                  op: Equal
                  rhs: {(DQ (/vagrant/server/kubernetes-server-linux-amd64.tar.gz))}
                  spids: [970]
                )
              ]
              spids: [970]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_f
                                  child: {(DQ ($ VSub_Name "$server_binary_tar"))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:server_binary_tar)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (
/vagrant/_output/release-tars/kubernetes-server-linux-amd64.tar.gz
                                )
                              )
                            }
                          spids: [994]
                        )
                      ]
                      spids: [994]
                    )
                  ]
                  spids: [-1 991]
                )
              ]
              spids: [-1 1000]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_f
                                  child: {(DQ ($ VSub_Name "$server_binary_tar"))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(release_not_found)})]
                  spids: [-1 1018]
                )
              ]
              spids: [-1 1024]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:salt_tar)
                  op: Equal
                  rhs: {(DQ (/vagrant/server/kubernetes-salt.tar.gz))}
                  spids: [1028]
                )
              ]
              spids: [1028]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_f
                                  child: {(DQ ($ VSub_Name "$salt_tar"))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:salt_tar)
                          op: Equal
                          rhs: {(DQ (/vagrant/_output/release-tars/kubernetes-salt.tar.gz))}
                          spids: [1052]
                        )
                      ]
                      spids: [1052]
                    )
                  ]
                  spids: [-1 1049]
                )
              ]
              spids: [-1 1058]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolUnary
                                  op_id: BoolUnary_f
                                  child: {(DQ ($ VSub_Name "$salt_tar"))}
                                )
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(C {(release_not_found)})]
                  spids: [-1 1076]
                )
              ]
              spids: [-1 1082]
            )
            (C {(echo)} {(DQ ("Running release install script"))})
            (C {(rm)} {(-rf)} {(/kube-install)})
            (C {(mkdir)} {(-p)} {(/kube-install)})
            (C {(pushd)} {(/kube-install)})
            (C {(tar)} {(xzf)} {(DQ ($ VSub_Name "$salt_tar"))})
            (C {(cp)} {(DQ ($ VSub_Name "$server_binary_tar"))} {(.)})
            (C {(./kubernetes/saltbase/install.sh)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name server_binary_tar>
                    suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                    spids: [1133 1138]
                  )
                )
              }
            )
            (C {(popd)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{(which)} {(salt-call)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                  spids: [1154]
                                )
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 2
                                  arg_word: {(1)}
                                  spids: [1157]
                                )
                              ]
                            )
                          ]
                          negated: True
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(dnf)} {(config-manager)} {(--set-enabled)} {(updates-testing)})
                    (C {(dnf)} {(install)} {(-y)} {(salt-minion)})
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fedora_version)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(grep)} {(SQ <VERSION_ID>)} {(/etc/os-release)})
                                          (C {(sed)} {(SQ <"s+VERSION_ID=++">)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [1214 1230]
                              )
                            }
                          spids: [1213]
                        )
                      ]
                      spids: [1211]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobEqual
                                      left: {(DQ (${ VSub_Name fedora_version))}
                                      right: {(SQ <23>)}
                                    )
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:repo_file)
                                  op: Equal
                                  rhs: {(SQ </etc/yum.repos.d/saltstack-salt-fedora-23.repo>)}
                                  spids: [1257]
                                )
                              ]
                              spids: [1255]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_f
                                              child: {(DQ (${ VSub_Name repo_file))}
                                            )
                                        )
                                      terminator: <Op_Semi ";">
                                    )
                                  ]
                                  action: [(C {(rm)} {(DQ (${ VSub_Name repo_file))})]
                                  spids: [-1 1278]
                                )
                              ]
                              spids: [-1 1290]
                            )
                          ]
                          spids: [-1 1252]
                        )
                      ]
                      spids: [-1 1293]
                    )
                  ]
                  spids: [-1 1161]
                )
              ]
              spids: [-1 1297]
            )
          ]
          spids: [967]
        )
      spids: [961 966]
    )
    (FuncDef
      name: run-salt
      body: 
        (BraceGroup
          children: [
            (C {(echo)} 
              {(DQ ("  Now waiting for the Salt provisioning process to complete on this machine."))}
            )
            (C {(echo)} {(DQ ("  This can take some time based on your network, disk, and cpu speed."))})
            (C {(salt-call)} {(--local)} {(state.highstate)})
          ]
          spids: [1308]
        )
      spids: [1302 1307]
    )
    (FuncDef
      name: create-salt-kubelet-auth
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              flags: ["'-r'"]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubelet_kubeconfig_folder)
                  op: Equal
                  rhs: {(DQ (/srv/salt-overlay/salt/kubelet))}
                  spids: [1347]
                )
              ]
              spids: [1343]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name kubelet_kubeconfig_folder))})
            (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_folder) (/kubeconfig))}
                          spids: [1373]
                        )
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("apiVersion: v1\n") ("kind: Config\n") ("clusters:\n") 
                                ("- cluster:\n") ("    server: ") (Right_DoubleQuote "\"") ("https://") (${ VSub_Name MASTER_IP) (Right_DoubleQuote "\"") 
                                ("\n") ("    insecure-skip-tls-verify: true\n") ("  name: local\n") ("contexts:\n") ("- context:\n") 
                                ("    cluster: local\n") ("    user: kubelet\n") ("  name: service-account-context\n") 
                                ("current-context: service-account-context\n") ("users:\n") ("- name: kubelet\n") ("  user:\n") ("    token: ") (${ VSub_Name KUBELET_TOKEN) ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1382]
                        )
                      ]
                    )
                  ]
                )
              spids: [1364 1415]
            )
          ]
          spids: [1340]
        )
      spids: [1334 1339]
    )
    (FuncDef
      name: create-salt-kubeproxy-auth
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kube_proxy_kubeconfig_folder)
                  op: Equal
                  rhs: {(DQ (/srv/salt-overlay/salt/kube-proxy))}
                  spids: [1429]
                )
              ]
              spids: [1429]
            )
            (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name kube_proxy_kubeconfig_folder))})
            (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_folder) (/kubeconfig))}
                          spids: [1455]
                        )
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("apiVersion: v1\n") ("kind: Config\n") ("clusters:\n") 
                                ("- cluster:\n") ("    insecure-skip-tls-verify: true\n") ("  name: local\n") ("contexts:\n") ("- context:\n") 
                                ("    cluster: local\n") ("    user: kube-proxy\n") ("  name: service-account-context\n") 
                                ("current-context: service-account-context\n") ("users:\n") ("- name: kube-proxy\n") ("  user:\n") ("    token: ") (${ VSub_Name KUBE_PROXY_TOKEN) ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [1464]
                        )
                      ]
                    )
                  ]
                )
              spids: [1446 1489]
            )
          ]
          spids: [1426]
        )
      spids: [1420 1425]
    )
  ]
)