(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /..]})]) (= scope= flags=0 words=[] bindings=[('DEFAULT_KUBECONFIG', {[DQ [VarSub HOME][LIT_CHARS /.kube/config]]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/lib/util.sh]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/lib/logging.sh]]} ) (= scope= flags=0 words=[] bindings=[('KUBE_RELEASE_VERSION_REGEX', {[DQ [LIT_CHARS "^v(0|[1-9][0-9]*)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*)(-(beta|alpha)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*))?"][LIT_OTHER "$"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_RELEASE_VERSION_DASHED_REGEX', {[DQ [LIT_CHARS "v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)(-(beta|alpha)-(0|[1-9][0-9]*))?"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_CI_VERSION_REGEX', {[DQ [LIT_CHARS "^v(0|[1-9][0-9]*)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*)-(beta|alpha)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*)("][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS ".(0|[1-9][0-9]*)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS "+[-0-9a-z]*)?"][LIT_OTHER "$"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_CI_VERSION_DASHED_REGEX', {[DQ [LIT_CHARS "^v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(beta|alpha)-(0|[1-9][0-9]*)(-(0|[1-9][0-9]*)"][\ LIT_ESCAPED_CHAR "\\\\"][LIT_CHARS "+[-0-9a-z]*)?"]]})]) (FunctionDef create-kubeconfig [] (List (= scope= flags=0 words=[] bindings=[('KUBECONFIG', {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]) (= scope= flags=0 words=[] bindings=[('kubectl', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]})]) (= scope= flags=0 words=[] bindings=[('SECONDARY_KUBECONFIG', {[VarSub SECONDARY_KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {}]})]) (= scope= flags=0 words=[] bindings=[('OVERRIDE_CONTEXT', {[VarSub OVERRIDE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]})]) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub OVERRIDE_CONTEXT]]} {[DQ ]}}) (= scope= flags=0 words=[] bindings=[('CONTEXT', {[VarSub OVERRIDE_CONTEXT]})]) ) (= scope= flags=0 words=[] bindings=[('OLD_IFS', {[VarSub IFS]})]) (= scope= flags=0 words=[] bindings=[('IFS', {[SQ ]})]) (For cfg [{[VarSub KUBECONFIG]}]) (If (DBracket {B! {B1 UNARY_FILE_e {[DQ [VarSub cfg]]}}}) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub cfg]]})]]} ) (Com {[LIT_CHARS touch]} {[DQ [VarSub cfg]]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('IFS', {[VarSub OLD_IFS]})]) (= scope= flags=0 words=[] bindings=[('cluster_args', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--server="][VarSub KUBE_SERVER test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS "https:"] [LIT_SLASH /] [LIT_SLASH /] [VarSub KUBE_MASTER_IP]}]]} {OP_NEWLINE "\n"}]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub CA_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('cluster_args+', {[Array {[DQ [LIT_CHARS "--insecure-skip-tls-verify=true"]]}]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('cluster_args+', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--certificate-authority="][VarSub CA_CERT]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--embed-certs=true"]]} {OP_NEWLINE "\n"}]})]) ) (= scope= flags=0 words=[] bindings=[('user_args', {[Array ]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_BEARER_TOKEN test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('user_args+', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--token="][VarSub KUBE_BEARER_TOKEN]]} {OP_NEWLINE "\n"}]})]) (DBracket {B? LOGICAL_BINARY_AND {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_USER test_op=VS_TEST_COLON_HYPHEN {}]]}}} {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_PASSWORD test_op=VS_TEST_COLON_HYPHEN {}]]}}}}) (= scope= flags=0 words=[] bindings=[('user_args+', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--username="][VarSub KUBE_USER]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--password="][VarSub KUBE_PASSWORD]]} {OP_NEWLINE "\n"}]})]) ) (If (DBracket {B? LOGICAL_BINARY_AND {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}} {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_KEY test_op=VS_TEST_COLON_HYPHEN {}]]}}}}) (= scope= flags=0 words=[] bindings=[('user_args+', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--client-certificate="][VarSub KUBE_CERT]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--client-key="][VarSub KUBE_KEY]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--embed-certs=true"]]} {OP_NEWLINE "\n"}]})]) ) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS set-cluster]} {[DQ [VarSub CONTEXT]]} {[DQ [VarSub cluster_args bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} more_env=[('KUBECONFIG', {[DQ [VarSub KUBECONFIG]]})] ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub user_args bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) test_op=VS_TEST_COLON_HYPHEN {}]]}}) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS set-credentials]} {[DQ [VarSub CONTEXT]]} {[DQ [VarSub user_args bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} more_env=[('KUBECONFIG', {[DQ [VarSub KUBECONFIG]]})] ) ) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS set-context]} {[DQ [VarSub CONTEXT]]} {[LIT_CHARS --cluster] [LIT_DBRACKET_LIKE "="] [DQ [VarSub CONTEXT]]} {[LIT_CHARS --user] [LIT_DBRACKET_LIKE "="] [DQ [VarSub CONTEXT]]} more_env=[('KUBECONFIG', {[DQ [VarSub KUBECONFIG]]})] ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub SECONDARY_KUBECONFIG]]} {[DQ [LIT_CHARS true]]}}) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS use-context]} {[DQ [VarSub CONTEXT]]} {[LIT_CHARS --cluster] [LIT_DBRACKET_LIKE "="] [DQ [VarSub CONTEXT]]} more_env=[('KUBECONFIG', {[DQ [VarSub KUBECONFIG]]})] ) ) (If (DBracket {B? LOGICAL_BINARY_AND {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_BEARER_TOKEN test_op=VS_TEST_COLON_HYPHEN {}]]}}} {B? LOGICAL_BINARY_AND {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_USER test_op=VS_TEST_COLON_HYPHEN {}]]}}} {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_PASSWORD test_op=VS_TEST_COLON_HYPHEN {}]]}}}}}) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS set-credentials]} {[DQ [VarSub CONTEXT][LIT_CHARS -basic-auth]]} {[DQ [LIT_CHARS "--username="][VarSub KUBE_USER]]} {[DQ [LIT_CHARS "--password="][VarSub KUBE_PASSWORD]]} more_env=[('KUBECONFIG', {[DQ [VarSub KUBECONFIG]]})] ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Wrote config for "][VarSub CONTEXT][LIT_CHARS " to "][VarSub KUBECONFIG]]} ) ) ) (FunctionDef clear-kubeconfig [] (List (= scope= flags=1 words=[] bindings=[('KUBECONFIG', {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]) (= scope= flags=0 words=[] bindings=[('OVERRIDE_CONTEXT', {[VarSub OVERRIDE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]})]) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub OVERRIDE_CONTEXT]]} {[DQ ]}}) (= scope= flags=0 words=[] bindings=[('CONTEXT', {[VarSub OVERRIDE_CONTEXT]})]) ) (= scope= flags=0 words=[] bindings=[('kubectl', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]})]) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS unset]} {[DQ [LIT_CHARS clusters.][VarSub CONTEXT]]} ) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS unset]} {[DQ [LIT_CHARS users.][VarSub CONTEXT]]} ) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS unset]} {[DQ [LIT_CHARS users.][VarSub CONTEXT][LIT_CHARS -basic-auth]]} ) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS unset]} {[DQ [LIT_CHARS contexts.][VarSub CONTEXT]]} ) (= scope= flags=0 words=[] bindings=[('cc', {[ComSub (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [SQ ] =})]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub cc]]} {[DQ [VarSub CONTEXT]]}}) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS unset]} {[LIT_CHARS current-context]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Cleared config for "][VarSub CONTEXT][LIT_CHARS " from "][VarSub KUBECONFIG]]} ) ) ) (FunctionDef create-kubeconfig-for-federation [] (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub FEDERATION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "creating kubeconfig for federation secret"]]} ) (= scope= flags=0 words=[] bindings=[('kubectl', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]})]) (= scope= flags=0 words=[] bindings=[('cc', {[ComSub (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [SQ ] =})]})]) (= scope= flags=0 words=[] bindings=[('KUBECONFIG_DIR', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]})]) (= scope= flags=0 words=[] bindings=[('KUBECONFIG_PATH', {[DQ [VarSub KUBECONFIG_DIR][LIT_CHARS /federation/kubernetes-apiserver/][VarSub cc]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub KUBECONFIG_PATH]]} ) (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS --minify]} {[LIT_CHARS --flatten]} < (FilenameRedirectNode filename={[DQ [VarSub KUBECONFIG_PATH][LIT_CHARS /kubeconfig]]} "> 1), > ) ) ) ) (FunctionDef tear_down_alive_resources [] (List (= scope= flags=0 words=[] bindings=[('kubectl', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]})]) (AndOr OP_OR_IF (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS delete]} {[LIT_CHARS deployments]} {[LIT_CHARS --all]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS delete]} {[LIT_CHARS rc]} {[LIT_CHARS --all]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS delete]} {[LIT_CHARS pods]} {[LIT_CHARS --all]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS delete]} {[LIT_CHARS svc]} {[LIT_CHARS --all]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[DQ [VarSub kubectl]]} {[LIT_CHARS delete]} {[LIT_CHARS pvc]} {[LIT_CHARS --all]} ) (Com {[LIT_CHARS true]} ) ) ) ) (FunctionDef get-kubeconfig-basicauth [] (List (= scope= flags=1 words=[] bindings=[('KUBECONFIG', {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]) (= scope= flags=0 words=[] bindings=[('cc', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.current-context}"]] =})]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('cc', {[DQ [VarSub KUBE_CONTEXT]]})]) ) (= scope= flags=0 words=[] bindings=[('user', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.contexts[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub cc][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].context.user}"]] =})]})]) (Com {[LIT_CHARS get-kubeconfig-user-basicauth]} {[DQ [VarSub user]]} ) (If (DBracket {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_z {[DQ [VarSub KUBE_USER test_op=VS_TEST_COLON_HYPHEN {}]]}} {B1 UNARY_STRING_z {[DQ [VarSub KUBE_PASSWORD test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (Com {[LIT_CHARS get-kubeconfig-user-basicauth]} {[DQ [VarSub user][LIT_CHARS -basic-auth]]} ) ) ) ) (FunctionDef get-kubeconfig-user-basicauth [] (List (= scope= flags=0 words=[] bindings=[('KUBE_USER', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.users[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub 1][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].user.username}"]] =})]})]) (= scope= flags=0 words=[] bindings=[('KUBE_PASSWORD', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.users[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub 1][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].user.password}"]] =})]})]) ) ) (FunctionDef gen-kube-basicauth [] (List (= scope= flags=0 words=[] bindings=[('KUBE_USER', {[LIT_CHARS admin]})]) (= scope= flags=0 words=[] bindings=[('KUBE_PASSWORD', {[ComSub (Com {[LIT_CHARS python]} {[LIT_CHARS -c]} {[SQ ]})]})]) ) ) (FunctionDef get-kubeconfig-bearertoken [] (List (= scope= flags=1 words=[] bindings=[('KUBECONFIG', {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]) (= scope= flags=0 words=[] bindings=[('cc', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.current-context}"]] =})]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('cc', {[DQ [VarSub KUBE_CONTEXT]]})]) ) (= scope= flags=0 words=[] bindings=[('user', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.contexts[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub cc][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].context.user}"]] =})]})]) (= scope= flags=0 words=[] bindings=[('KUBE_BEARER_TOKEN', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.users[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub user][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].user.token}"]] =})]})]) ) ) (FunctionDef gen-kube-bearertoken [] (= scope= flags=0 words=[] bindings=[('KUBE_BEARER_TOKEN', {[ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "if="] [LIT_CHARS /dev/urandom] =} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 128] =} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS "=+/"]]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS dd]} {[LIT_VAR_LIKE "bs="] [LIT_CHARS 32] =} {[LIT_VAR_LIKE "count="] [LIT_CHARS 1] =}) )]})]) ) (FunctionDef gen-uid [] (= scope= flags=0 words=[] bindings=[('KUBE_UID', {[ComSub (Com {[LIT_CHARS python]} {[LIT_CHARS -c]} {[SQ ]})]})]) ) (FunctionDef load-or-gen-kube-basicauth [] (List (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (Com {[LIT_CHARS get-kubeconfig-basicauth]} ) ) (If (DBracket {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_z {[DQ [VarSub KUBE_USER test_op=VS_TEST_COLON_HYPHEN {}]]}} {B1 UNARY_STRING_z {[DQ [VarSub KUBE_PASSWORD test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (Com {[LIT_CHARS gen-kube-basicauth]} ) ) (If (Pipeline! (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub KUBE_USER]]} {[LIT_OTHER "^"] [LIT_DBRACKET_LIKE "["] [LIT_CHARS -._] [LIT_OTHER "@"] [LIT_CHARS a-zA-Z0-9] [LIT_DBRACKET_LIKE "]"] [LIT_OTHER "+"] [LIT_OTHER "$"]}}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bad KUBE_USER string."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Pipeline! (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub KUBE_PASSWORD]]} {[LIT_OTHER "^"] [LIT_DBRACKET_LIKE "["] [LIT_CHARS -._] [LIT_OTHER "@"] [LIT_OTHER "#"] [LIT_OTHER "%"] [LIT_CHARS /a-zA-Z0-9] [LIT_DBRACKET_LIKE "]"] [LIT_OTHER "+"] [LIT_OTHER "$"]}}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Bad KUBE_PASSWORD string."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef load-or-gen-kube-bearertoken [] (List (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (Com {[LIT_CHARS get-kubeconfig-bearertoken]} ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBE_BEARER_TOKEN test_op=VS_TEST_COLON_HYPHEN {}]]}}) (Com {[LIT_CHARS gen-kube-bearertoken]} ) ) ) ) (FunctionDef detect-master-from-kubeconfig [] (List (= scope= flags=1 words=[] bindings=[('KUBECONFIG', {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]) (= scope= flags=0 words=[] bindings=[('cc', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.current-context}"]] =})]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBE_CONTEXT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('cc', {[DQ [VarSub KUBE_CONTEXT]]})]) ) (= scope= flags=0 words=[] bindings=[('cluster', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.contexts[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub cc][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].context.cluster}"]] =})]})]) (= scope= flags=0 words=[] bindings=[('KUBE_MASTER_URL', {[ComSub (Com {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kubectl.sh]]} {[LIT_CHARS config]} {[LIT_CHARS view]} {[LIT_CHARS -o]} {[LIT_VAR_LIKE "jsonpath="] [DQ [LIT_CHARS "{.clusters[?(@.name == "][\ LIT_ESCAPED_CHAR "\\\""][VarSub cluster][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ")].cluster.server}"]] =})]})]) ) ) (FunctionDef set_binary_version [] (If (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub 1]]} {[DQ [LIT_CHARS /]]}}) (List (Com {[LIT_CHARS read]} {[LIT_CHARS -a]} {[LIT_CHARS path]} < (HereWordRedirectNode here_word={[DQ [VarSub 1]]} 0), > more_env=[('IFS', {[SQ ]})] ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub path bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]} {[DQ [LIT_CHARS release]]}}) (= scope= flags=0 words=[] bindings=[('KUBE_VERSION', {[ComSub (Com {[LIT_CHARS gsutil]} {[LIT_CHARS cat]} {[DQ [LIT_CHARS "gs://kubernetes-release/"][VarSub 1][LIT_CHARS .txt]]})]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('KUBE_VERSION', {[ComSub (Com {[LIT_CHARS gsutil]} {[LIT_CHARS cat]} {[DQ [LIT_CHARS "gs://kubernetes-release-dev/"][VarSub 1][LIT_CHARS .txt]]})]})]) ) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('KUBE_VERSION', {[VarSub 1]})]) ) ) (FunctionDef tars_from_version [] (List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBE_VERSION test_op=VS_TEST_HYPHEN {}]]}}) (List (Com {[LIT_CHARS find-release-tars]} ) (Com {[LIT_CHARS upload-server-tars]} ) ) (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub KUBE_VERSION]} {[VarSub KUBE_RELEASE_VERSION_REGEX]}}) (List (= scope= flags=0 words=[] bindings=[('SERVER_BINARY_TAR_URL', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release/release/"][VarSub KUBE_VERSION][LIT_CHARS /kubernetes-server-linux-amd64.tar.gz]]})]) (= scope= flags=0 words=[] bindings=[('SALT_TAR_URL', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release/release/"][VarSub KUBE_VERSION][LIT_CHARS /kubernetes-salt.tar.gz]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR_URL', {[DQ [VarSub SERVER_BINARY_TAR_URL transform_ops=[PatSub {[LIT_CHARS server-linux-amd64]} {[LIT_CHARS manifests]}]]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR_HASH', {[ComSub (Pipeline (Com {[LIT_CHARS curl]} {[VarSub KUBE_MANIFESTS_TAR_URL]} {[LIT_CHARS --silent]} {[LIT_CHARS --show-error]}) (Com {[LIT_CHARS sha1sum]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) ) (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[VarSub KUBE_VERSION]} {[VarSub KUBE_CI_VERSION_REGEX]}}) (List (= scope= flags=0 words=[] bindings=[('SERVER_BINARY_TAR_URL', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release-dev/ci/"][VarSub KUBE_VERSION][LIT_CHARS /kubernetes-server-linux-amd64.tar.gz]]})]) (= scope= flags=0 words=[] bindings=[('SALT_TAR_URL', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release-dev/ci/"][VarSub KUBE_VERSION][LIT_CHARS /kubernetes-salt.tar.gz]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR_URL', {[DQ [VarSub SERVER_BINARY_TAR_URL transform_ops=[PatSub {[LIT_CHARS server-linux-amd64]} {[LIT_CHARS manifests]}]]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR_HASH', {[ComSub (Pipeline (Com {[LIT_CHARS curl]} {[VarSub KUBE_MANIFESTS_TAR_URL]} {[LIT_CHARS --silent]} {[LIT_CHARS --show-error]}) (Com {[LIT_CHARS sha1sum]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Version doesn't match regexp"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Pipeline! (= scope= flags=0 words=[] bindings=[('SERVER_BINARY_TAR_HASH', {[ComSub (Com {[LIT_CHARS curl]} {[LIT_CHARS -Ss]} {[LIT_CHARS --fail]} {[DQ [VarSub SERVER_BINARY_TAR_URL][LIT_CHARS .sha1]]})]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Failure trying to curl release .sha1"]]} ) ) (If (Pipeline! (= scope= flags=0 words=[] bindings=[('SALT_TAR_HASH', {[ComSub (Com {[LIT_CHARS curl]} {[LIT_CHARS -Ss]} {[LIT_CHARS --fail]} {[DQ [VarSub SALT_TAR_URL][LIT_CHARS .sha1]]})]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Failure trying to curl Salt tar .sha1"]]} ) ) (If (Pipeline! (Com {[LIT_CHARS curl]} {[LIT_CHARS -Ss]} {[LIT_CHARS --head]} {[DQ [VarSub SERVER_BINARY_TAR_URL]]} < (DescriptorRedirectNode target={[LIT_CHARS /dev/null]} &"> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find release at "][VarSub SERVER_BINARY_TAR_URL]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Pipeline! (Com {[LIT_CHARS curl]} {[LIT_CHARS -Ss]} {[LIT_CHARS --head]} {[DQ [VarSub SALT_TAR_URL]]} < (DescriptorRedirectNode target={[LIT_CHARS /dev/null]} &"> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Can't find Salt tar at "][VarSub SALT_TAR_URL]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef find-release-tars [] (List (= scope= flags=0 words=[] bindings=[('SERVER_BINARY_TAR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /server/kubernetes-server-linux-amd64.tar.gz]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub SERVER_BINARY_TAR]]}}}) (= scope= flags=0 words=[] bindings=[('SERVER_BINARY_TAR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /_output/release-tars/kubernetes-server-linux-amd64.tar.gz]]})]) ) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub SERVER_BINARY_TAR]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "!!! Cannot find kubernetes-server-linux-amd64.tar.gz"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('SALT_TAR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /server/kubernetes-salt.tar.gz]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub SALT_TAR]]}}}) (= scope= flags=0 words=[] bindings=[('SALT_TAR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /_output/release-tars/kubernetes-salt.tar.gz]]})]) ) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub SALT_TAR]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "!!! Cannot find kubernetes-salt.tar.gz"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR', {[SQ ]})]) (If (AndOr OP_OR_IF (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS trusty]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS gci]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS coreos]]}}}}) (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS trusty]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS gci]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS coreos]]}}}}) ) (List (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /server/kubernetes-manifests.tar.gz]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub KUBE_MANIFESTS_TAR]]}}}) (= scope= flags=0 words=[] bindings=[('KUBE_MANIFESTS_TAR', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /_output/release-tars/kubernetes-manifests.tar.gz]]})]) ) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub KUBE_MANIFESTS_TAR]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "!!! Cannot find kubernetes-manifests.tar.gz"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) ) ) (FunctionDef find-release-version [] (List (= scope= flags=0 words=[] bindings=[('KUBE_GIT_VERSION', {[DQ ]})]) (If (DBracket {B1 UNARY_FILE_f {[DQ [VarSub KUBE_ROOT][LIT_CHARS /version]]}}) (= scope= flags=0 words=[] bindings=[('KUBE_GIT_VERSION', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[VarSub KUBE_ROOT] [LIT_CHARS /version]})]]})]) ) (If (DBracket {B1 UNARY_FILE_f {[DQ [VarSub KUBE_ROOT][LIT_CHARS /_output/release-stage/full/kubernetes/version]]}}) (= scope= flags=0 words=[] bindings=[('KUBE_GIT_VERSION', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[VarSub KUBE_ROOT] [LIT_CHARS /_output/release-stage/full/kubernetes/version]})]]})]) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBE_GIT_VERSION]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "!!! Cannot find release version"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef stage-images [] (List (Com {[LIT_CHARS find-release-version]} ) (Com {[LIT_CHARS find-release-tars]} ) (= scope= flags=0 words=[] bindings=[('KUBE_IMAGE_TAG', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ ] [DQ [VarSub KUBE_GIT_VERSION]] [DQ ]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]]})]) (= scope= flags=0 words=[] bindings=[('docker_wrapped_binaries', {[Array {OP_NEWLINE "\n"} {[DQ [LIT_CHARS kube-apiserver]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS kube-controller-manager]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS kube-scheduler]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS kube-proxy]]} {OP_NEWLINE "\n"}]})]) (= scope= flags=0 words=[] bindings=[('docker_cmd', {[Array {[DQ [LIT_CHARS docker]]}]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBE_DOCKER_REGISTRY]]} {[DQ [LIT_CHARS gcr.io/]] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('docker_push_cmd', {[Array {[DQ [LIT_CHARS gcloud]]} {[DQ [LIT_CHARS docker]]}]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('docker_push_cmd', {[Array {[DQ [VarSub docker_cmd bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]})]) ) (= scope= flags=0 words=[] bindings=[('temp_dir', {[DQ [ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS -t]} {[SQ ]})]]})]) (Fork (Com {[LIT_CHARS tar]} {[LIT_CHARS xzfv]} {[DQ [VarSub SERVER_BINARY_TAR]]} {[LIT_CHARS -C]} {[DQ [VarSub temp_dir]]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (For binary [{[DQ [VarSub docker_wrapped_binaries bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (List (= scope= flags=0 words=[] bindings=[('docker_tag', {[DQ [ComSub (Com {[LIT_CHARS cat]} {[VarSub temp_dir] [LIT_CHARS /kubernetes/server/bin/] [VarSub binary] [LIT_CHARS .docker_tag]})]]})]) (Fork (Subshell (List (Com {[DQ [VarSub docker_cmd bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[LIT_CHARS load]} {[LIT_CHARS -i]} {[DQ [VarSub temp_dir][LIT_CHARS /kubernetes/server/bin/][VarSub binary][LIT_CHARS .tar]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS docker]} {[LIT_CHARS rmi]} {[DQ [VarSub KUBE_DOCKER_REGISTRY][LIT_CHARS /][VarSub binary][LIT_CHARS ":"][VarSub KUBE_IMAGE_TAG]]} ) (Com {[LIT_CHARS true]} ) ) (Com {[DQ [VarSub docker_cmd bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[LIT_CHARS tag]} {[DQ [LIT_CHARS gcr.io/google_containers/][VarSub binary][LIT_CHARS ":"][VarSub docker_tag]]} {[DQ [VarSub KUBE_DOCKER_REGISTRY][LIT_CHARS /][VarSub binary][LIT_CHARS ":"][VarSub KUBE_IMAGE_TAG]]} ) (Com {[DQ [VarSub docker_push_cmd bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[LIT_CHARS push]} {[DQ [VarSub KUBE_DOCKER_REGISTRY][LIT_CHARS /][VarSub binary][LIT_CHARS ":"][VarSub KUBE_IMAGE_TAG]]} ) ) ) ) (Fork (Com < (FilenameRedirectNode filename={[DQ [VarSub temp_dir][LIT_CHARS /][VarSub binary][LIT_CHARS -push.log]]} "> 1), > ) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS wait-for-jobs]} ) (List (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS error]} {[DQ [LIT_CHARS "unable to push images. See "][VarSub temp_dir][LIT_CHARS "/*.log for more info."]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub temp_dir]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (FunctionDef yaml-quote [] (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "'"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub @ test_op=VS_TEST_COLON_HYPHEN {}]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'"]]} ) ) (FunctionDef build-runtime-config [] (Com {[LIT_OTHER ":"]} ) ) (FunctionDef write-cluster-name [] (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub KUBE_TEMP][LIT_CHARS /cluster-name.txt]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [VarSub CLUSTER_NAME][LIT_CHARS "\n"]]} 0), > ) ) (FunctionDef write-master-env [] (List (If (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub REGISTER_MASTER_KUBELET test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS true]]}} {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_APISERVER test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (= scope= flags=0 words=[] bindings=[('KUBELET_APISERVER', {[DQ [VarSub MASTER_NAME]]})]) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBERNETES_MASTER_NAME test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('KUBERNETES_MASTER_NAME', {[DQ [VarSub MASTER_NAME]]})]) ) (Com {[LIT_CHARS build-kube-env]} {[LIT_CHARS true]} {[DQ [VarSub KUBE_TEMP][LIT_CHARS /master-kube-env.yaml]]} ) ) ) (FunctionDef write-node-env [] (List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBERNETES_MASTER_NAME test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('KUBERNETES_MASTER_NAME', {[DQ [VarSub MASTER_NAME]]})]) ) (Com {[LIT_CHARS build-kube-env]} {[LIT_CHARS false]} {[DQ [VarSub KUBE_TEMP][LIT_CHARS /node-kube-env.yaml]]} ) ) ) (FunctionDef build-kube-env [] (List (= scope= flags=0 words=[] bindings=[('master', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('file', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('server_binary_tar_url', {[VarSub SERVER_BINARY_TAR_URL]})]) (= scope= flags=0 words=[] bindings=[('salt_tar_url', {[VarSub SALT_TAR_URL]})]) (= scope= flags=0 words=[] bindings=[('kube_manifests_tar_url', {[DQ [VarSub KUBE_MANIFESTS_TAR_URL test_op=VS_TEST_COLON_HYPHEN {}]]})]) (If (AndOr OP_OR_IF (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS true]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS coreos]]}}}) (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS false]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS coreos]]}}}) ) (List (= scope= flags=0 words=[] bindings=[('server_binary_tar_url', {[ComSub (Com {[LIT_CHARS split_csv]} {[DQ [VarSub SERVER_BINARY_TAR_URL]]})]})]) (= scope= flags=0 words=[] bindings=[('salt_tar_url', {[ComSub (Com {[LIT_CHARS split_csv]} {[DQ [VarSub SALT_TAR_URL]]})]})]) (= scope= flags=0 words=[] bindings=[('kube_manifests_tar_url', {[ComSub (Com {[LIT_CHARS split_csv]} {[DQ [VarSub KUBE_MANIFESTS_TAR_URL]]})]})]) ) ) (Com {[LIT_CHARS build-runtime-config]} ) (Com {[LIT_CHARS gen-uid]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[VarSub file]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "ENV_TIMESTAMP: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[ComSub (Com {[LIT_CHARS date]} {[LIT_CHARS -u]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS Y-] [LIT_OTHER "%"] [LIT_CHARS m-] [LIT_OTHER "%"] [LIT_CHARS dT] [LIT_OTHER "%"] [LIT_CHARS T] [LIT_OTHER "%"] [LIT_CHARS z]})]})][LIT_CHARS "\n"][LIT_CHARS "INSTANCE_PREFIX: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub INSTANCE_PREFIX]})][LIT_CHARS "\n"][LIT_CHARS "NODE_INSTANCE_PREFIX: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NODE_INSTANCE_PREFIX]})][LIT_CHARS "\n"][LIT_CHARS "NODE_TAGS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NODE_TAGS test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "CLUSTER_IP_RANGE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CLUSTER_IP_RANGE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 10.244.0.0] [LIT_SLASH /] [LIT_CHARS 16]}]})][LIT_CHARS "\n"][LIT_CHARS "SERVER_BINARY_TAR_URL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub server_binary_tar_url]})][LIT_CHARS "\n"][LIT_CHARS "SERVER_BINARY_TAR_HASH: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub SERVER_BINARY_TAR_HASH]})][LIT_CHARS "\n"][LIT_CHARS "SALT_TAR_URL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub salt_tar_url]})][LIT_CHARS "\n"][LIT_CHARS "SALT_TAR_HASH: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub SALT_TAR_HASH]})][LIT_CHARS "\n"][LIT_CHARS "SERVICE_CLUSTER_IP_RANGE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub SERVICE_CLUSTER_IP_RANGE]})][LIT_CHARS "\n"][LIT_CHARS "KUBERNETES_MASTER_NAME: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBERNETES_MASTER_NAME]})][LIT_CHARS "\n"][LIT_CHARS "ALLOCATE_NODE_CIDRS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ALLOCATE_NODE_CIDRS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_CLUSTER_MONITORING: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CLUSTER_MONITORING test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS none]}]})][LIT_CHARS "\n"][LIT_CHARS "DOCKER_REGISTRY_MIRROR_URL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub DOCKER_REGISTRY_MIRROR_URL test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_L7_LOADBALANCING: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_L7_LOADBALANCING test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS none]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_CLUSTER_LOGGING: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CLUSTER_LOGGING test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_CLUSTER_UI: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CLUSTER_UI test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_NODE_PROBLEM_DETECTOR: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_NODE_PROBLEM_DETECTOR test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_NODE_LOGGING: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_NODE_LOGGING test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_RESCHEDULER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_RESCHEDULER test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "LOGGING_DESTINATION: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub LOGGING_DESTINATION test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "ELASTICSEARCH_LOGGING_REPLICAS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ELASTICSEARCH_LOGGING_REPLICAS test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_CLUSTER_DNS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CLUSTER_DNS test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_CLUSTER_REGISTRY: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CLUSTER_REGISTRY test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "CLUSTER_REGISTRY_DISK: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CLUSTER_REGISTRY_DISK test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "CLUSTER_REGISTRY_DISK_SIZE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CLUSTER_REGISTRY_DISK_SIZE test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "DNS_REPLICAS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub DNS_REPLICAS test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "DNS_SERVER_IP: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub DNS_SERVER_IP test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "DNS_DOMAIN: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub DNS_DOMAIN test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBELET_TOKEN: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_TOKEN test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_PROXY_TOKEN: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_PROXY_TOKEN test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "ADMISSION_CONTROL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ADMISSION_CONTROL test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "MASTER_IP_RANGE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub MASTER_IP_RANGE]})][LIT_CHARS "\n"][LIT_CHARS "RUNTIME_CONFIG: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub RUNTIME_CONFIG]})][LIT_CHARS "\n"][LIT_CHARS "CA_CERT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CA_CERT_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBELET_CERT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_CERT_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBELET_KEY: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_KEY_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "NETWORK_PROVIDER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NETWORK_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "NETWORK_POLICY_PROVIDER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NETWORK_POLICY_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "PREPULL_E2E_IMAGES: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub PREPULL_E2E_IMAGES test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "HAIRPIN_MODE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub HAIRPIN_MODE test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "OPENCONTRAIL_TAG: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub OPENCONTRAIL_TAG test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "OPENCONTRAIL_KUBERNETES_TAG: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub OPENCONTRAIL_KUBERNETES_TAG test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "OPENCONTRAIL_PUBLIC_SUBNET: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub OPENCONTRAIL_PUBLIC_SUBNET test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "E2E_STORAGE_TEST_ENVIRONMENT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub E2E_STORAGE_TEST_ENVIRONMENT test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_IMAGE_TAG: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_IMAGE_TAG test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_DOCKER_REGISTRY: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_DOCKER_REGISTRY test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_ADDON_REGISTRY: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_ADDON_REGISTRY test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "MULTIZONE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub MULTIZONE test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "NON_MASQUERADE_CIDR: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NON_MASQUERADE_CIDR test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_UID: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_UID test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"]]} 0), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_PORT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBELET_PORT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_PORT]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBE_APISERVER_REQUEST_TIMEOUT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBE_APISERVER_REQUEST_TIMEOUT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_APISERVER_REQUEST_TIMEOUT]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TERMINATED_POD_GC_THRESHOLD test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "TERMINATED_POD_GC_THRESHOLD: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub TERMINATED_POD_GC_THRESHOLD]})][LIT_CHARS "\n"]]} 0), > ) ) (If (AndOr OP_OR_IF (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS true]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS trusty]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS gci]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS coreos]]}}}}}) (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS false]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS trusty]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS gci]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS coreos]]}}}}}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBE_MANIFESTS_TAR_URL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub kube_manifests_tar_url]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_MANIFESTS_TAR_HASH: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_MANIFESTS_TAR_HASH]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TEST_CLUSTER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "TEST_CLUSTER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub TEST_CLUSTER]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBELET_TEST_ARGS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_TEST_ARGS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBELET_TEST_LOG_LEVEL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_TEST_LOG_LEVEL]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub DOCKER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "DOCKER_TEST_LOG_LEVEL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub DOCKER_TEST_LOG_LEVEL]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ENABLE_CUSTOM_METRICS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "ENABLE_CUSTOM_METRICS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CUSTOM_METRICS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub FEATURE_GATES test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "FEATURE_GATES: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub FEATURE_GATES]})][LIT_CHARS "\n"]]} 0), > ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBERNETES_MASTER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[DQ [LIT_CHARS true]]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_USER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_USER]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_PASSWORD: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_PASSWORD]})][LIT_CHARS "\n"][LIT_CHARS "KUBE_BEARER_TOKEN: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBE_BEARER_TOKEN]})][LIT_CHARS "\n"][LIT_CHARS "MASTER_CERT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub MASTER_CERT_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "MASTER_KEY: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub MASTER_KEY_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBECFG_CERT: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBECFG_CERT_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBECFG_KEY: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBECFG_KEY_BASE64 test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "KUBELET_APISERVER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBELET_APISERVER test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_MANIFEST_URL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_MANIFEST_URL test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})][LIT_CHARS "\n"][LIT_CHARS "MANIFEST_URL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub MANIFEST_URL test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "MANIFEST_URL_HEADER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub MANIFEST_URL_HEADER test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "NUM_NODES: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NUM_NODES]})][LIT_CHARS "\n"][LIT_CHARS "STORAGE_BACKEND: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub STORAGE_BACKEND test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "ENABLE_GARBAGE_COLLECTOR: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_GARBAGE_COLLECTOR test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"]]} 0), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ETCD_VERSION test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "ETCD_VERSION: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ETCD_VERSION]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub APISERVER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "APISERVER_TEST_ARGS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub APISERVER_TEST_ARGS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub APISERVER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "APISERVER_TEST_LOG_LEVEL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub APISERVER_TEST_LOG_LEVEL]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "CONTROLLER_MANAGER_TEST_ARGS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CONTROLLER_MANAGER_TEST_ARGS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "CONTROLLER_MANAGER_TEST_LOG_LEVEL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CONTROLLER_MANAGER_TEST_LOG_LEVEL]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "SCHEDULER_TEST_ARGS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub SCHEDULER_TEST_ARGS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "SCHEDULER_TEST_LOG_LEVEL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub SCHEDULER_TEST_LOG_LEVEL]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub INITIAL_ETCD_CLUSTER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "INITIAL_ETCD_CLUSTER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub INITIAL_ETCD_CLUSTER]})][LIT_CHARS "\n"]]} 0), > ) ) ) (ElseTrue) (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBERNETES_MASTER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[DQ [LIT_CHARS false]]})][LIT_CHARS "\n"][LIT_CHARS "ZONE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ZONE]})][LIT_CHARS "\n"][LIT_CHARS "EXTRA_DOCKER_OPTS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub EXTRA_DOCKER_OPTS test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"]]} 0), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBEPROXY_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBEPROXY_TEST_ARGS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBEPROXY_TEST_ARGS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBEPROXY_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBEPROXY_TEST_LOG_LEVEL: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub KUBEPROXY_TEST_LOG_LEVEL]})][LIT_CHARS "\n"]]} 0), > ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_LABELS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "NODE_LABELS: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub NODE_LABELS]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub EVICTION_HARD test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "EVICTION_HARD: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub EVICTION_HARD]})][LIT_CHARS "\n"]]} 0), > ) ) (If (AndOr OP_OR_IF (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS true]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub MASTER_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS coreos]]}}}) (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub master]]} {[DQ [LIT_CHARS false]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub NODE_OS_DISTRIBUTION]]} {[DQ [LIT_CHARS coreos]]}}}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "KUBERNETES_CONTAINER_RUNTIME: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub CONTAINER_RUNTIME test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS rkt]}]})][LIT_CHARS "\n"][LIT_CHARS "RKT_VERSION: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub RKT_VERSION test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "RKT_PATH: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub RKT_PATH test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"][LIT_CHARS "RKT_STAGE1_IMAGE: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub RKT_STAGE1_IMAGE test_op=VS_TEST_COLON_HYPHEN {}]})][LIT_CHARS "\n"]]} 0), > ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub ENABLE_CLUSTER_AUTOSCALER]]} {[DQ [LIT_CHARS true]]}}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "ENABLE_CLUSTER_AUTOSCALER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub ENABLE_CLUSTER_AUTOSCALER]})][LIT_CHARS "\n"][LIT_CHARS "AUTOSCALER_MIG_CONFIG: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub AUTOSCALER_MIG_CONFIG]})][LIT_CHARS "\n"]]} 0), > ) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub FEDERATION test_op=VS_TEST_COLON_HYPHEN {}]]}}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "FEDERATION: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub FEDERATION]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub FEDERATIONS_DOMAIN_MAP test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "FEDERATIONS_DOMAIN_MAP: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub FEDERATIONS_DOMAIN_MAP]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub FEDERATION_NAME test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "FEDERATION_NAME: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub FEDERATION_NAME]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub DNS_ZONE_NAME test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "DNS_ZONE_NAME: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub DNS_ZONE_NAME]})][LIT_CHARS "\n"]]} 0), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULING_ALGORITHM_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[VarSub file]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "SCHEDULING_ALGORITHM_PROVIDER: "][ComSub (Com {[LIT_CHARS yaml-quote]} {[VarSub SCHEDULING_ALGORITHM_PROVIDER]})][LIT_CHARS "\n"]]} 0), > ) ) ) ) (FunctionDef sha1sum-file [] (If (Com {[LIT_CHARS which]} {[LIT_CHARS sha1sum]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Pipeline (Com {[LIT_CHARS sha1sum]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} ) ) (ElseTrue) (Pipeline (Com {[LIT_CHARS shasum]} {[LIT_CHARS -a1]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS awk]} {[SQ ]} ) ) ) ) (FunctionDef create-certs [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('primary_cn', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('octets', {[Array {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SERVICE_CLUSTER_IP_RANGE]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]}]})]) (DParen {A2 AS_OP_PLUS_EQUAL {A2 AS_OP_LBRACKET {A Atom NODE_ARITH_WORD {[VarSub octets]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('service_ip', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub octets bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_STAR "*"}})]]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('sans', {[DQ ]})]) (For extra [{[VarSub @]}]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub extra]]}}) (= scope= flags=0 words=[] bindings=[('sans', {[DQ [VarSub sans][LIT_CHARS "IP:"][VarSub extra][LIT_CHARS ","]]})]) ) ) (= scope= flags=0 words=[] bindings=[('sans', {[DQ [VarSub sans][LIT_CHARS "IP:"][VarSub service_ip][LIT_CHARS ",DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc."][VarSub DNS_DOMAIN][LIT_CHARS ",DNS:"][VarSub MASTER_NAME]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Generating certs for alternate-names: "][VarSub sans]]} ) (Com {[LIT_CHARS generate-certs]} more_env=[('PRIMARY_CN', {[DQ [VarSub primary_cn]]}), ('SANS', {[DQ [VarSub sans]]})] ) (= scope= flags=0 words=[] bindings=[('CERT_DIR', {[DQ [VarSub KUBE_TEMP][LIT_CHARS /easy-rsa-master/easyrsa3]]})]) (= scope= flags=0 words=[] bindings=[('CA_CERT_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/ca.crt]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('MASTER_CERT_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/issued/][VarSub MASTER_NAME][LIT_CHARS .crt]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('MASTER_KEY_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/private/][VarSub MASTER_NAME][LIT_CHARS .key]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBELET_CERT_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/issued/kubelet.crt]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBELET_KEY_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/private/kubelet.key]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBECFG_CERT_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/issued/kubecfg.crt]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBECFG_KEY_BASE64', {[ComSub (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub CERT_DIR][LIT_CHARS /pki/private/kubecfg.key]]}) (Com {[LIT_CHARS base64]}) (Com {[LIT_CHARS tr]} {[LIT_CHARS -d]} {[SQ ]}) )]})]) ) ) (FunctionDef generate-certs [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('cert_create_debug_output', {[ComSub (Com {[LIT_CHARS mktemp]} {[DQ [VarSub KUBE_TEMP][LIT_CHARS /cert_create_debug_output.XXX]]})]})]) (Fork (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub KUBE_TEMP]]} ) (Com {[LIT_CHARS curl]} {[LIT_CHARS -L]} {[LIT_CHARS -O]} {[LIT_CHARS --connect-timeout]} {[LIT_CHARS 20]} {[LIT_CHARS --retry]} {[LIT_CHARS 6]} {[LIT_CHARS --retry-delay]} {[LIT_CHARS 2]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz]} ) (Com {[LIT_CHARS tar]} {[LIT_CHARS xzf]} {[LIT_CHARS easy-rsa.tar.gz]} ) (Com {[LIT_CHARS cd]} {[LIT_CHARS easy-rsa-master/easyrsa3]} ) (Com {[LIT_CHARS ./easyrsa]} {[LIT_CHARS init-pki]} ) (Com {[LIT_CHARS ./easyrsa]} {[LIT_CHARS --batch]} {[DQ [LIT_CHARS "--req-cn="][VarSub PRIMARY_CN][LIT_CHARS "@"][ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS s]})]]} {[LIT_CHARS build-ca]} {[LIT_CHARS nopass]} ) (Com {[LIT_CHARS ./easyrsa]} {[LIT_CHARS --subject-alt-name] [LIT_DBRACKET_LIKE "="] [DQ [VarSub SANS]]} {[LIT_CHARS build-server-full]} {[DQ [VarSub MASTER_NAME]]} {[LIT_CHARS nopass]} ) (Com {[LIT_CHARS ./easyrsa]} {[LIT_CHARS build-client-full]} {[LIT_CHARS kubelet]} {[LIT_CHARS nopass]} ) (Com {[LIT_CHARS ./easyrsa]} {[LIT_CHARS build-client-full]} {[LIT_CHARS kubecfg]} {[LIT_CHARS nopass]} ) ) ) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub cert_create_debug_output]} "> 1), > ) (List (Com {[LIT_CHARS cat]} {[DQ [VarSub cert_create_debug_output]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "=== Failed to generate certificates: Aborting ==="]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]} ) ) ) ) ) (FunctionDef get-env-val [] (List (= scope= flags=0 words=[] bindings=[('match', {[ComSub (AndOr OP_OR_IF (Subshell (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS grep]} {[VarSub 2]}) ) ) (Com {[LIT_CHARS echo]} {[DQ ]}) )]})]) (If (DBracket {B1 UNARY_STRING_z {[VarSub match]}}) (Com {[LIT_CHARS echo]} {[DQ ]} ) ) (Pipeline (Com {[LIT_CHARS echo]} {[VarSub match]} ) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[LIT_OTHER ":"]} {[LIT_CHARS -f]} {[LIT_CHARS 2]} ) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[\ LIT_ESCAPED_CHAR "\\'"]} {[LIT_CHARS -f]} {[LIT_CHARS 2]} ) ) ) ) (FunctionDef parse-master-env [] (List (= scope= flags=0 words=[] bindings=[('master_env', {[ComSub (Com {[LIT_CHARS get-master-env]})]})]) (= scope= flags=0 words=[] bindings=[('KUBELET_TOKEN', {[ComSub (Com {[LIT_CHARS get-env-val]} {[DQ [VarSub master_env]]} {[DQ [LIT_CHARS KUBELET_TOKEN]]})]})]) (= scope= flags=0 words=[] bindings=[('KUBE_PROXY_TOKEN', {[ComSub (Com {[LIT_CHARS get-env-val]} {[DQ [VarSub master_env]]} {[DQ [LIT_CHARS KUBE_PROXY_TOKEN]]})]})]) (= scope= flags=0 words=[] bindings=[('CA_CERT_BASE64', {[ComSub (Com {[LIT_CHARS get-env-val]} {[DQ [VarSub master_env]]} {[DQ [LIT_CHARS CA_CERT]]})]})]) (= scope= flags=0 words=[] bindings=[('EXTRA_DOCKER_OPTS', {[ComSub (Com {[LIT_CHARS get-env-val]} {[DQ [VarSub master_env]]} {[DQ [LIT_CHARS EXTRA_DOCKER_OPTS]]})]})]) (= scope= flags=0 words=[] bindings=[('KUBELET_CERT_BASE64', {[ComSub (Com {[LIT_CHARS get-env-val]} {[DQ [VarSub master_env]]} {[DQ [LIT_CHARS KUBELET_CERT]]})]})]) (= scope= flags=0 words=[] bindings=[('KUBELET_KEY_BASE64', {[ComSub (Com {[LIT_CHARS get-env-val]} {[DQ [VarSub master_env]]} {[DQ [LIT_CHARS KUBELET_KEY]]})]})]) ) ) )