(List (Com {[LIT_OTHER ":"]} {[DQ [VarSub KUBE_ROOT test_op=VS_TEST_QMARK {[LIT_CHARS "Must set KUBE_ROOT env var"]}]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/kube-util.sh]]} ) (= scope= flags=0 words=[] bindings=[('FEDERATION_PUSH_REPO_BASE', {[VarSub FEDERATION_PUSH_REPO_BASE test_op=VS_TEST_COLON_HYPHEN {}]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub FEDERATION_PUSH_REPO_BASE]]}}) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS gke]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS gce]]}}}) (List (Com {[LIT_CHARS detect-project]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[VarSub PROJECT]} {[LIT_OTHER "*"] [SQ ] [LIT_OTHER "*"]}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub PROJECT][LIT_CHARS " contains ':' and can not be used as FEDERATION_PUSH_REPO_BASE. Please set FEDERATION_PUSH_REPO_BASE explicitly."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('FEDERATION_PUSH_REPO_BASE', {[LIT_CHARS gcr.io/] [VarSub PROJECT]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Must set FEDERATION_PUSH_REPO_BASE env var"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('FEDERATION_IMAGE_REPO_BASE', {[VarSub FEDERATION_IMAGE_REPO_BASE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS "'gcr.io"] [LIT_SLASH /] [LIT_CHARS "google_containers'"]}]})]) (= scope= flags=0 words=[] bindings=[('FEDERATION_NAMESPACE', {[VarSub FEDERATION_NAMESPACE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS federation]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_PLATFORM', {[VarSub KUBE_PLATFORM test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS linux]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_ARCH', {[VarSub KUBE_ARCH test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS amd64]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_BUILD_STAGE', {[VarSub KUBE_BUILD_STAGE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS release-stage]}]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/common.sh]]} ) (= scope= flags=0 words=[] bindings=[('host_kubectl', {[DQ [VarSub KUBE_ROOT][LIT_CHARS "/cluster/kubectl.sh --namespace="][VarSub FEDERATION_NAMESPACE]]})]) (FunctionDef create-federation-api-objects [] (Subshell (List (Com {[LIT_OTHER ":"]} {[DQ [VarSub FEDERATION_PUSH_REPO_BASE test_op=VS_TEST_QMARK {[LIT_CHARS "Must set FEDERATION_PUSH_REPO_BASE env var"]}]]} ) (Com {[LIT_OTHER ":"]} {[DQ [VarSub FEDERATION_IMAGE_TAG test_op=VS_TEST_QMARK {[LIT_CHARS "Must set FEDERATION_IMAGE_TAG env var"]}]]} ) (= scope= flags=1 words=[] bindings=[('FEDERATION_APISERVER_DEPLOYMENT_NAME', {[DQ [LIT_CHARS federation-apiserver]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_APISERVER_IMAGE_REPO', {[DQ [VarSub FEDERATION_PUSH_REPO_BASE][LIT_CHARS /hyperkube]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_APISERVER_IMAGE_TAG', {[DQ [VarSub FEDERATION_IMAGE_TAG]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_CONTROLLER_MANAGER_DEPLOYMENT_NAME', {[DQ [LIT_CHARS federation-controller-manager]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO', {[DQ [VarSub FEDERATION_PUSH_REPO_BASE][LIT_CHARS /hyperkube]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG', {[DQ [VarSub FEDERATION_IMAGE_TAG]]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub FEDERATION_DNS_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]]}}) (If (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS gce]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS gke]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "setting dns provider to google-clouddns"]]} ) (= scope= flags=1 words=[] bindings=[('FEDERATION_DNS_PROVIDER', {[DQ [LIT_CHARS google-clouddns]]})]) ) (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS aws]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "setting dns provider to aws-route53"]]} ) (= scope= flags=1 words=[] bindings=[('FEDERATION_DNS_PROVIDER', {[DQ [LIT_CHARS aws-route53]]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Must set FEDERATION_DNS_PROVIDER env var"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) (= scope= flags=1 words=[] bindings=[('FEDERATION_SERVICE_CIDR', {[VarSub FEDERATION_SERVICE_CIDR test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS 10.10.0.0/24]]}]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_API_NODEPORT', {[LIT_CHARS 32111]})]) (= scope= flags=1 words=[{[LIT_CHARS FEDERATION_NAMESPACE]}] bindings=[]) (= scope= flags=1 words=[] bindings=[('FEDERATION_NAME', {[DQ [VarSub FEDERATION_NAME test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS federation]}]]})]) (= scope= flags=1 words=[] bindings=[('DNS_ZONE_NAME', {[DQ [VarSub DNS_ZONE_NAME test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS federation.example.]}]]})]) (= scope= flags=0 words=[] bindings=[('template', {[DQ [LIT_CHARS "go run "][VarSub KUBE_ROOT][LIT_CHARS /federation/cluster/template.go]]})]) (= scope= flags=0 words=[] bindings=[('FEDERATION_KUBECONFIG_PATH', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /federation/cluster/kubeconfig]]})]) (= scope= flags=0 words=[] bindings=[('federation_kubectl', {[DQ [VarSub KUBE_ROOT][LIT_CHARS "/cluster/kubectl.sh --context=federation-cluster --namespace=default"]]})]) (= scope= flags=0 words=[] bindings=[('manifests_root', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /federation/manifests/]]})]) (Pipeline (Com {[VarSub template]} {[DQ [VarSub manifests_root][LIT_CHARS /federation-ns.yaml]]} ) (Com {[VarSub host_kubectl]} {[LIT_CHARS apply]} {[LIT_CHARS -f]} {[LIT_CHARS -]} ) ) (Com {[LIT_CHARS cleanup-federation-api-objects]} ) (= scope= flags=1 words=[] bindings=[('FEDERATION_API_HOST', {[DQ ]})]) (= scope= flags=1 words=[] bindings=[('KUBE_MASTER_IP', {[DQ ]})]) (= scope= flags=1 words=[] bindings=[('IS_DNS_NAME', {[DQ [LIT_CHARS false]]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS vagrant]]}}) (List (Pipeline (Com {[VarSub template]} {[DQ [VarSub manifests_root][LIT_CHARS /federation-apiserver-nodeport-service.yaml]]} ) (Com {[VarSub host_kubectl]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[LIT_CHARS -]} ) ) (= scope= flags=0 words=[] bindings=[('node_addresses', {[ComSub (Com {[VarSub host_kubectl]} {[LIT_CHARS get]} {[LIT_CHARS nodes]} {[LIT_CHARS -o] [LIT_DBRACKET_LIKE "="] [LIT_VAR_LIKE "jsonpath="] [SQ ]})]})]) (= scope= flags=0 words=[] bindings=[('FEDERATION_API_HOST', {[ComSub (Pipeline (Com {[LIT_CHARS printf]} {[DQ [VarSub node_addresses]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS " "]]} {[LIT_CHARS -f1]}) )]})]) (= scope= flags=0 words=[] bindings=[('KUBE_MASTER_IP', {[DQ [VarSub FEDERATION_API_HOST][LIT_CHARS ":"][VarSub FEDERATION_API_NODEPORT]]})]) ) (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS gce]]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS gke]]}} {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS aws]]}}}}) (List (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_PROVIDER]]} {[DQ [LIT_CHARS aws]]}}) (= scope= flags=0 words=[] bindings=[('IS_DNS_NAME', {[DQ [LIT_CHARS true]]})]) ) (Pipeline (Com {[VarSub template]} {[DQ [VarSub manifests_root][LIT_CHARS /federation-apiserver-lb-service.yaml]]} ) (Com {[VarSub host_kubectl]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[LIT_CHARS -]} ) ) (For i [{[LIT_LBRACE "{"] [LIT_CHARS 1..30] [LIT_RBRACE "}"]}]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "attempting to get federation-apiserver loadbalancer hostname ("][VarSub i][LIT_CHARS " / 30)"]]} ) (For field [{[LIT_CHARS ip]}, {[LIT_CHARS hostname]}]) (List (= scope= flags=0 words=[] bindings=[('FEDERATION_API_HOST', {[ComSub (Com {[VarSub host_kubectl]} {[LIT_CHARS get]} {[LIT_CHARS -o] [LIT_DBRACKET_LIKE "="] [LIT_CHARS jsonpath]} {[LIT_CHARS svc/] [VarSub FEDERATION_APISERVER_DEPLOYMENT_NAME]} {[LIT_CHARS --template]} {[SQ ] [DQ [VarSub field][LIT_CHARS "}"]]})]})]) (If (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub FEDERATION_API_HOST transform_ops=[PatSub {[LIT_CHARS " "]} None do_all]]]}}}) (Com {[LIT_CHARS break]} {[LIT_CHARS 2]} ) ) ) ) (If (DBracket {B2 BINARY_INT_EQ {[VarSub i]} {[LIT_CHARS 30]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Could not find ingress hostname for federation-apiserver loadbalancer service"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 5]} ) ) ) (= scope= flags=0 words=[] bindings=[('KUBE_MASTER_IP', {[DQ [VarSub FEDERATION_API_HOST][LIT_CHARS ":443"]]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "provider "][VarSub KUBERNETES_PROVIDER][LIT_CHARS " is not (yet) supported for e2e testing"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Found federation-apiserver host at "][VarSub FEDERATION_API_HOST]]} ) (= scope= flags=0 words=[] bindings=[('FEDERATION_API_TOKEN', {[DQ [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] =}) )]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_API_KNOWN_TOKENS', {[DQ [VarSub FEDERATION_API_TOKEN][LIT_CHARS ",admin,admin"]]})]) (Com {[LIT_CHARS gen-kube-basicauth]} ) (= scope= flags=1 words=[] bindings=[('FEDERATION_API_BASIC_AUTH', {[DQ [VarSub KUBE_PASSWORD][LIT_CHARS ","][VarSub KUBE_USER][LIT_CHARS ",admin"]]})]) (= scope= flags=0 words=[] bindings=[('KUBECONFIG_DIR', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub KUBECONFIG test_op=VS_TEST_COLON_HYPHEN {[VarSub DEFAULT_KUBECONFIG]}]})]})]) (Com {[LIT_CHARS create-kubeconfig]} more_env=[('CONTEXT', {[LIT_CHARS federation-cluster]}), ('KUBE_BEARER_TOKEN', {[DQ [VarSub FEDERATION_API_TOKEN]]}), ('KUBE_USER', {[DQ [VarSub KUBE_USER]]}), ('KUBE_PASSWORD', {[DQ [VarSub KUBE_PASSWORD]]}), ('KUBECONFIG', {[DQ [VarSub KUBECONFIG_DIR][LIT_CHARS /federation/federation-apiserver/kubeconfig]]})] ) (Com {[VarSub host_kubectl]} {[LIT_CHARS create]} {[LIT_CHARS secret]} {[LIT_CHARS generic]} {[LIT_CHARS federation-apiserver-kubeconfig]} {[LIT_CHARS --from-file] [LIT_DBRACKET_LIKE "="] [DQ [VarSub KUBECONFIG_DIR][LIT_CHARS /federation/federation-apiserver/kubeconfig]]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [DQ [VarSub FEDERATION_NAMESPACE]]} ) (For dir [{[VarSub KUBECONFIG_DIR] [LIT_CHARS /federation/kubernetes-apiserver/] [LIT_OTHER "*"]}]) (List (= scope= flags=0 words=[] bindings=[('name', {[ComSub (Com {[LIT_CHARS basename]} {[VarSub dir]})]})]) (= scope= flags=0 words=[] bindings=[('name', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub name]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/_/-/g]]}) )]})]) (= scope= flags=0 words=[] bindings=[('name', {[VarSub name transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 252]}}]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Creating secret with name: "][VarSub name]]} ) (Com {[VarSub host_kubectl]} {[LIT_CHARS create]} {[LIT_CHARS secret]} {[LIT_CHARS generic]} {[VarSub name]} {[LIT_CHARS --from-file] [LIT_DBRACKET_LIKE "="] [DQ [VarSub dir][LIT_CHARS /kubeconfig]]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [DQ [VarSub FEDERATION_NAMESPACE]]} ) ) ) (Com {[LIT_CHARS ensure-temp-dir]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Creating federation apiserver certs for federation api host: "][VarSub FEDERATION_API_HOST][LIT_CHARS " ( is this a dns name?: "][VarSub IS_DNS_NAME][LIT_CHARS " )"]]} ) (Com {[LIT_CHARS create-federation-apiserver-certs]} {[VarSub FEDERATION_API_HOST]} more_env=[('MASTER_NAME', {[DQ [LIT_CHARS federation-apiserver]]})] ) (= scope= flags=1 words=[] bindings=[('FEDERATION_APISERVER_CA_CERT_BASE64', {[DQ [VarSub FEDERATION_APISERVER_CA_CERT_BASE64]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_APISERVER_CERT_BASE64', {[DQ [VarSub FEDERATION_APISERVER_CERT_BASE64]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_APISERVER_KEY_BASE64', {[DQ [VarSub FEDERATION_APISERVER_KEY_BASE64]]})]) (= scope= flags=1 words=[] bindings=[('FEDERATION_ADMISSION_CONTROL', {[DQ [VarSub FEDERATION_ADMISSION_CONTROL test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS NamespaceLifecycle]}]]})]) (For file [{[LIT_CHARS federation-etcd-pvc.yaml]}, {[LIT_CHARS federation-apiserver-] [LIT_LBRACE "{"] [LIT_CHARS deployment] [LIT_COMMA ","] [LIT_CHARS secrets] [LIT_RBRACE "}"] [LIT_CHARS .yaml]}, {[LIT_CHARS federation-controller-manager-deployment.yaml]}]) (Pipeline (Com {[VarSub template]} {[DQ [VarSub manifests_root][LIT_CHARS /][VarSub file]]} ) (Com {[VarSub host_kubectl]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[LIT_CHARS -]} ) ) ) (Com {[LIT_CHARS create-kubeconfig]} more_env=[('CONTEXT', {[LIT_CHARS federation-cluster]}), ('KUBE_BEARER_TOKEN', {[DQ [VarSub FEDERATION_API_TOKEN]]}), ('KUBE_USER', {[DQ [VarSub KUBE_USER]]}), ('KUBE_PASSWORD', {[DQ [VarSub KUBE_PASSWORD]]}), ('SECONDARY_KUBECONFIG', {[LIT_CHARS true]})] ) (For i [{[LIT_LBRACE "{"] [LIT_CHARS 1..30] [LIT_RBRACE "}"]}]) (List (= scope= flags=0 words=[] bindings=[('phase', {[DQ [ComSub (Com {[VarSub host_kubectl]} {[LIT_CHARS get]} {[LIT_CHARS -o] [LIT_DBRACKET_LIKE "="] [LIT_CHARS jsonpath]} {[LIT_CHARS pods]} {[LIT_CHARS -lapp] [LIT_DBRACKET_LIKE "="] [LIT_CHARS federated-cluster] [LIT_COMMA ","] [LIT_VAR_LIKE "module="] [LIT_CHARS federation-apiserver]} {[LIT_CHARS --template]} {[SQ ]})]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for federation-apiserver to be running...(phase= "][VarSub phase][LIT_CHARS ")"]]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub phase]]} {[DQ [LIT_CHARS Running]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "federation-apiserver pod is running!"]]} ) (Com {[LIT_CHARS break]} ) ) ) (If (DBracket {B2 BINARY_INT_EQ {[VarSub i]} {[LIT_CHARS 30]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "federation-apiserver pod is not running! giving up."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 4]} ) ) ) (For i [{[LIT_LBRACE "{"] [LIT_CHARS 1..30] [LIT_RBRACE "}"]}]) (List (= scope= flags=0 words=[] bindings=[('phase', {[DQ [ComSub (Com {[VarSub host_kubectl]} {[LIT_CHARS get]} {[LIT_CHARS -o] [LIT_DBRACKET_LIKE "="] [LIT_CHARS jsonpath]} {[LIT_CHARS pods]} {[LIT_CHARS -lapp] [LIT_DBRACKET_LIKE "="] [LIT_CHARS federated-cluster] [LIT_COMMA ","] [LIT_VAR_LIKE "module="] [LIT_CHARS federation-controller-manager]} {[LIT_CHARS --template]} {[SQ ]})]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for federation-controller-manager to be running...(phase= "][VarSub phase][LIT_CHARS ")"]]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub phase]]} {[DQ [LIT_CHARS Running]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "federation-controller-manager pod is running!"]]} ) (Com {[LIT_CHARS break]} ) ) ) (If (DBracket {B2 BINARY_INT_EQ {[VarSub i]} {[LIT_CHARS 30]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "federation-controller-manager pod is not running! giving up."]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 4]} ) ) ) ) ) ) (FunctionDef create-federation-apiserver-certs [] (List (= scope= flags=0 words=[{[LIT_CHARS primary_cn]}] bindings=[]) (= scope= flags=0 words=[{[LIT_CHARS sans]}] bindings=[]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub IS_DNS_NAME test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS true]]}}) (List (= scope= flags=0 words=[] bindings=[('primary_cn', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS printf]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS sha1sum]}) (Com {[LIT_CHARS tr]} {[DQ [LIT_CHARS " -"]]} {[DQ [LIT_CHARS " "]]}) )]]})]) (= scope= flags=0 words=[] bindings=[('sans', {[DQ [LIT_CHARS "DNS:"][VarSub 1][LIT_CHARS ",DNS:"][VarSub MASTER_NAME]]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('primary_cn', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('sans', {[DQ [LIT_CHARS "IP:"][VarSub 1][LIT_CHARS ",DNS:"][VarSub MASTER_NAME]]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Generating certs for alternate-names: "][VarSub sans]]} ) (= scope= flags=0 words=[] bindings=[('kube_temp', {[DQ [VarSub KUBE_TEMP][LIT_CHARS /federation]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub kube_temp]]} ) (Com {[LIT_CHARS generate-certs]} more_env=[('KUBE_TEMP', {[DQ [VarSub kube_temp]]}), ('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=[('FEDERATION_APISERVER_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=[('FEDERATION_APISERVER_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=[('FEDERATION_APISERVER_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 ]}) )]})]) ) ) (FunctionDef push-federation-images [] (List (Com {[LIT_OTHER ":"]} {[DQ [VarSub FEDERATION_PUSH_REPO_BASE test_op=VS_TEST_QMARK {[LIT_CHARS "Must set FEDERATION_PUSH_REPO_BASE env var"]}]]} ) (Com {[LIT_OTHER ":"]} {[DQ [VarSub FEDERATION_IMAGE_TAG test_op=VS_TEST_QMARK {[LIT_CHARS "Must set FEDERATION_IMAGE_TAG env var"]}]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /build-tools/common.sh]]} ) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /hack/lib/util.sh]]} ) (= scope= flags=0 words=[] bindings=[('FEDERATION_BINARIES', {[VarSub FEDERATION_BINARIES test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS hyperkube]]}]})]) (= scope= flags=0 words=[] bindings=[('bin_dir', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /_output/][VarSub KUBE_BUILD_STAGE][LIT_CHARS /server/][VarSub KUBE_PLATFORM][LIT_CHARS -][VarSub KUBE_ARCH][LIT_CHARS /kubernetes/server/bin]]})]) (If (DBracket {B! {B1 UNARY_FILE_d {[DQ [VarSub bin_dir]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub bin_dir][LIT_CHARS " does not exist! Run make quick-release or make release"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (For binary [{[VarSub FEDERATION_BINARIES]}]) (List (= scope= flags=0 words=[] bindings=[('bin_path', {[DQ [VarSub bin_dir][LIT_CHARS /][VarSub binary]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub bin_path]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub bin_path][LIT_CHARS " does not exist!"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('docker_build_path', {[DQ [VarSub bin_path][LIT_CHARS .dockerbuild]]})]) (= scope= flags=0 words=[] bindings=[('docker_file_path', {[DQ [VarSub docker_build_path][LIT_CHARS /Dockerfile]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub docker_build_path]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub docker_build_path]} ) (Com {[LIT_CHARS ln]} {[DQ [VarSub bin_path]]} {[DQ [VarSub docker_build_path][LIT_CHARS /][VarSub binary]]} ) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS " FROM debian:jessie "][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS " ADD "][VarSub binary][LIT_CHARS " /usr/local/bin/"][VarSub binary][\ LIT_ESCAPED_CHAR "\\n"]]} < (FilenameRedirectNode filename={[VarSub docker_file_path]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('docker_image_tag', {[DQ [VarSub FEDERATION_PUSH_REPO_BASE][LIT_CHARS /][VarSub binary][LIT_CHARS ":"][VarSub FEDERATION_IMAGE_TAG]]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Building docker image "][VarSub docker_image_tag][LIT_CHARS " from the binary"]]} ) (Com {[LIT_CHARS docker]} {[LIT_CHARS build]} {[LIT_CHARS -q]} {[LIT_CHARS -t]} {[DQ [VarSub docker_image_tag]]} {[VarSub docker_build_path]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub docker_build_path]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Pushing "][VarSub docker_image_tag]]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub FEDERATION_PUSH_REPO_BASE]]} {[DQ [LIT_CHARS gcr.io/]] [LIT_OTHER "*"]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " -> GCR repository detected. Using gcloud"]]} ) (Com {[LIT_CHARS gcloud]} {[LIT_CHARS docker]} {[LIT_CHARS --]} {[LIT_CHARS push]} {[DQ [VarSub docker_image_tag]]} ) ) (ElseTrue) (Com {[LIT_CHARS docker]} {[LIT_CHARS push]} {[DQ [VarSub docker_image_tag]]} ) ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Deleting docker image "][VarSub docker_image_tag]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS docker]} {[LIT_CHARS rmi]} {[DQ [VarSub docker_image_tag]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS true]} ) ) ) ) ) ) (FunctionDef cleanup-federation-api-objects [] (List (Com {[VarSub host_kubectl]} {[LIT_CHARS delete]} {[LIT_CHARS pods] [LIT_COMMA ","] [LIT_CHARS svc] [LIT_COMMA ","] [LIT_CHARS rc] [LIT_COMMA ","] [LIT_CHARS deployment] [LIT_COMMA ","] [LIT_CHARS secret]} {[LIT_CHARS -lapp] [LIT_DBRACKET_LIKE "="] [LIT_CHARS federated-cluster]} ) (Com {[VarSub host_kubectl]} {[LIT_CHARS delete]} {[LIT_CHARS pvc] [LIT_COMMA ","] [LIT_CHARS pv] [LIT_COMMA ","] [LIT_CHARS pods] [LIT_COMMA ","] [LIT_CHARS svc] [LIT_COMMA ","] [LIT_CHARS rc] [LIT_COMMA ","] [LIT_CHARS deployment] [LIT_COMMA ","] [LIT_CHARS secret]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [VarSub FEDERATION_NAMESPACE]} {[LIT_CHARS --all]} ) ) ) )