(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (= scope= flags=0 words=[] bindings=[('SOURCE', {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]) (While (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -h]} {[DQ [VarSub SOURCE]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('DIR', {[DQ [ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS -P]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub SOURCE]]})]]}) (Com {[LIT_CHARS pwd]}) )]]})]) (= scope= flags=0 words=[] bindings=[('SOURCE', {[DQ [ComSub (Com {[LIT_CHARS readlink]} {[DQ [VarSub SOURCE]]})]]})]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_NOT_EQUAL {[VarSub SOURCE]} {[LIT_CHARS /] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('SOURCE', {[DQ [VarSub DIR][LIT_CHARS /][VarSub SOURCE]]})]) ) ) ) (= scope= flags=0 words=[] bindings=[('DIR', {[DQ [ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS -P]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub SOURCE]]})]]}) (Com {[LIT_CHARS pwd]}) )]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[DQ [VarSub DIR][LIT_CHARS /../..]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_CONFIG_FILE', {[DQ [VarSub KUBE_CONFIG_FILE test_op=VS_TEST_COLON_HYPHEN {[DQ [VarSub DIR][LIT_CHARS /config-default.sh]]}]]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_CONFIG_FILE]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/common.sh]]} ) (= scope= flags=0 words=[] bindings=[('AZKUBE_VERSION', {[DQ [LIT_CHARS v0.0.5]]})]) (= scope= flags=0 words=[] bindings=[('REGISTER_MASTER_KUBELET', {[DQ [LIT_CHARS true]]})]) (FunctionDef verify-prereqs [] (List (= scope= flags=0 words=[] bindings=[('required_binaries', {[Array {[DQ [LIT_CHARS docker]]} {[DQ [LIT_CHARS jq]]}]})]) (For rb [{[DQ [VarSub required_binaries bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (If (Pipeline! (Com {[LIT_CHARS which]} {[DQ [VarSub rb]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Couldn't find "][VarSub rb][LIT_CHARS " in PATH"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (If (Pipeline! (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "kubectl is unavailable. Ensure "][VarSub KUBE_ROOT][LIT_CHARS "/cluster/kubectl.sh runs with a successful exit."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef azure-ensure-config [] (List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub AZURE_SUBSCRIPTION_ID test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_SUBSCRIPTION_ID must be set"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=1 words=[] bindings=[('AZURE_OUTPUT_RELDIR', {[DQ [LIT_CHARS _deployments/][VarSub AZURE_DEPLOY_ID]]})]) (= scope= flags=1 words=[] bindings=[('AZURE_OUTPUT_DIR', {[DQ [VarSub DIR][LIT_CHARS /][VarSub AZURE_OUTPUT_RELDIR]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub AZURE_OUTPUT_DIR]]} ) (Case to_match={[DQ [VarSub AZURE_AUTH_METHOD test_op=VS_TEST_COLON_HYPHEN {}]]}, pat_word_list=[[{[DQ [LIT_CHARS client_secret]]}], [{[DQ ]}], [{[DQ [LIT_CHARS device]]}, {[DQ ]}], [{[LIT_OTHER "*"]}]] (List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub AZURE_CLIENT_ID]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_CLIENT_ID must be set"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub AZURE_CLIENT_SECRET]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_CLIENT_SECRET must be set"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_AUTH_METHOD not set, assuming "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS device][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS .]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This will be interactive. (export AZURE_AUTH_METHOD=client_secret to avoid the prompt)"]]} ) (= scope= flags=1 words=[] bindings=[('AZURE_AUTH_METHOD', {[DQ [LIT_CHARS device]]})]) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_AUTH_METHOD is an unsupported value: "][\ LIT_ESCAPED_CHAR "\\\""][VarSub AZURE_AUTH_METHOD][\ LIT_ESCAPED_CHAR "\\\""]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef repo-contains-image [] (List (= scope= flags=0 words=[] bindings=[('registry', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('repo', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('image', {[DQ [VarSub 3]]})]) (= scope= flags=0 words=[] bindings=[('version', {[DQ [VarSub 4]]})]) (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [VarSub registry]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub prefix]]} {[DQ [LIT_CHARS docker.io]]}}) (List (= scope= flags=0 words=[] bindings=[('prefix', {[DQ [LIT_CHARS registry.hub.docker.com/v2/repositories]]})]) (= scope= flags=0 words=[] bindings=[('tags_json', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS curl]} {[DQ [LIT_CHARS "https://registry.hub.docker.com/v2/repositories/"][VarSub repo][LIT_CHARS /][VarSub image][LIT_CHARS /tags/][VarSub version][LIT_CHARS /]]})]})]) (= scope= flags=0 words=[] bindings=[('tags_found', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub tags_json]]}) (Com {[LIT_CHARS jq]} {[DQ [LIT_CHARS ".v2?"]]}) )]]})]) ) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub prefix]]} {[DQ [LIT_CHARS gcr.io]]}}) (List (= scope= flags=0 words=[] bindings=[('tags_json', {[ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS curl]} {[DQ [LIT_CHARS "https://gcr.io/v2/"][VarSub repo][LIT_CHARS /][VarSub image][LIT_CHARS /tags/list]]})]})]) (= scope= flags=0 words=[] bindings=[('tags_found', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub tags_json]]}) (Com {[LIT_CHARS jq]} {[DQ [LIT_CHARS ".tags | indices(["][\ LIT_ESCAPED_CHAR "\\\""][VarSub version][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "]) | any"]]}) )]]})]) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub tags_found]]} {[DQ [LIT_CHARS true]]}}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (FunctionDef ensure-hyperkube [] (List (= scope= flags=0 words=[] bindings=[('hyperkube', {[DQ [LIT_CHARS hyperkube-amd64]]})]) (= scope= flags=0 words=[] bindings=[('official_image_tag', {[DQ [LIT_CHARS gcr.io/google_containers/][VarSub hyperkube][LIT_CHARS ":"][VarSub KUBE_GIT_VERSION]]})]) (If (Com {[LIT_CHARS repo-contains-image]} {[DQ [LIT_CHARS gcr.io]]} {[DQ [LIT_CHARS google_containers]]} {[DQ [VarSub hyperkube]]} {[DQ [VarSub KUBE_GIT_VERSION]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub hyperkube][LIT_CHARS ":"][VarSub KUBE_GIT_VERSION][LIT_CHARS " was found in the gcr.io/google_containers repository"]]} ) (= scope= flags=1 words=[] bindings=[('AZURE_HYPERKUBE_SPEC', {[DQ [VarSub official_image_tag]]})]) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub hyperkube][LIT_CHARS ":"][VarSub KUBE_GIT_VERSION][LIT_CHARS " was not found in the gcr.io/google_containers repository"]]} ) (If (DBracket {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_z {[DQ [VarSub AZURE_DOCKER_REGISTRY test_op=VS_TEST_COLON_HYPHEN {}]]}} {B1 UNARY_STRING_z {[DQ [VarSub AZURE_DOCKER_REPO test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_DOCKER_REGISTRY and AZURE_DOCKER_REPO must be set in order to push "][VarSub hyperkube][LIT_CHARS ":"][VarSub KUBE_GIT_VERSION]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('user_image_tag', {[DQ [VarSub AZURE_DOCKER_REGISTRY][LIT_CHARS /][VarSub AZURE_DOCKER_REPO][LIT_CHARS /][VarSub hyperkube][LIT_CHARS ":"][VarSub KUBE_GIT_VERSION]]})]) (If (Com {[LIT_CHARS repo-contains-image]} {[DQ [VarSub AZURE_DOCKER_REGISTRY]]} {[DQ [VarSub AZURE_DOCKER_REPO]]} {[DQ [VarSub hyperkube]]} {[DQ [VarSub KUBE_GIT_VERSION]]} ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub image][LIT_CHARS ":"][VarSub version][LIT_CHARS " was found in "][VarSub repo][LIT_CHARS " (success)"]]} ) (= scope= flags=1 words=[] bindings=[('AZURE_HYPERKUBE_SPEC', {[DQ [VarSub user_image_tag]]})]) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (If (Pipeline! (Com {[LIT_CHARS docker]} {[LIT_CHARS inspect]} {[DQ [VarSub user_image_tag]]} ) ) (List (If (Pipeline! (Com {[LIT_CHARS docker]} {[LIT_CHARS inspect]} {[DQ [VarSub official_image_tag]]} ) ) (Com {[LIT_CHARS make]} {[LIT_CHARS -C]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/images/hyperkube]]} {[LIT_CHARS build]} more_env=[('REGISTRY', {[DQ [LIT_CHARS gcr.io/google_containers]]}), ('VERSION', {[DQ [VarSub KUBE_GIT_VERSION]]})] ) ) (Com {[LIT_CHARS docker]} {[LIT_CHARS tag]} {[DQ [VarSub official_image_tag]]} {[DQ [VarSub user_image_tag]]} ) ) ) (Com {[LIT_CHARS docker]} {[LIT_CHARS push]} {[DQ [VarSub user_image_tag]]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub image][LIT_CHARS ":"][VarSub version][LIT_CHARS " was pushed to "][VarSub repo]]} ) (= scope= flags=1 words=[] bindings=[('AZURE_HYPERKUBE_SPEC', {[DQ [VarSub user_image_tag]]})]) ) ) (FunctionDef deploy-kube-system [] (Com {[LIT_CHARS kubectl]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[LIT_CHARS -]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "apiVersion: v1\n"][LIT_CHARS "kind: Namespace\n"][LIT_CHARS "metadata:\n"][LIT_CHARS " name: kube-system\n"]]} 0), > ) ) (FunctionDef get-common-params [] (List (= scope= flags=0 words=[{[LIT_CHARS -ag]}, {[LIT_CHARS AZKUBE_AUTH_PARAMS]}] bindings=[]) (= scope= flags=0 words=[{[LIT_CHARS -ag]}, {[LIT_CHARS AZKUBE_DOCKER_PARAMS]}] bindings=[]) (= scope= flags=0 words=[{[LIT_CHARS -ag]}, {[LIT_CHARS AZKUBE_RESOURCE_GROUP_PARAM]}] bindings=[]) (Case to_match={[DQ [VarSub AZURE_AUTH_METHOD]]}, pat_word_list=[[{[DQ [LIT_CHARS client_secret]]}], [{[DQ [LIT_CHARS device]]}]] (= scope= flags=0 words=[] bindings=[('AZKUBE_AUTH_PARAMS+', {[Array {[DQ [LIT_CHARS "--client-id="][VarSub AZURE_CLIENT_ID]]} {[DQ [LIT_CHARS "--client-secret="][VarSub AZURE_CLIENT_SECRET]]}]})]) (= scope= flags=0 words=[] bindings=[('AZKUBE_AUTH_PARAMS', {[Array ]})]) ) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub AZURE_HTTPS_PROXY test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('AZKUBE_DOCKER_PARAMS+', {[Array {[DQ [LIT_CHARS "--net=host"]]} {[DQ [LIT_CHARS "--env=https_proxy="][VarSub AZURE_HTTPS_PROXY]]}]})]) ) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub AZURE_RESOURCE_GROUP test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Forcing use of resource group "][VarSub AZURE_RESOURCE_GROUP]]} ) (= scope= flags=0 words=[] bindings=[('AZKUBE_RESOURCE_GROUP_PARAM+', {[Array {[DQ [LIT_CHARS "--resource-group="][VarSub AZURE_RESOURCE_GROUP]]}]})]) ) ) ) ) (FunctionDef azure-deploy [] (List (Com {[LIT_CHARS get-common-params]} ) (Com {[LIT_CHARS docker]} {[LIT_CHARS run]} {[LIT_CHARS -it]} {[LIT_CHARS --user]} {[DQ [ComSub (Com {[LIT_CHARS id]} {[LIT_CHARS -u]})]]} {[DQ [VarSub AZKUBE_DOCKER_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZKUBE_DOCKER_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} {[LIT_CHARS -v]} {[DQ [VarSub HOME][LIT_CHARS "/.azkube:/.azkube"]]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS "/tmp:/tmp"]]} {[LIT_CHARS -v]} {[DQ [VarSub AZURE_OUTPUT_DIR][LIT_CHARS ":/opt/azkube/"][VarSub AZURE_OUTPUT_RELDIR]]} {[DQ [LIT_CHARS "colemickens/azkube:"][VarSub AZKUBE_VERSION]]} {[LIT_CHARS /opt/azkube/azkube]} {[LIT_CHARS deploy]} {[LIT_CHARS --kubernetes-hyperkube-spec] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_HYPERKUBE_SPEC]]} {[LIT_CHARS --deployment-name] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_DEPLOY_ID]]} {[LIT_CHARS --location] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_LOCATION]]} {[DQ [VarSub AZKUBE_RESOURCE_GROUP_PARAM bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZKUBE_RESOURCE_GROUP_PARAM bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} {[LIT_CHARS --subscription-id] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_SUBSCRIPTION_ID]]} {[LIT_CHARS --auth-method] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_AUTH_METHOD]]} {[DQ [VarSub AZKUBE_AUTH_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZKUBE_AUTH_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} {[LIT_CHARS --master-size] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_MASTER_SIZE]]} {[LIT_CHARS --node-size] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_NODE_SIZE]]} {[LIT_CHARS --node-count] [LIT_DBRACKET_LIKE "="] [DQ [VarSub NUM_NODES]]} {[LIT_CHARS --username] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_USERNAME]]} {[LIT_CHARS --output-directory] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS /opt/azkube/][VarSub AZURE_OUTPUT_RELDIR]]} {[LIT_CHARS --no-cloud-provider]} {[DQ [VarSub AZURE_AZKUBE_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZURE_AZKUBE_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} ) ) ) (FunctionDef kube-up [] (List (= scope= flags=0 words=[] bindings=[('date_start', {[DQ [ComSub (Com {[LIT_CHARS date]})]]})]) (= scope= flags=0 words=[] bindings=[('startdate', {[DQ [ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "++> AZURE KUBE-UP STARTED: "][ComSub (Com {[LIT_CHARS date]})]]} ) (Com {[LIT_CHARS verify-prereqs]} ) (Com {[LIT_CHARS azure-ensure-config]} ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub AZURE_HYPERKUBE_SPEC test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS find-release-version]} ) (= scope= flags=1 words=[] bindings=[('KUBE_GIT_VERSION', {[DQ [VarSub KUBE_GIT_VERSION transform_ops=[PatSub {[LIT_CHARS "+"]} {[LIT_CHARS -]} do_all]]]})]) (If (Pipeline! (Com {[LIT_CHARS ensure-hyperkube]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Failed to ensure hyperkube was available. Exitting."]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Using user specified AZURE_HYPERKUBE_SPEC: "][VarSub AZURE_HYPERKUBE_SPEC]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Note: The existence of this is not verified! (It might only be pullable from your DC)"]]} ) ) ) (Com {[LIT_CHARS azure-deploy]} ) (Com {[LIT_CHARS kubectl]} {[LIT_CHARS config]} {[LIT_CHARS set-cluster]} {[DQ [VarSub AZURE_DEPLOY_ID]]} {[LIT_CHARS --server] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "https://"][VarSub AZURE_DEPLOY_ID][LIT_CHARS .][VarSub AZURE_LOCATION][LIT_CHARS ".cloudapp.azure.com:6443"]]} {[LIT_CHARS --certificate-authority] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_OUTPUT_DIR][LIT_CHARS /ca.crt]]} {[LIT_CHARS --api-version] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS v1]]} ) (Com {[LIT_CHARS kubectl]} {[LIT_CHARS config]} {[LIT_CHARS set-credentials]} {[DQ [VarSub AZURE_DEPLOY_ID][LIT_CHARS _user]]} {[LIT_CHARS --client-certificate] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_OUTPUT_DIR][LIT_CHARS /client.crt]]} {[LIT_CHARS --client-key] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_OUTPUT_DIR][LIT_CHARS /client.key]]} ) (Com {[LIT_CHARS kubectl]} {[LIT_CHARS config]} {[LIT_CHARS set-context]} {[DQ [VarSub AZURE_DEPLOY_ID]]} {[LIT_CHARS --cluster] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_DEPLOY_ID]]} {[LIT_CHARS --user] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_DEPLOY_ID][LIT_CHARS _user]]} ) (Com {[LIT_CHARS kubectl]} {[LIT_CHARS config]} {[LIT_CHARS use-context]} {[DQ [VarSub AZURE_DEPLOY_ID]]} ) (Com {[LIT_CHARS deploy-kube-system]} ) (= scope= flags=0 words=[] bindings=[('enddate', {[DQ [ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]]})]) (= scope= flags=0 words=[] bindings=[('duration', {[DQ [ArithSub {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub startdate]}} {A Atom NODE_ARITH_WORD {[VarSub enddate]}}}]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "++> AZURE KUBE-UP FINISHED: "][ComSub (Com {[LIT_CHARS date]})][LIT_CHARS " (duration: "][VarSub duration][LIT_CHARS " seconds)"]]} ) ) ) (FunctionDef kube-down [] (List (Com {[LIT_CHARS verify-prereqs]} ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub AZURE_SUBSCRIPTION_ID test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_SUBSCRIPTION_ID must be set"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub AZURE_DEPLOY_ID test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AZURE_DEPLOY_ID must be set. This selects the deployment (and resource group) to delete."]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS -1]} ) ) ) (= scope= flags=0 words=[{[LIT_CHARS -a]}, {[LIT_CHARS destroy_params]}] bindings=[]) (= scope= flags=0 words=[{[LIT_CHARS -a]}, {[LIT_CHARS docker_params]}] bindings=[]) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub AZURE_DOWN_SKIP_CONFIRM test_op=VS_TEST_COLON_HYPHEN {}]} {[DQ [LIT_CHARS true]]}}) (= scope= flags=0 words=[] bindings=[('destroy_params+', {[Array {[DQ [LIT_CHARS --skip-confirm]]}]})]) ) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub AZURE_HTTPS_PROXY test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('docker_params+', {[Array {[DQ [LIT_CHARS "--net=host"]]} {[DQ [LIT_CHARS "--env=https_proxy="][VarSub AZURE_HTTPS_PROXY]]}]})]) ) (Com {[LIT_CHARS docker]} {[LIT_CHARS run]} {[LIT_CHARS -it]} {[LIT_CHARS --user]} {[DQ [ComSub (Com {[LIT_CHARS id]} {[LIT_CHARS -u]})]]} {[LIT_CHARS -v]} {[DQ [VarSub HOME][LIT_CHARS "/.azkube:/.azkube"]]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS "/tmp:/tmp"]]} {[DQ [VarSub AZKUBE_DOCKER_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZKUBE_DOCKER_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} {[DQ [LIT_CHARS "colemickens/azkube:"][VarSub AZKUBE_VERSION]]} {[LIT_CHARS /opt/azkube/azkube]} {[LIT_CHARS destroy]} {[LIT_CHARS --deployment-name] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_DEPLOY_ID]]} {[LIT_CHARS --subscription-id] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_SUBSCRIPTION_ID]]} {[LIT_CHARS --auth-method] [LIT_DBRACKET_LIKE "="] [DQ [VarSub AZURE_AUTH_METHOD]]} {[DQ [VarSub AZKUBE_AUTH_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZKUBE_AUTH_PARAMS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} {[DQ [VarSub destroy_params bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub destroy_params bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} {[DQ [VarSub AZURE_AZKUBE_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_PLUS {[VarSub AZURE_AZKUBE_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]]} ) ) ) )