(List (FunctionDef config_hostname [] (List (= scope= flags=0 words=[] bindings=[('host_name', {[ComSub (Com {[LIT_CHARS curl]} {[LIT_CHARS --silent]} {[DQ [LIT_CHARS "http://metadata.google.internal/computeMetadata/v1/instance/hostname"]]} {[LIT_CHARS -H]} {[DQ [LIT_CHARS "Metadata-Flavor: Google"]]})]})]) (= scope= flags=0 words=[] bindings=[('short_hostname', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub host_name]]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d.]} {[LIT_CHARS -f1]}) )]})]) (Com {[LIT_CHARS hostname]} {[DQ [VarSub short_hostname]]} ) ) ) (FunctionDef config_ip_firewall [] (List (If (Pipeline (Com {[LIT_CHARS iptables]} {[LIT_CHARS -L]} {[LIT_CHARS INPUT]} ) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "Chain INPUT (policy DROP)"]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Add rules to accpet all inbound TCP/UDP/ICMP packets"]]} ) (Com {[LIT_CHARS iptables]} {[LIT_CHARS -A]} {[LIT_CHARS INPUT]} {[LIT_CHARS -w]} {[LIT_CHARS -p]} {[LIT_CHARS TCP]} {[LIT_CHARS -j]} {[LIT_CHARS ACCEPT]} ) (Com {[LIT_CHARS iptables]} {[LIT_CHARS -A]} {[LIT_CHARS INPUT]} {[LIT_CHARS -w]} {[LIT_CHARS -p]} {[LIT_CHARS UDP]} {[LIT_CHARS -j]} {[LIT_CHARS ACCEPT]} ) (Com {[LIT_CHARS iptables]} {[LIT_CHARS -A]} {[LIT_CHARS INPUT]} {[LIT_CHARS -w]} {[LIT_CHARS -p]} {[LIT_CHARS ICMP]} {[LIT_CHARS -j]} {[LIT_CHARS ACCEPT]} ) ) ) (If (Pipeline (Com {[LIT_CHARS iptables]} {[LIT_CHARS -L]} {[LIT_CHARS FORWARD]} ) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "Chain FORWARD (policy DROP)"]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Add rules to accpet all forwarded TCP/UDP/ICMP packets"]]} ) (Com {[LIT_CHARS iptables]} {[LIT_CHARS -A]} {[LIT_CHARS FORWARD]} {[LIT_CHARS -w]} {[LIT_CHARS -p]} {[LIT_CHARS TCP]} {[LIT_CHARS -j]} {[LIT_CHARS ACCEPT]} ) (Com {[LIT_CHARS iptables]} {[LIT_CHARS -A]} {[LIT_CHARS FORWARD]} {[LIT_CHARS -w]} {[LIT_CHARS -p]} {[LIT_CHARS UDP]} {[LIT_CHARS -j]} {[LIT_CHARS ACCEPT]} ) (Com {[LIT_CHARS iptables]} {[LIT_CHARS -A]} {[LIT_CHARS FORWARD]} {[LIT_CHARS -w]} {[LIT_CHARS -p]} {[LIT_CHARS ICMP]} {[LIT_CHARS -j]} {[LIT_CHARS ACCEPT]} ) ) ) ) ) (FunctionDef create_dirs [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /var/lib/kubelet]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /etc/kubernetes/manifests]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub KUBERNETES_MASTER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS false]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /var/lib/kube-proxy]} ) ) ) ) (FunctionDef create_kubelet_kubeconfig [] (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub KUBELET_CA_CERT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('KUBELET_CA_CERT', {[DQ [VarSub CA_CERT]]})]) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS /var/lib/kubelet/kubeconfig]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "apiVersion: v1\n"][LIT_CHARS "kind: Config\n"][LIT_CHARS "users:\n"][LIT_CHARS "- name: kubelet\n"][LIT_CHARS " user:\n"][LIT_CHARS " client-certificate-data: "][VarSub KUBELET_CERT][LIT_CHARS "\n"][LIT_CHARS " client-key-data: "][VarSub KUBELET_KEY][LIT_CHARS "\n"][LIT_CHARS "clusters:\n"][LIT_CHARS "- name: local\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " certificate-authority-data: "][VarSub KUBELET_CA_CERT][LIT_CHARS "\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: local\n"][LIT_CHARS " user: kubelet\n"][LIT_CHARS " name: service-account-context\n"][LIT_CHARS "current-context: service-account-context\n"]]} 0), > ) ) ) (FunctionDef create_kubeproxy_kubeconfig [] (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS /var/lib/kube-proxy/kubeconfig]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "apiVersion: v1\n"][LIT_CHARS "kind: Config\n"][LIT_CHARS "users:\n"][LIT_CHARS "- name: kube-proxy\n"][LIT_CHARS " user:\n"][LIT_CHARS " token: "][VarSub KUBE_PROXY_TOKEN][LIT_CHARS "\n"][LIT_CHARS "clusters:\n"][LIT_CHARS "- name: local\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " certificate-authority-data: "][VarSub CA_CERT][LIT_CHARS "\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: local\n"][LIT_CHARS " user: kube-proxy\n"][LIT_CHARS " name: service-account-context\n"][LIT_CHARS "current-context: service-account-context\n"]]} 0), > ) ) (FunctionDef install_critical_packages [] (List (Com {[LIT_CHARS apt-get]} {[LIT_CHARS update]} ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS docker]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Do not find docker. Install it."]]} ) (Pipeline (Com {[LIT_CHARS curl]} {[LIT_CHARS -fsSL]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //get.docker.com/]} ) (Com {[LIT_CHARS sh]} ) ) ) ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS brctl]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Do not find brctl. Install it."]]} ) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS install]} {[LIT_CHARS --yes]} {[LIT_CHARS bridge-utils]} ) ) ) ) ) (FunctionDef install_additional_packages [] (List (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS socat]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Do not find socat. Install it."]]} ) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS install]} {[LIT_CHARS --yes]} {[LIT_CHARS socat]} ) ) ) (If (Pipeline! (Com {[LIT_CHARS which]} {[LIT_CHARS nsenter]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Do not find nsenter. Install it."]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /tmp/nsenter-install]} ) (Com {[LIT_CHARS cd]} {[LIT_CHARS /tmp/nsenter-install]} ) (Pipeline (Com {[LIT_CHARS curl]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz]} ) (Com {[LIT_CHARS tar]} {[LIT_CHARS -zxf-]} ) ) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS --yes]} {[LIT_CHARS install]} {[LIT_CHARS make]} ) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS --yes]} {[LIT_CHARS install]} {[LIT_CHARS gcc]} ) (Com {[LIT_CHARS cd]} {[LIT_CHARS util-linux-2.24]} ) (Com {[LIT_CHARS ./configure]} {[LIT_CHARS --without-ncurses]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS nsenter]} ) (Com {[LIT_CHARS cp]} {[LIT_CHARS nsenter]} {[LIT_CHARS /usr/local/bin]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS /tmp/nsenter-install]} ) ) ) ) ) (FunctionDef assemble_kubelet_flags [] (List (= scope= flags=0 words=[] bindings=[('log_level', {[DQ [LIT_CHARS "--v=2"]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('log_level', {[DQ [VarSub KUBELET_TEST_LOG_LEVEL]]})]) ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub log_level][LIT_CHARS " "][VarSub KUBELET_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_PORT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --port="][VarSub KUBELET_PORT]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub KUBERNETES_MASTER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --enable-debugging-handlers=false --hairpin-mode=none"]]})]) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub KUBELET_APISERVER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub KUBELET_CERT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub KUBELET_KEY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --api-servers=https://"][VarSub KUBELET_APISERVER][LIT_CHARS " --register-schedulable=false --pod-cidr=10.123.45.0/29"]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --pod-cidr="][VarSub MASTER_IP_RANGE]]})]) ) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --enable-debugging-handlers=true --api-servers=https://"][VarSub KUBERNETES_MASTER_NAME]]})]) (If (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub HAIRPIN_MODE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS promiscuous-bridge]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub HAIRPIN_MODE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS hairpin-veth]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub HAIRPIN_MODE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS none]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --hairpin-mode="][VarSub HAIRPIN_MODE]]})]) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_MANIFEST_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --manifest-url="][VarSub MANIFEST_URL][LIT_CHARS " --manifest-url-header="][VarSub MANIFEST_URL_HEADER]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ENABLE_CUSTOM_METRICS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --enable-custom-metrics="][VarSub ENABLE_CUSTOM_METRICS]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_LABELS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --node-labels="][VarSub NODE_LABELS]]})]) ) (= scope= flags=0 words=[] bindings=[('KUBELET_CMD_FLAGS', {[DQ [VarSub KUBELET_CMD_FLAGS][LIT_CHARS " --cloud-provider=gce --allow-privileged=true --cgroup-root=/ --system-cgroups=/system --kubelet-cgroups=/kubelet --babysit-daemons=true --config=/etc/kubernetes/manifests --cluster-dns="][VarSub DNS_SERVER_IP][LIT_CHARS " --cluster-domain="][VarSub DNS_DOMAIN]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "KUBELET_OPTS="][\ LIT_ESCAPED_CHAR "\\\""][VarSub KUBELET_CMD_FLAGS][\ LIT_ESCAPED_CHAR "\\\""]]} < (FilenameRedirectNode filename={[LIT_CHARS /etc/default/kubelet]} "> 1), > ) ) ) (FunctionDef start_kubelet [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Start kubelet"]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS iptables]} {[LIT_CHARS -t]} {[LIT_CHARS nat]} {[LIT_CHARS -F]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS ip]} {[LIT_CHARS link]} {[LIT_CHARS set]} {[LIT_CHARS docker0]} {[LIT_CHARS down]} ) (Com {[LIT_CHARS true]} ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS brctl]} {[LIT_CHARS delbr]} {[LIT_CHARS docker0]} ) (Com {[LIT_CHARS true]} ) ) (Com {[LIT_CHARS .]} {[LIT_CHARS /etc/default/kubelet]} ) (Com {[LIT_CHARS /usr/bin/kubelet]} {[VarSub KUBELET_OPTS]} < (FilenameRedirectNode filename={[LIT_CHARS /var/log/kubelet.log]} >"> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) ) (FunctionDef restart_docker_daemon [] (List (= scope= flags=0 words=[] bindings=[('DOCKER_OPTS', {[DQ [LIT_CHARS "-p /var/run/docker.pid --bridge=cbr0 --iptables=false --ip-masq=false"]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub TEST_CLUSTER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('DOCKER_OPTS', {[DQ [VarSub DOCKER_OPTS][LIT_CHARS " --debug"]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub DOCKER_REGISTRY_MIRROR_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Enable docker registry mirror at: "][VarSub DOCKER_REGISTRY_MIRROR_URL]]} ) (= scope= flags=0 words=[] bindings=[('DOCKER_OPTS', {[DQ [VarSub DOCKER_OPTS][LIT_CHARS " --registry-mirror="][VarSub DOCKER_REGISTRY_MIRROR_URL]]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "DOCKER_OPTS="][\ LIT_ESCAPED_CHAR "\\\""][VarSub DOCKER_OPTS][LIT_CHARS " "][VarSub EXTRA_DOCKER_OPTS test_op=VS_TEST_COLON_HYPHEN {}][\ LIT_ESCAPED_CHAR "\\\""]]} < (FilenameRedirectNode filename={[LIT_CHARS /etc/default/docker]} "> 1), > ) (While (Pipeline! (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -L]} {[LIT_CHARS /sys/class/net/cbr0]} {[LIT_DBRACKET_LIKE "]"]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Sleep 1 second to wait for cbr0"]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) ) (While (Pipeline! (Com {[LIT_CHARS docker]} {[LIT_CHARS version]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Sleep 1 second to wait for docker daemon"]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef prepare_log_file [] (List (Com {[LIT_CHARS touch]} {[VarSub 1]} ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 644]} {[VarSub 1]} ) (Com {[LIT_CHARS chown]} {[LIT_CHARS root] [LIT_OTHER ":"] [LIT_CHARS root]} {[VarSub 1]} ) ) ) (FunctionDef health_monitoring [] (List (= scope= flags=0 words=[] bindings=[('sleep_seconds', {[LIT_CHARS 10]})]) (= scope= flags=0 words=[] bindings=[('max_seconds', {[LIT_CHARS 10]})]) (While (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (Pipeline! (Com {[LIT_CHARS timeout]} {[LIT_CHARS 10]} {[LIT_CHARS docker]} {[LIT_CHARS version]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Docker daemon failed!"]]} ) (Com {[LIT_CHARS pkill]} {[LIT_CHARS docker]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 30]} ) ) ) (If (Pipeline! (Com {[LIT_CHARS curl]} {[LIT_CHARS --insecure]} {[LIT_CHARS -m]} {[DQ [VarSub max_seconds]]} {[LIT_CHARS -f]} {[LIT_CHARS -s]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //127.0.0.1] [LIT_OTHER ":"] [VarSub KUBELET_PORT test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 10250]}] [LIT_CHARS /healthz]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Kubelet is unhealthy!"]]} ) (Com {[LIT_CHARS pkill]} {[LIT_CHARS kubelet]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 60]} ) ) ) (Com {[LIT_CHARS sleep]} {[DQ [VarSub sleep_seconds]]} ) ) ) ) ) (FunctionDef mount_master_pd [] (List (= scope= flags=2 words=[] bindings=[('pd_path', {[DQ [LIT_CHARS /dev/disk/by-id/google-master-pd]]})]) (= scope= flags=2 words=[] bindings=[('mount_point', {[DQ [LIT_CHARS /mnt/disks/master-pd]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub pd_path]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS return]} ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub mount_point]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS /usr/share/google/safe_format_and_mount]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "mkfs.ext4 -F"]]} {[DQ [VarSub pd_path]]} {[DQ [VarSub mount_point]]} < (FilenameRedirectNode filename={[LIT_CHARS /var/log/master-pd-mount.log]} "> 1), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "!!! master-pd mount failed, review /var/log/master-pd-mount.log !!!"]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -m]} {[LIT_CHARS 700]} {[LIT_CHARS -p]} {[DQ [VarSub mount_point][LIT_CHARS /var/etcd]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub mount_point][LIT_CHARS /etc/srv/kubernetes]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub mount_point][LIT_CHARS /etc/srv/sshproxy]]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[DQ [VarSub mount_point][LIT_CHARS /var/etcd]]} {[LIT_CHARS /var/etcd]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /etc/srv]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[DQ [VarSub mount_point][LIT_CHARS /etc/srv/kubernetes]]} {[LIT_CHARS /etc/srv/kubernetes]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[DQ [VarSub mount_point][LIT_CHARS /etc/srv/sshproxy]]} {[LIT_CHARS /etc/srv/sshproxy]} ) (If (List (Fork (Pipeline! (Com {[LIT_CHARS id]} {[LIT_CHARS etcd]} ) ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (Com {[LIT_CHARS useradd]} {[LIT_CHARS -s]} {[LIT_CHARS /sbin/nologin]} {[LIT_CHARS -d]} {[LIT_CHARS /var/etcd]} {[LIT_CHARS etcd]} ) ) (Com {[LIT_CHARS chown]} {[LIT_CHARS -R]} {[LIT_CHARS etcd]} {[DQ [VarSub mount_point][LIT_CHARS /var/etcd]]} ) (Com {[LIT_CHARS chgrp]} {[LIT_CHARS -R]} {[LIT_CHARS etcd]} {[DQ [VarSub mount_point][LIT_CHARS /var/etcd]]} ) ) ) (FunctionDef create_master_auth [] (List (= scope= flags=2 words=[] bindings=[('auth_dir', {[DQ [LIT_CHARS /etc/srv/kubernetes]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub auth_dir][LIT_CHARS /ca.crt]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub CA_CERT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub MASTER_CERT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -z]} {[DQ [VarSub MASTER_KEY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (List (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub CA_CERT]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub auth_dir][LIT_CHARS /ca.crt]]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub MASTER_CERT]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub auth_dir][LIT_CHARS /server.cert]]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub MASTER_KEY]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub auth_dir][LIT_CHARS /server.key]]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBECFG_CERT test_op=VS_TEST_COLON_HYPHEN {}]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub auth_dir][LIT_CHARS /kubecfg.crt]]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBECFG_KEY test_op=VS_TEST_COLON_HYPHEN {}]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[DQ [VarSub auth_dir][LIT_CHARS /kubecfg.key]]} "> 1), > ) ) ) ) ) (= scope= flags=2 words=[] bindings=[('basic_auth_csv', {[DQ [VarSub auth_dir][LIT_CHARS /basic_auth.csv]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub basic_auth_csv]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_PASSWORD][LIT_CHARS ","][VarSub KUBE_USER][LIT_CHARS ",admin"]]} < (FilenameRedirectNode filename={[DQ [VarSub basic_auth_csv]]} "> 1), > ) ) (= scope= flags=2 words=[] bindings=[('known_tokens_csv', {[DQ [VarSub auth_dir][LIT_CHARS /known_tokens.csv]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub known_tokens_csv]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_BEARER_TOKEN][LIT_CHARS ",admin,admin"]]} < (FilenameRedirectNode filename={[DQ [VarSub known_tokens_csv]]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBELET_TOKEN][LIT_CHARS ",kubelet,kubelet"]]} < (FilenameRedirectNode filename={[DQ [VarSub known_tokens_csv]]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_PROXY_TOKEN][LIT_CHARS ",kube_proxy,kube_proxy"]]} < (FilenameRedirectNode filename={[DQ [VarSub known_tokens_csv]]} >"> 1), > ) ) ) (= scope= flags=0 words=[] bindings=[('use_cloud_config', {[DQ [LIT_CHARS false]]})]) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "[global]\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gce.conf]} "> 1), > ) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub PROJECT_ID test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TOKEN_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TOKEN_BODY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_NETWORK test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) ) (List (= scope= flags=0 words=[] bindings=[('use_cloud_config', {[DQ [LIT_CHARS true]]})]) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "token-url = "][VarSub TOKEN_URL][LIT_CHARS "\n"][LIT_CHARS "token-body = "][VarSub TOKEN_BODY][LIT_CHARS "\n"][LIT_CHARS "project-id = "][VarSub PROJECT_ID][LIT_CHARS "\n"][LIT_CHARS "network-name = "][VarSub NODE_NETWORK][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gce.conf]} >"> 1), > ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_INSTANCE_PREFIX test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('use_cloud_config', {[DQ [LIT_CHARS true]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub NODE_TAGS test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('node_tags', {[DQ [VarSub NODE_TAGS]]})]) (ElseTrue) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('node_tags', {[DQ [VarSub NODE_INSTANCE_PREFIX]]})]) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "node-tags = "][VarSub node_tags][LIT_CHARS "\n"][LIT_CHARS "node-instance-prefix = "][VarSub NODE_INSTANCE_PREFIX][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gce.conf]} >"> 1), > ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub MULTIZONE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "multizone = "][VarSub MULTIZONE][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gce.conf]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub use_cloud_config]]} {[LIT_NEQUAL "!="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /etc/gce.conf]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub GCP_AUTHN_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "clusters:\n"][LIT_CHARS " - name: gcp-authentication-server\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " server: "][VarSub GCP_AUTHN_URL][LIT_CHARS "\n"][LIT_CHARS "users:\n"][LIT_CHARS " - name: kube-apiserver\n"][LIT_CHARS " user:\n"][LIT_CHARS " auth-provider:\n"][LIT_CHARS " name: gcp\n"][LIT_CHARS "current-context: webhook\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: gcp-authentication-server\n"][LIT_CHARS " user: kube-apiserver\n"][LIT_CHARS " name: webhook\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gcp_authn.config]} "> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub GCP_AUTHZ_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "clusters:\n"][LIT_CHARS " - name: gcp-authorization-server\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " server: "][VarSub GCP_AUTHZ_URL][LIT_CHARS "\n"][LIT_CHARS "users:\n"][LIT_CHARS " - name: kube-apiserver\n"][LIT_CHARS " user:\n"][LIT_CHARS " auth-provider:\n"][LIT_CHARS " name: gcp\n"][LIT_CHARS "current-context: webhook\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: gcp-authorization-server\n"][LIT_CHARS " user: kube-apiserver\n"][LIT_CHARS " name: webhook\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gcp_authz.config]} "> 1), > ) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub GCP_IMAGE_VERIFICATION_URL test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "clusters:\n"][LIT_CHARS " - name: gcp-image-review-server\n"][LIT_CHARS " cluster:\n"][LIT_CHARS " server: "][VarSub GCP_IMAGE_VERIFICATION_URL][LIT_CHARS "\n"][LIT_CHARS "users:\n"][LIT_CHARS " - name: kube-apiserver\n"][LIT_CHARS " user:\n"][LIT_CHARS " auth-provider:\n"][LIT_CHARS " name: gcp\n"][LIT_CHARS "current-context: webhook\n"][LIT_CHARS "contexts:\n"][LIT_CHARS "- context:\n"][LIT_CHARS " cluster: gcp-image-review-server\n"][LIT_CHARS " user: kube-apiserver\n"][LIT_CHARS " name: webhook\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/gcp_image_review.config]} "> 1), > ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "imagePolicy:\n"][LIT_CHARS " kubeConfigFile: /etc/gcp_image_review.config\n"][LIT_CHARS " allowTTL: 30\n"][LIT_CHARS " denyTTL: 30\n"][LIT_CHARS " retryBackoff: 500\n"][LIT_CHARS " defaultAllow: true\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/admission_controller.config]} "> 1), > ) ) ) ) ) (FunctionDef create_master_kubelet_auth [] (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_APISERVER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_CERT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_KEY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (Com {[LIT_CHARS create_kubelet_kubeconfig]} ) ) ) (FunctionDef prepare_etcd_manifest [] (List (= scope= flags=0 words=[] bindings=[('host_name', {[ComSub (Com {[LIT_CHARS hostname]})]})]) (= scope= flags=0 words=[] bindings=[('etcd_cluster', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('cluster_state', {[DQ [LIT_CHARS new]]})]) (For host [{[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub INITIAL_ETCD_CLUSTER test_op=VS_TEST_COLON_HYPHEN {[VarSub host_name]}]]}) (Com {[LIT_CHARS tr]} {[DQ [LIT_CHARS ","]]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"]]}) )]}]) (List (= scope= flags=0 words=[] bindings=[('etcd_host', {[DQ [LIT_CHARS etcd-][VarSub host][LIT_CHARS "=http://"][VarSub host][LIT_CHARS ":"][VarSub 3]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub etcd_cluster]]}}) (List (= scope= flags=0 words=[] bindings=[('etcd_cluster+', {[DQ [LIT_CHARS ","]]})]) (= scope= flags=0 words=[] bindings=[('cluster_state', {[DQ [LIT_CHARS existing]]})]) ) ) (= scope= flags=0 words=[] bindings=[('etcd_cluster+', {[DQ [VarSub etcd_host]]})]) ) ) (= scope= flags=0 words=[] bindings=[('etcd_temp_file', {[DQ [LIT_CHARS /tmp/][VarSub 5]]})]) (Com {[LIT_CHARS cp]} {[LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/gci-trusty/etcd.manifest]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *suffix *}}@"][VarSub 1][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *port *}}@"][VarSub 2][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *server_port *}}@"][VarSub 3][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *cpulimit *}}@"][\ LIT_ESCAPED_CHAR "\\\""][VarSub 4][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *hostname *}}@"][VarSub host_name][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *etcd_cluster *}}@"][VarSub etcd_cluster][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *storage_backend *}}@"][VarSub STORAGE_BACKEND test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "@g"]]} {[DQ [VarSub temp_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *cluster_state *}}@"][VarSub cluster_state][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub ETCD_VERSION test_op=VS_TEST_COLON_HYPHEN {}]]}}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\."][LIT_CHARS "get('etcd_docker_tag', '"][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS ".*"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS "') *}}@"][VarSub ETCD_VERSION][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (ElseTrue) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\."][LIT_CHARS "get('etcd_docker_tag', '"][\ LIT_ESCAPED_CHAR "\\("][LIT_CHARS ".*"][\ LIT_ESCAPED_CHAR "\\)"][LIT_CHARS "') *}}@"][\ LIT_ESCAPED_CHAR "\\1"][LIT_CHARS "@g"]]} {[DQ [VarSub etcd_temp_file]]} ) ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@/mnt/master-pd/var/etcd@/mnt/disks/master-pd/var/etcd@g"]]} {[DQ [VarSub etcd_temp_file]]} ) (Com {[LIT_CHARS mv]} {[DQ [VarSub etcd_temp_file]]} {[LIT_CHARS /etc/kubernetes/manifests]} ) ) ) (FunctionDef start_etcd_servers [] (List (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -d]} {[LIT_CHARS /etc/etcd]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS /etc/etcd]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[LIT_CHARS /etc/default/etcd]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /etc/default/etcd]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[LIT_CHARS /etc/systemd/system/etcd.service]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /etc/systemd/system/etcd.service]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[LIT_CHARS /etc/init.d/etcd]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /etc/init.d/etcd]} ) ) (Com {[LIT_CHARS prepare_log_file]} {[LIT_CHARS /var/log/etcd.log]} ) (Com {[LIT_CHARS prepare_etcd_manifest]} {[DQ ]} {[DQ [LIT_CHARS 2379]]} {[DQ [LIT_CHARS 2380]]} {[DQ [LIT_CHARS 200m]]} {[DQ [LIT_CHARS etcd.manifest]]} ) (Com {[LIT_CHARS prepare_log_file]} {[LIT_CHARS /var/log/etcd-events.log]} ) (Com {[LIT_CHARS prepare_etcd_manifest]} {[DQ [LIT_CHARS -events]]} {[DQ [LIT_CHARS 4002]]} {[DQ [LIT_CHARS 2381]]} {[DQ [LIT_CHARS 100m]]} {[DQ [LIT_CHARS etcd-events.manifest]]} ) ) ) (FunctionDef compute_master_manifest_variables [] (List (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG_OPT', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG_VOLUME', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG_MOUNT', {[DQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[LIT_CHARS /etc/gce.conf]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG_OPT', {[DQ [LIT_CHARS "--cloud-config=/etc/gce.conf"]]})]) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG_VOLUME', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS cloudconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS hostPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": {"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS path][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gce.conf][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "}},"]]})]) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG_MOUNT', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS cloudconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS mountPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gce.conf][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS readOnly][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": true},"]]})]) ) ) (= scope= flags=0 words=[] bindings=[('DOCKER_REGISTRY', {[DQ [LIT_CHARS gcr.io/google_containers]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBE_DOCKER_REGISTRY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('DOCKER_REGISTRY', {[DQ [VarSub KUBE_DOCKER_REGISTRY]]})]) ) ) ) (FunctionDef remove_salt_config_comments [] (List (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[DQ [LIT_CHARS "/^[ |"][\ LIT_ESCAPED_CHAR "\\t"][LIT_CHARS "]*{[#|%]/d"]]} {[VarSub 1]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[DQ [LIT_CHARS "/^[ |"][\ LIT_ESCAPED_CHAR "\\t"][LIT_CHARS "]*#/d"]]} {[VarSub 1]} ) ) ) (FunctionDef start_kube_apiserver [] (List (Com {[LIT_CHARS prepare_log_file]} {[LIT_CHARS /var/log/kube-apiserver.log]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Try to load docker image file kube-apiserver.tar"]]} ) (Com {[LIT_CHARS timeout]} {[LIT_CHARS 30]} {[LIT_CHARS docker]} {[LIT_CHARS load]} {[LIT_CHARS -i]} {[LIT_CHARS /home/kubernetes/kube-docker-files/kube-apiserver.tar]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub APISERVER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS " "][VarSub API_SERVER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS "--v=2"]]}][LIT_CHARS " "][VarSub CLOUD_CONFIG_OPT]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --cloud-provider=gce"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --address=127.0.0.1"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --etcd-servers=http://127.0.0.1:2379"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --tls-cert-file=/etc/srv/kubernetes/server.cert"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --tls-private-key-file=/etc/srv/kubernetes/server.key"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --secure-port=443"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --client-ca-file=/etc/srv/kubernetes/ca.crt"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --token-auth-file=/etc/srv/kubernetes/known_tokens.csv"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --basic-auth-file=/etc/srv/kubernetes/basic_auth.csv"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --allow-privileged=true"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --authorization-policy-file=/etc/srv/kubernetes/abac-authz-policy.jsonl"]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --etcd-servers-overrides=/events#http://127.0.0.1:4002"]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub STORAGE_BACKEND test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --storage-backend="][VarSub STORAGE_BACKEND]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --target-ram-mb="][ArithSub {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub NUM_NODES]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 60]}}}]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SERVICE_CLUSTER_IP_RANGE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --service-cluster-ip-range="][VarSub SERVICE_CLUSTER_IP_RANGE]]})]) ) (= scope= flags=0 words=[] bindings=[('admission_controller_config_mount', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('admission_controller_config_volume', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('image_policy_webhook_config_mount', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('image_policy_webhook_config_volume', {[DQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ADMISSION_CONTROL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --admission-control="][VarSub ADMISSION_CONTROL]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ADMISSION_CONTROL]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_OTHER "*"] [DQ [LIT_CHARS ImagePolicyWebhook]] [LIT_OTHER "*"]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('params+', {[DQ [LIT_CHARS " --admission-control-config-file=/etc/admission_controller.config"]]})]) (= scope= flags=0 words=[] bindings=[('admission_controller_config_mount', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS admissioncontrollerconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS mountPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/admission_controller.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS readOnly][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": false},"]]})]) (= scope= flags=0 words=[] bindings=[('admission_controller_config_volume', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS admissioncontrollerconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS hostPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": {"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS path][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/admission_controller.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "}},"]]})]) (= scope= flags=0 words=[] bindings=[('image_policy_webhook_config_mount', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS imagepolicywebhookconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS mountPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gcp_image_review.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS readOnly][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": false},"]]})]) (= scope= flags=0 words=[] bindings=[('image_policy_webhook_config_volume', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS imagepolicywebhookconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS hostPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": {"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS path][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gcp_image_review.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "}},"]]})]) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBE_APISERVER_REQUEST_TIMEOUT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --min-request-timeout="][VarSub KUBE_APISERVER_REQUEST_TIMEOUT]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub RUNTIME_CONFIG test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --runtime-config="][VarSub RUNTIME_CONFIG]]})]) ) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub PROJECT_ID test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TOKEN_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TOKEN_BODY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_NETWORK test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) ) (List (= scope= flags=2 words=[] bindings=[('vm_external_ip', {[ComSub (Com {[LIT_CHARS curl]} {[LIT_CHARS --retry]} {[LIT_CHARS 5]} {[LIT_CHARS --retry-delay]} {[LIT_CHARS 3]} {[LIT_CHARS --fail]} {[LIT_CHARS --silent]} {[LIT_CHARS -H]} {[SQ ]} {[DQ [LIT_CHARS "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip"]]})]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --advertise-address="][VarSub vm_external_ip]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --ssh-user="][VarSub PROXY_SSH_USER]]})]) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile"]]})]) ) ) (= scope= flags=2 words=[] bindings=[('kube_apiserver_docker_tag', {[ComSub (Com {[LIT_CHARS cat]} {[LIT_CHARS /home/kubernetes/kube-docker-files/kube-apiserver.docker_tag]})]})]) (= scope= flags=0 words=[] bindings=[('webhook_authn_config_mount', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('webhook_authn_config_volume', {[DQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub GCP_AUTHN_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --authentication-token-webhook-config-file=/etc/gcp_authn.config"]]})]) (= scope= flags=0 words=[] bindings=[('webhook_authn_config_mount', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS webhookauthnconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS mountPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gcp_authn.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS readOnly][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": false},"]]})]) (= scope= flags=0 words=[] bindings=[('webhook_authn_config_volume', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS webhookauthnconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS hostPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": {"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS path][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gcp_authn.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "}},"]]})]) ) ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --authorization-mode=ABAC"]]})]) (= scope= flags=0 words=[] bindings=[('webhook_config_mount', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('webhook_config_volume', {[DQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub GCP_AUTHZ_URL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS ",Webhook --authorization-webhook-config-file=/etc/gcp_authz.config"]]})]) (= scope= flags=0 words=[] bindings=[('webhook_config_mount', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS webhookconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS mountPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gcp_authz.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS readOnly][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": false},"]]})]) (= scope= flags=0 words=[] bindings=[('webhook_config_volume', {[DQ [LIT_CHARS "{"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS name][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS webhookconfigmount][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ","][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS hostPath][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": {"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS path][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS ": "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS /etc/gcp_authz.config][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "}},"]]})]) ) ) (= scope= flags=0 words=[] bindings=[('src_dir', {[DQ [LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/gci-trusty]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub KUBE_USER test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('abac_policy_json', {[DQ [VarSub src_dir][LIT_CHARS /abac-authz-policy.jsonl]]})]) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub abac_policy_json]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{kube_user}}@"][VarSub KUBE_USER][LIT_CHARS "@g"]]} {[DQ [VarSub abac_policy_json]]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub abac_policy_json]]} {[LIT_CHARS /etc/srv/kubernetes/]} ) ) ) (= scope= flags=0 words=[] bindings=[('src_file', {[DQ [VarSub src_dir][LIT_CHARS /kube-apiserver.manifest]]})]) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{params}}@"][VarSub params][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{srv_kube_path}}@/etc/srv/kubernetes@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{srv_sshproxy_path}}@/etc/srv/sshproxy@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{cloud_config_mount}}@"][VarSub CLOUD_CONFIG_MOUNT][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{cloud_config_volume}}@"][VarSub CLOUD_CONFIG_VOLUME][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'kube_docker_registry'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@"][VarSub DOCKER_REGISTRY][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'kube-apiserver_docker_tag'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@"][VarSub kube_apiserver_docker_tag][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'allow_privileged'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@true@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{secure_port}}@443@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{secure_port}}@8080@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{additional_cloud_config_mount}}@@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{additional_cloud_config_volume}}@@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{webhook_authn_config_mount}}@"][VarSub webhook_authn_config_mount][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{webhook_authn_config_volume}}@"][VarSub webhook_authn_config_volume][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{webhook_config_mount}}@"][VarSub webhook_config_mount][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{webhook_config_volume}}@"][VarSub webhook_config_volume][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{admission_controller_config_mount}}@"][VarSub admission_controller_config_mount][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{admission_controller_config_volume}}@"][VarSub admission_controller_config_volume][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{image_policy_webhook_config_mount}}@"][VarSub image_policy_webhook_config_mount][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{image_policy_webhook_config_volume}}@"][VarSub image_policy_webhook_config_volume][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_file]]} {[LIT_CHARS /etc/kubernetes/manifests]} ) ) ) (FunctionDef start_kube_controller_manager [] (List (Com {[LIT_CHARS prepare_log_file]} {[LIT_CHARS /var/log/kube-controller-manager.log]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Try to load docker image file kube-controller-manager.tar"]]} ) (Com {[LIT_CHARS timeout]} {[LIT_CHARS 30]} {[LIT_CHARS docker]} {[LIT_CHARS load]} {[LIT_CHARS -i]} {[LIT_CHARS /home/kubernetes/kube-docker-files/kube-controller-manager.tar]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [LIT_CHARS "--master=127.0.0.1:8080 --cloud-provider=gce --root-ca-file=/etc/srv/kubernetes/ca.crt --service-account-private-key-file=/etc/srv/kubernetes/server.key "][VarSub CONTROLLER_MANAGER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS " "][VarSub CLOUD_CONFIG_OPT]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub INSTANCE_PREFIX test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --cluster-name="][VarSub INSTANCE_PREFIX]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub CLUSTER_IP_RANGE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --cluster-cidr="][VarSub CLUSTER_IP_RANGE]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SERVICE_CLUSTER_IP_RANGE test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --service-cluster-ip-range="][VarSub SERVICE_CLUSTER_IP_RANGE]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ALLOCATE_NODE_CIDRS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --allocate-node-cidrs="][VarSub ALLOCATE_NODE_CIDRS]]})]) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TERMINATED_POD_GC_THRESHOLD test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --terminated-pod-gc-threshold="][VarSub TERMINATED_POD_GC_THRESHOLD]]})]) ) (= scope= flags=0 words=[] bindings=[('log_level', {[DQ [LIT_CHARS "--v=2"]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('log_level', {[DQ [VarSub CONTROLLER_MANAGER_TEST_LOG_LEVEL]]})]) ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " "][VarSub log_level]]})]) (= scope= flags=2 words=[] bindings=[('kube_rc_docker_tag', {[ComSub (Com {[LIT_CHARS cat]} {[LIT_CHARS /home/kubernetes/kube-docker-files/kube-controller-manager.docker_tag]})]})]) (= scope= flags=0 words=[] bindings=[('src_file', {[DQ [LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/gci-trusty/kube-controller-manager.manifest]]})]) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{srv_kube_path}}@/etc/srv/kubernetes@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'kube_docker_registry'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@"][VarSub DOCKER_REGISTRY][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'kube-controller-manager_docker_tag'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@"][VarSub kube_rc_docker_tag][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{params}}@"][VarSub params][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{cloud_config_mount}}@"][VarSub CLOUD_CONFIG_MOUNT][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{cloud_config_volume}}@"][VarSub CLOUD_CONFIG_VOLUME][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{additional_cloud_config_mount}}@@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{additional_cloud_config_volume}}@@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_file]]} {[LIT_CHARS /etc/kubernetes/manifests]} ) ) ) (FunctionDef start_kube_scheduler [] (List (Com {[LIT_CHARS prepare_log_file]} {[LIT_CHARS /var/log/kube-scheduler.log]} ) (= scope= flags=0 words=[] bindings=[('kube_home', {[DQ [LIT_CHARS home/kubernetes]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Try to load docker image file kube-scheduler.tar"]]} ) (Com {[LIT_CHARS timeout]} {[LIT_CHARS 30]} {[LIT_CHARS docker]} {[LIT_CHARS load]} {[LIT_CHARS -i]} {[DQ [VarSub kube_home][LIT_CHARS /kube-docker-files/kube-scheduler.tar]]} ) (= scope= flags=0 words=[] bindings=[('log_level', {[DQ [LIT_CHARS "--v=2"]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('log_level', {[DQ [VarSub SCHEDULER_TEST_LOG_LEVEL]]})]) ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub log_level][LIT_CHARS " "][VarSub SCHEDULER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULING_ALGORITHM_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub params][LIT_CHARS " --algorithm-provider="][VarSub SCHEDULING_ALGORITHM_PROVIDER]]})]) ) (= scope= flags=2 words=[] bindings=[('kube_scheduler_docker_tag', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub kube_home][LIT_CHARS /kube-docker-files/kube-scheduler.docker_tag]]})]})]) (= scope= flags=0 words=[] bindings=[('src_file', {[DQ [VarSub kube_home][LIT_CHARS /kube-manifests/kubernetes/gci-trusty/kube-scheduler.manifest]]})]) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{params}}@"][VarSub params][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'kube_docker_registry'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@"][VarSub DOCKER_REGISTRY][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'kube-scheduler_docker_tag'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS "}}@"][VarSub kube_scheduler_docker_tag][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_file]]} {[LIT_CHARS /etc/kubernetes/manifests]} ) ) ) (FunctionDef start_cluster_autoscaler [] (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_AUTOSCALER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS prepare-log-file]} {[LIT_CHARS /var/log/cluster-autoscaler.log]} ) (= scope= flags=0 words=[] bindings=[('src_file', {[DQ [VarSub kube_home][LIT_CHARS /kube-manifests/kubernetes/gci-trusty/cluster-autoscaler.manifest]]})]) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub src_file]]} ) (= scope= flags=0 words=[] bindings=[('params', {[DQ [VarSub AUTOSCALER_MIG_CONFIG][LIT_CHARS " "][VarSub CLOUD_CONFIG_OPT]]})]) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{params}}@"][VarSub params][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{cloud_config_mount}}@"][VarSub CLOUD_CONFIG_MOUNT][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{cloud_config_volume}}@"][VarSub CLOUD_CONFIG_VOLUME][LIT_CHARS "@g"]]} {[DQ [VarSub src_file]]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_file]]} {[LIT_CHARS /etc/kubernetes/manifests]} ) ) ) ) (FunctionDef start-rescheduler [] (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub ENABLE_RESCHEDULER test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS prepare-log-file]} {[LIT_CHARS /var/log/rescheduler.log]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub KUBE_HOME][LIT_CHARS /kube-manifests/kubernetes/gci-trusty/rescheduler.manifest]]} {[LIT_CHARS /etc/kubernetes/manifests/]} ) ) ) ) (FunctionDef start_fluentd [] (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_NODE_LOGGING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub LOGGING_DESTINATION test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS gcp]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cp]} {[LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/fluentd-gcp.yaml]} {[LIT_CHARS /etc/kubernetes/manifests/]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub LOGGING_DESTINATION test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS elasticsearch]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cp]} {[LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/fluentd-es.yaml]} {[LIT_CHARS /etc/kubernetes/manifests/]} ) ) ) ) (FunctionDef setup_addon_manifests [] (List (= scope= flags=0 words=[] bindings=[('src_dir', {[DQ [LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/gci-trusty/][VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('dst_dir', {[DQ [LIT_CHARS /etc/kubernetes/][VarSub 1][LIT_CHARS /][VarSub 2]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[DQ [VarSub dst_dir]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub dst_dir]]} ) ) (= scope= flags=0 words=[] bindings=[('files', {[ComSub (Com {[LIT_CHARS find]} {[DQ [VarSub src_dir]]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.yaml"]]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub files]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_dir][LIT_CHARS /]] [LIT_OTHER "*"] [LIT_CHARS .yaml]} {[DQ [VarSub dst_dir]]} ) ) (= scope= flags=0 words=[] bindings=[('files', {[ComSub (Com {[LIT_CHARS find]} {[DQ [VarSub src_dir]]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.json"]]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub files]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_dir][LIT_CHARS /]] [LIT_OTHER "*"] [LIT_CHARS .json]} {[DQ [VarSub dst_dir]]} ) ) (= scope= flags=0 words=[] bindings=[('files', {[ComSub (Com {[LIT_CHARS find]} {[DQ [VarSub src_dir]]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.yaml.in"]]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub files]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cp]} {[DQ [VarSub src_dir][LIT_CHARS /]] [LIT_OTHER "*"] [LIT_CHARS .yaml.in]} {[DQ [VarSub dst_dir]]} ) ) (Com {[LIT_CHARS chown]} {[LIT_CHARS -R]} {[LIT_CHARS root] [LIT_OTHER ":"] [LIT_CHARS root]} {[DQ [VarSub dst_dir]]} ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[DQ [VarSub dst_dir]]} ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 644]} {[DQ [VarSub dst_dir]] [LIT_CHARS /] [LIT_OTHER "*"]} ) ) ) (FunctionDef start_kube_addons [] (List (= scope= flags=0 words=[] bindings=[('addon_src_dir', {[DQ [LIT_CHARS /home/kubernetes/kube-manifests/kubernetes/gci-trusty]]})]) (= scope= flags=0 words=[] bindings=[('addon_dst_dir', {[DQ [LIT_CHARS /etc/kubernetes/addons]]})]) (If (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_MONITORING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS influxdb]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_MONITORING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS google]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_MONITORING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS standalone]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_MONITORING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS googleinfluxdb]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) ) (List (= scope= flags=0 words=[] bindings=[('file_dir', {[DQ [LIT_CHARS cluster-monitoring/][VarSub ENABLE_CLUSTER_MONITORING]]})]) (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS addons]]} {[DQ [VarSub file_dir]]} ) (= scope= flags=0 words=[] bindings=[('base_metrics_memory', {[DQ [LIT_CHARS 140Mi]]})]) (= scope= flags=0 words=[] bindings=[('metrics_memory', {[DQ [VarSub base_metrics_memory]]})]) (= scope= flags=0 words=[] bindings=[('base_eventer_memory', {[DQ [LIT_CHARS 190Mi]]})]) (= scope= flags=0 words=[] bindings=[('base_metrics_cpu', {[DQ [LIT_CHARS 80m]]})]) (= scope= flags=0 words=[] bindings=[('metrics_cpu', {[DQ [VarSub base_metrics_cpu]]})]) (= scope= flags=0 words=[] bindings=[('eventer_memory', {[DQ [VarSub base_eventer_memory]]})]) (= scope= flags=0 words=[] bindings=[('nanny_memory', {[DQ [LIT_CHARS 90Mi]]})]) (= scope= flags=2 words=[] bindings=[('metrics_memory_per_node', {[DQ [LIT_CHARS 4]]})]) (= scope= flags=2 words=[] bindings=[('metrics_cpu_per_node', {[DQ [LIT_CHARS 0.5]]})]) (= scope= flags=2 words=[] bindings=[('eventer_memory_per_node', {[DQ [LIT_CHARS 500]]})]) (= scope= flags=2 words=[] bindings=[('nanny_memory_per_node', {[DQ [LIT_CHARS 200]]})]) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub NUM_NODES]]} {[LIT_CHARS -ge]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) ) (List (= scope= flags=0 words=[] bindings=[('num_kube_nodes', {[DQ [ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub NUM_NODES]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]]})]) (= scope= flags=0 words=[] bindings=[('metrics_memory', {[DQ [ArithSub {A2 AS_OP_PLUS {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub num_kube_nodes]}} {A Atom NODE_ARITH_WORD {[VarSub metrics_memory_per_node]}}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 200]}}}][LIT_CHARS Mi]]})]) (= scope= flags=0 words=[] bindings=[('eventer_memory', {[DQ [ArithSub {A2 AS_OP_PLUS {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub num_kube_nodes]}} {A Atom NODE_ARITH_WORD {[VarSub eventer_memory_per_node]}}} {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 200]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1024]}}}}][LIT_CHARS Ki]]})]) (= scope= flags=0 words=[] bindings=[('nanny_memory', {[DQ [ArithSub {A2 AS_OP_PLUS {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub num_kube_nodes]}} {A Atom NODE_ARITH_WORD {[VarSub nanny_memory_per_node]}}} {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 90]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1024]}}}}][LIT_CHARS Ki]]})]) (= scope= flags=0 words=[] bindings=[('metrics_cpu', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[LIT_CHARS -]}) (Com {[LIT_CHARS awk]} {[DQ [LIT_CHARS "{print "][VarSub num_kube_nodes][LIT_CHARS " * "][VarSub metrics_cpu_per_node][LIT_CHARS " + 80}"]]}) )] [LIT_CHARS m]})]) ) ) (= scope= flags=0 words=[] bindings=[('controller_yaml', {[DQ [VarSub addon_dst_dir][LIT_CHARS /][VarSub file_dir]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_MONITORING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS googleinfluxdb]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('controller_yaml', {[DQ [VarSub controller_yaml][LIT_CHARS /heapster-controller-combined.yaml]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('controller_yaml', {[DQ [VarSub controller_yaml][LIT_CHARS /heapster-controller.yaml]]})]) ) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *base_metrics_memory *}}@"][VarSub base_metrics_memory][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *metrics_memory *}}@"][VarSub metrics_memory][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *base_metrics_cpu *}}@"][VarSub base_metrics_cpu][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *metrics_cpu *}}@"][VarSub metrics_cpu][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *base_eventer_memory *}}@"][VarSub base_eventer_memory][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *eventer_memory *}}@"][VarSub eventer_memory][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *metrics_memory_per_node *}}@"][VarSub metrics_memory_per_node][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *eventer_memory_per_node *}}@"][VarSub eventer_memory_per_node][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *nanny_memory *}}@"][VarSub nanny_memory][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *metrics_cpu_per_node *}}@"][VarSub metrics_cpu_per_node][LIT_CHARS "@g"]]} {[DQ [VarSub controller_yaml]]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_L7_LOADBALANCING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS glbc]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS addons]]} {[DQ [LIT_CHARS cluster-loadbalancing/glbc]]} ) (= scope= flags=0 words=[] bindings=[('glbc_yaml', {[DQ [VarSub addon_dst_dir][LIT_CHARS /cluster-loadbalancing/glbc/glbc.yaml]]})]) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub glbc_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *kube_uid *}}@"][VarSub KUBE_UID test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS "@g"]]} {[DQ [VarSub glbc_yaml]]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_DNS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS addons]]} {[DQ [LIT_CHARS dns]]} ) (= scope= flags=0 words=[] bindings=[('dns_rc_file', {[DQ [VarSub addon_dst_dir][LIT_CHARS /dns/skydns-rc.yaml]]})]) (= scope= flags=0 words=[] bindings=[('dns_svc_file', {[DQ [VarSub addon_dst_dir][LIT_CHARS /dns/skydns-svc.yaml]]})]) (Com {[LIT_CHARS mv]} {[DQ [VarSub addon_dst_dir][LIT_CHARS /dns/skydns-rc.yaml.in]]} {[DQ [VarSub dns_rc_file]]} ) (Com {[LIT_CHARS mv]} {[DQ [VarSub addon_dst_dir][LIT_CHARS /dns/skydns-svc.yaml.in]]} {[DQ [VarSub dns_svc_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'dns_replicas'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@"][VarSub DNS_REPLICAS][LIT_CHARS "@g"]]} {[DQ [VarSub dns_rc_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'dns_domain'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@"][VarSub DNS_DOMAIN][LIT_CHARS "@g"]]} {[DQ [VarSub dns_rc_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'dns_server'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@"][VarSub DNS_SERVER_IP][LIT_CHARS "@g"]]} {[DQ [VarSub dns_svc_file]]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub FEDERATION test_op=VS_TEST_COLON_HYPHEN {}]]} {[DQ [LIT_CHARS true]]}}) (List (= scope= flags=0 words=[] bindings=[('FEDERATIONS_DOMAIN_MAP', {[DQ [VarSub FEDERATIONS_DOMAIN_MAP test_op=VS_TEST_COLON_HYPHEN {}]]})]) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_STRING_z {[DQ [VarSub FEDERATIONS_DOMAIN_MAP]]}} {B? LOGICAL_BINARY_AND {B1 UNARY_STRING_n {[DQ [VarSub FEDERATION_NAME test_op=VS_TEST_COLON_HYPHEN {}]]}} {B1 UNARY_STRING_n {[DQ [VarSub DNS_ZONE_NAME test_op=VS_TEST_COLON_HYPHEN {}]]}}}}) (= scope= flags=0 words=[] bindings=[('FEDERATIONS_DOMAIN_MAP', {[DQ [VarSub FEDERATION_NAME][LIT_CHARS "="][VarSub DNS_ZONE_NAME]]})]) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub FEDERATIONS_DOMAIN_MAP]]}}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'federations_domain_map'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@- --federations="][VarSub FEDERATIONS_DOMAIN_MAP][LIT_CHARS "@g"]]} {[DQ [VarSub dns_rc_file]]} ) (ElseTrue) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "/{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'federations_domain_map'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}/d"]]} {[DQ [VarSub dns_rc_file]]} ) ) ) (ElseTrue) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "/{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'federations_domain_map'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}/d"]]} {[DQ [VarSub dns_rc_file]]} ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_REGISTRY test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS addons]]} {[DQ [LIT_CHARS registry]]} ) (= scope= flags=0 words=[] bindings=[('registry_pv_file', {[DQ [VarSub addon_dst_dir][LIT_CHARS /registry/registry-pv.yaml]]})]) (= scope= flags=0 words=[] bindings=[('registry_pvc_file', {[DQ [VarSub addon_dst_dir][LIT_CHARS /registry/registry-pvc.yaml]]})]) (Com {[LIT_CHARS mv]} {[DQ [VarSub addon_dst_dir][LIT_CHARS /registry/registry-pv.yaml.in]]} {[DQ [VarSub registry_pv_file]]} ) (Com {[LIT_CHARS mv]} {[DQ [VarSub addon_dst_dir][LIT_CHARS /registry/registry-pvc.yaml.in]]} {[DQ [VarSub registry_pvc_file]]} ) (Com {[LIT_CHARS remove_salt_config_comments]} {[DQ [VarSub controller_yaml]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'cluster_registry_disk_size'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@"][VarSub CLUSTER_REGISTRY_DISK_SIZE][LIT_CHARS "@g"]]} {[DQ [VarSub registry_pv_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'cluster_registry_disk_size'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@"][VarSub CLUSTER_REGISTRY_DISK_SIZE][LIT_CHARS "@g"]]} {[DQ [VarSub registry_pvc_file]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s@{{ *pillar"][\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS "'cluster_registry_disk_name'"][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS " *}}@"][VarSub CLUSTER_REGISTRY_DISK][LIT_CHARS "@g"]]} {[DQ [VarSub registry_pvc_file]]} ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_NODE_LOGGING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub LOGGING_DESTINATION test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS elasticsearch]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_LOGGING test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS addons]]} {[DQ [LIT_CHARS fluentd-elasticsearch]]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub ENABLE_CLUSTER_UI test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "="]} {[DQ [LIT_CHARS true]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS addons]]} {[DQ [LIT_CHARS dashboard]]} ) ) (If (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ADMISSION_CONTROL test_op=VS_TEST_COLON_HYPHEN {}]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[DQ [LIT_CHARS LimitRanger]]} ) ) (Com {[LIT_CHARS setup_addon_manifests]} {[DQ [LIT_CHARS admission-controls]]} {[DQ [LIT_CHARS limit-range]]} ) ) (Com {[LIT_CHARS cp]} {[DQ [VarSub addon_src_dir][LIT_CHARS /kube-addon-manager.yaml]]} {[LIT_CHARS /etc/kubernetes/manifests]} ) ) ) (FunctionDef reset_motd [] (List (= scope= flags=2 words=[] bindings=[('version', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS /usr/bin/kubelet]} {[LIT_CHARS --version] [LIT_DBRACKET_LIKE "="] [LIT_CHARS true]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -f2]} {[LIT_CHARS -d]} {[DQ [LIT_CHARS " "]]}) )]]})]) (= scope= flags=0 words=[] bindings=[('gitref', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub version]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -r]} {[DQ [LIT_CHARS "s/(v[0-9]+"][\ LIT_ESCAPED_CHAR "\\."][LIT_CHARS "[0-9]+"][\ LIT_ESCAPED_CHAR "\\."][LIT_CHARS "[0-9]+)(-[a-z]+"][\ LIT_ESCAPED_CHAR "\\."][LIT_CHARS "[0-9]+)?.*/"][\ LIT_ESCAPED_CHAR "\\1"][\ LIT_ESCAPED_CHAR "\\2"][LIT_CHARS /g]]}) )]]})]) (= scope= flags=0 words=[] bindings=[('devel', {[DQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub gitref]]} {[LIT_NEQUAL "!="]} {[DQ [VarSub version]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('devel', {[DQ [LIT_CHARS "\n"][LIT_CHARS "Note: This looks like a development version, which might not be present on GitHub.\n"][LIT_CHARS "If it isn't, the closest tag is at:\n"][LIT_CHARS " https://github.com/kubernetes/kubernetes/tree/"][VarSub gitref][LIT_CHARS "\n"]]})]) (= scope= flags=0 words=[] bindings=[('gitref', {[DQ [VarSub version transform_ops=[PatSub {[LIT_CHARS "*+"]} {} do_all]]]})]) ) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS /etc/motd]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Welcome to Kubernetes "][VarSub version][LIT_CHARS "!\n"][LIT_CHARS "You can find documentation for Kubernetes at:\n"][LIT_CHARS " http://docs.kubernetes.io/\n"][LIT_CHARS "You can download the build image for this release at:\n"][LIT_CHARS " https://storage.googleapis.com/kubernetes-release/release/"][VarSub version][LIT_CHARS "/kubernetes-src.tar.gz\n"][LIT_CHARS "It is based on the Kubernetes source at:\n"][LIT_CHARS " https://github.com/kubernetes/kubernetes/tree/"][VarSub gitref][LIT_CHARS "\n"][VarSub devel][LIT_CHARS "\n"][LIT_CHARS "For Kubernetes copyright and licensing information, see:\n"][LIT_CHARS " /home/kubernetes/LICENSES\n"]]} 0), > ) ) ) )