(CommandList children: [ (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/gce/gci/helper.sh))}) (FuncDef name: create-master-instance body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:address) op:Equal rhs:{(DQ )} spids:[105])] spids: [103] ) (AndOr children: [ (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [114 117] ) } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:address) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [123] ) ] spids: [123] ) ] op_id: Op_DAmp ) (C {(write-master-env)}) (C {(ensure-gci-metadata-files)}) (C {(create-master-instance-internal)} {(DQ (${ VSub_Name MASTER_NAME))} {(DQ (${ VSub_Name address))} ) ] spids: [100] ) spids: [96 99] ) (FuncDef name: replicate-master-instance body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:existing_master_zone) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [166] ) ] spids: [164] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:existing_master_name) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [176] ) ] spids: [174] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:existing_master_replicas) op: Equal rhs: {(DQ (${ VSub_Number 3))} spids: [186] ) ] spids: [184] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(get-metadata)} {(DQ (${ VSub_Name existing_master_zone))} {(DQ (${ VSub_Name existing_master_name))} {(kube-env)} ) ] ) left_token: <Left_CommandSub '$('> spids: [199 215] ) ) } spids: [197] ) ] spids: [195] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name kube_env))}) (C {(grep)} {(-v)} {(DQ (INITIAL_ETCD_CLUSTER))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [225 243] ) ) } spids: [223] ) ] spids: [223] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name kube_env) (Lit_Other '\\') ("nINITIAL_ETCD_CLUSTER: '") (${ VSub_Name existing_master_replicas) (',') (${ VSub_Name REPLICA_NAME) ("'") ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [249 269] ) ) } spids: [247] ) ] spids: [247] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name kube_env))}) (C {(grep)} {(-v)} {(DQ (INITIAL_ETCD_CLUSTER_STATE))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [280 298] ) ) } spids: [278] ) ] spids: [278] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name kube_env) (Lit_Other '\\') ("nINITIAL_ETCD_CLUSTER_STATE: 'existing'") ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [304 316] ) ) } spids: [302] ) ] spids: [302] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ETCD_CA_KEY) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name kube_env))}) (C {(grep)} {(DQ (ETCD_CA_KEY))}) (C {(sed)} {(DQ ("s/^.*: '//"))}) (C {(sed)} {(DQ ("s/'") (Lit_Other '$') (//))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [323 357] ) ) } spids: [321] ) ] spids: [321] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ETCD_CA_CERT) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name kube_env))}) (C {(grep)} {(DQ (ETCD_CA_CERT))}) (C {(sed)} {(DQ ("s/^.*: '//"))}) (C {(sed)} {(DQ ("s/'") (Lit_Other '$') (//))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [363 397] ) ) } spids: [361] ) ] spids: [361] ) (C {(create-etcd-certs)} {(DQ (${ VSub_Name REPLICA_NAME))} {(DQ (${ VSub_Name ETCD_CA_CERT))} {(DQ (${ VSub_Name ETCD_CA_KEY))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name kube_env))}) (C {(grep)} {(-v)} {(DQ (ETCD_PEER_KEY))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [425 443] ) ) } spids: [423] ) ] spids: [423] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name kube_env) (Lit_Other '\\') ("nETCD_PEER_KEY: '") (${ VSub_Name ETCD_PEER_KEY_BASE64) ("'") ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [449 465] ) ) } spids: [447] ) ] spids: [447] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name kube_env))}) (C {(grep)} {(-v)} {(DQ (ETCD_PEER_CERT))}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [471 489] ) ) } spids: [469] ) ] spids: [469] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kube_env) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(echo)} {(-e)} { (DQ (${ VSub_Name kube_env) (Lit_Other '\\') ("nETCD_PEER_CERT: '") (${ VSub_Name ETCD_PEER_CERT_BASE64) ("'") ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [495 511] ) ) } spids: [493] ) ] spids: [493] ) (SimpleCommand words: [{(echo)} {(DQ (${ VSub_Name kube_env))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(${ VSub_Name KUBE_TEMP) (/master-kube-env.yaml)} spids: [524] ) ] ) (SimpleCommand words: [ {(get-metadata)} {(DQ (${ VSub_Name existing_master_zone))} {(DQ (${ VSub_Name existing_master_name))} {(cluster-name)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/cluster-name.txt))} spids: [548] ) ] ) (SimpleCommand words: [ {(get-metadata)} {(DQ (${ VSub_Name existing_master_zone))} {(DQ (${ VSub_Name existing_master_name))} {(gci-update-strategy)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/gci-update.txt))} spids: [574] ) ] ) (SimpleCommand words: [ {(get-metadata)} {(DQ (${ VSub_Name existing_master_zone))} {(DQ (${ VSub_Name existing_master_name))} {(gci-ensure-gke-docker)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/gci-ensure-gke-docker.txt))} spids: [600] ) ] ) (SimpleCommand words: [ {(get-metadata)} {(DQ (${ VSub_Name existing_master_zone))} {(DQ (${ VSub_Name existing_master_name))} {(gci-docker-version)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/gci-docker-version.txt))} spids: [626] ) ] ) (SimpleCommand words: [ {(get-metadata)} {(DQ (${ VSub_Name existing_master_zone))} {(DQ (${ VSub_Name existing_master_name))} {(kube-master-certs)} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ (${ VSub_Name KUBE_TEMP) (/kube-master-certs.yaml))} spids: [652] ) ] ) (C {(create-master-instance-internal)} {(DQ (${ VSub_Name REPLICA_NAME))}) ] spids: [161] ) spids: [155 160] ) (FuncDef name: create-master-instance-internal body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:gcloud) op: Equal rhs: {(DQ (gcloud))} spids: [686] ) ] spids: [684] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:retries) op:Equal rhs:{(5)} spids:[694])] spids: [692] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name ENABLE_IP_ALIASES> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [703 706] ) ) } right: {(SQ <true>)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:gcloud) op: Equal rhs: {(DQ ('gcloud beta'))} spids: [721] ) ] spids: [721] ) ] spids: [16777215 718] ) ] spids: [16777215 727] ) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:master_name) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [735] ) ] spids: [731] ) (Assignment keyword: Assign_Local flags: [-r] pairs: [ (assign_pair lhs: (LhsName name:address) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [749 752] ) ) } spids: [747] ) ] spids: [743] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:preemptible_master) op: Equal rhs: {(DQ )} spids: [759] ) ] spids: [757] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name PREEMPTIBLE_MASTER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [769 772] ) ) } right: {(DQ (true))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:preemptible_master) op: Equal rhs: {(DQ ('--preemptible --maintenance-policy TERMINATE'))} spids: [787] ) ] spids: [787] ) ] spids: [16777215 784] ) ] spids: [16777215 793] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:network) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(make-gcloud-network-argument)} {(DQ (${ VSub_Name NETWORK_PROJECT))} {(DQ (${ VSub_Name REGION))} {(DQ (${ VSub_Name NETWORK))} { (DQ (BracedVarSub token: <VSub_Name SUBNETWORK> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [824 827] ) ) } { (DQ (BracedVarSub token: <VSub_Name address> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [833 836] ) ) } { (DQ (BracedVarSub token: <VSub_Name ENABLE_IP_ALIASES> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [840 843] ) ) } { (DQ (BracedVarSub token: <VSub_Name IP_ALIAS_SIZE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [847 850] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [800 852] ) } spids: [799] ) ] spids: [797] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: {(DQ ('kube-env=') (${ VSub_Name KUBE_TEMP) (/master-kube-env.yaml))} spids: [858] ) ] spids: [856] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',user-data=') (${ VSub_Name KUBE_ROOT) (/cluster/gce/gci/master.yaml) ) } spids: [868] ) ] spids: [868] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',configure-sh=') (${ VSub_Name KUBE_ROOT) (/cluster/gce/gci/configure.sh) ) } spids: [881] ) ] spids: [881] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',cluster-name=') (${ VSub_Name KUBE_TEMP) (/cluster-name.txt) ) } spids: [894] ) ] spids: [894] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',gci-update-strategy=') (${ VSub_Name KUBE_TEMP) (/gci-update.txt) ) } spids: [907] ) ] spids: [907] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',gci-ensure-gke-docker=') (${ VSub_Name KUBE_TEMP) (/gci-ensure-gke-docker.txt) ) } spids: [920] ) ] spids: [920] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',gci-docker-version=') (${ VSub_Name KUBE_TEMP) (/gci-docker-version.txt) ) } spids: [933] ) ] spids: [933] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:metadata) op: Equal rhs: { (DQ (${ VSub_Name metadata) (',kube-master-certs=') (${ VSub_Name KUBE_TEMP) (/kube-master-certs.yaml) ) } spids: [946] ) ] spids: [946] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:disk) op: Equal rhs: {(DQ ('name=') (${ VSub_Name master_name) (-pd))} spids: [962] ) ] spids: [960] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disk) op: Equal rhs: {(DQ (${ VSub_Name disk) (',device-name=master-pd'))} spids: [972] ) ] spids: [972] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disk) op: Equal rhs: {(DQ (${ VSub_Name disk) (',mode=rw'))} spids: [981] ) ] spids: [981] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disk) op: Equal rhs: {(DQ (${ VSub_Name disk) (',boot=no'))} spids: [990] ) ] spids: [990] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:disk) op: Equal rhs: {(DQ (${ VSub_Name disk) (',auto-delete=no'))} spids: [999] ) ] spids: [999] ) (ForEach iter_name: attempt iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(seq)} {(1)} {(${ VSub_Name retries)})]) left_token: <Left_CommandSub '$('> spids: [1015 1023] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(${ VSub_Name gcloud)} {(compute)} {(instances)} {(create)} {(DQ (${ VSub_Name master_name))} {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--zone)} {(DQ (${ VSub_Name ZONE))} {(--machine-type)} {(DQ (${ VSub_Name MASTER_SIZE))} {(--image-project) (Lit_Other '=') (DQ (${ VSub_Name MASTER_IMAGE_PROJECT)) } {(--image)} {(DQ (${ VSub_Name MASTER_IMAGE))} {(--tags)} {(DQ (${ VSub_Name MASTER_TAG))} {(--scopes)} { (DQ ( 'storage-ro,compute-rw,monitoring,logging-write' ) ) } {(--metadata-from-file)} {(DQ (${ VSub_Name metadata))} {(--disk)} {(DQ (${ VSub_Name disk))} {(--boot-disk-size)} {(DQ (${ VSub_Name MASTER_ROOT_DISK_SIZE))} {(${ VSub_Name preemptible_master)} {(${ VSub_Name network)} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1159] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1032 1161] ) } spids: [1031] ) ] spids: [1031] ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ (${ VSub_Name result))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1175] ) ] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 1164] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ (${ VSub_Name result))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1195] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ (${ VSub_Name result))} right: {(DQ ('try again later'))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ( 'Failed to create master instance due to non-retryable error' ) ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1229] ) ] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 1220] ) ] spids: [16777215 1238] ) (C {(sleep)} {(10)}) ] spids: [1184 1246] ) ] spids: [1026 1249] ) spids: [1014 1024] ) (SimpleCommand words: [ {(echo)} { (DQ ('Failed to create master instance despite ') (${ VSub_Name retries) (' attempts') ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[1263])] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [681] ) spids: [675 680] ) (FuncDef name: get-metadata body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:zone) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [1285] ) ] spids: [1283] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [1295] ) ] spids: [1293] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:key) op: Equal rhs: {(DQ (${ VSub_Number 3))} spids: [1305] ) ] spids: [1303] ) (SimpleCommand words: [ {(gcloud)} {(compute)} {(ssh)} {(DQ (${ VSub_Name name))} {(--project)} {(DQ (${ VSub_Name PROJECT))} {(--zone)} {(DQ (${ VSub_Name zone))} {(--command)} { (DQ ('curl ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('http://metadata.google.internal/computeMetadata/v1/instance/attributes/') (${ VSub_Name key) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' -H ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('Metadata-Flavor: Google') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1363])] ) ] spids: [1280] ) spids: [1274 1279] ) ] )