(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('is_push', {[VarSub @]})]) (= scope= flags=2 words=[] bindings=[('KNOWN_TOKENS_FILE', {[DQ [LIT_CHARS /srv/salt-overlay/salt/kube-apiserver/known_tokens.csv]]})]) (= scope= flags=2 words=[] bindings=[('BASIC_AUTH_FILE', {[DQ [LIT_CHARS /srv/salt-overlay/salt/kube-apiserver/basic_auth.csv]]})]) (FunctionDef ensure-basic-networking [] (List (While (List (Fork (Com {[LIT_CHARS getent]} {[LIT_CHARS hosts]} {[LIT_CHARS metadata.google.internal]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 3]} ) ) ) (While (List (Fork (Com {[LIT_CHARS getent]} {[LIT_CHARS hosts]} {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS hostname]} {[LIT_CHARS -f]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS _error_]}) )]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 3]} ) ) ) (While (List (Fork (Com {[LIT_CHARS getent]} {[LIT_CHARS hosts]} {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS hostname]} {[LIT_CHARS -i]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS _error_]}) )]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 3]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Networking functional on "][ComSub (Com {[LIT_CHARS hostname]})][LIT_CHARS " ("][ComSub (Com {[LIT_CHARS hostname]} {[LIT_CHARS -i]})][LIT_CHARS ")"]]} ) ) ) (FunctionDef ensure-packages [] (Com {[LIT_OTHER ":"]} ) ) (FunctionDef ensure-local-disks [] (For ssd [{[LIT_CHARS /dev/disk/by-id/google-local-ssd-] [LIT_OTHER "*"]}]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[DQ [VarSub ssd]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('ssdnum', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub ssd]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Formatting and mounting local SSD "][VarSub ssd][LIT_CHARS " to /mnt/disks/ssd"][VarSub ssdnum]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /mnt/disks/ssd] [VarSub ssdnum]} ) (Fork (Com {[LIT_CHARS /usr/share/google/safe_format_and_mount]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "mkfs.ext4 -F"]]} {[DQ [VarSub ssd]]} {[LIT_CHARS /mnt/disks/ssd] [VarSub ssdnum]} ) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[LIT_CHARS /var/log/local-ssd-] [VarSub ssdnum] [LIT_CHARS -mount.log]} "> 1), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Local SSD "][VarSub ssdnum][LIT_CHARS " mount failed, review /var/log/local-ssd-"][VarSub ssdnum][LIT_CHARS -mount.log]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No local SSD disks found."]]} ) ) ) ) (FunctionDef ensure-install-dir [] (List (= scope= flags=0 words=[] bindings=[('INSTALL_DIR', {[DQ [LIT_CHARS /var/cache/kubernetes-install]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub INSTALL_DIR]} ) (Com {[LIT_CHARS cd]} {[VarSub INSTALL_DIR]} ) ) ) (FunctionDef salt-apiserver-timeout-grain [] (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " minRequestTimeout: '"][VarSub 1][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) ) (FunctionDef set-broken-motd [] (Com {[LIT_CHARS echo]} {[LIT_CHARS -e]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS /etc/motd]} "> 1), > ) ) (FunctionDef reset-motd [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('version', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS /usr/local/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 (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub gitref]]} {[DQ [VarSub version]]}}) (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 "\n"][LIT_CHARS "Welcome to Kubernetes "][VarSub version][LIT_CHARS "!\n"][LIT_CHARS "\n"][LIT_CHARS "You can find documentation for Kubernetes at:\n"][LIT_CHARS " http://docs.kubernetes.io/\n"][LIT_CHARS "\n"][LIT_CHARS "The source for this release can be found at:\n"][LIT_CHARS " /usr/local/share/doc/kubernetes/kubernetes-src.tar.gz\n"][LIT_CHARS "Or you can download it at:\n"][LIT_CHARS " https://storage.googleapis.com/kubernetes-release/release/"][VarSub version][LIT_CHARS "/kubernetes-src.tar.gz\n"][LIT_CHARS "\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 " /usr/local/share/doc/kubernetes/LICENSES\n"][LIT_CHARS "\n"]]} 0), > ) ) ) (FunctionDef curl-metadata [] (Com {[LIT_CHARS curl]} {[LIT_CHARS --fail]} {[LIT_CHARS --retry]} {[LIT_CHARS 5]} {[LIT_CHARS --silent]} {[LIT_CHARS -H]} {[SQ ]} {[DQ [LIT_CHARS "http://metadata/computeMetadata/v1/instance/attributes/"][VarSub 1]]} ) ) (FunctionDef set-kube-env [] (List (= scope= flags=0 words=[] bindings=[('kube_env_yaml', {[DQ [VarSub INSTALL_DIR][LIT_CHARS /kube_env.yaml]]})]) (While (Com {[LIT_CHARS curl-metadata]} {[LIT_CHARS kube-env]} < (FilenameRedirectNode filename={[DQ [VarSub kube_env_yaml]]} "> 1), > ) (List (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 3]} ) ) ) (Com {[LIT_CHARS eval]} {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[DQ ] [DQ [VarSub kube_env_yaml]] [DQ ]} 0)]{[LIT_CHARS python]} {[LIT_CHARS -c]} {[SQ ]})]]} ) ) ) (FunctionDef remove-docker-artifacts [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Deleting docker0 =="]]} ) (Com {[LIT_CHARS apt-get-install]} {[LIT_CHARS bridge-utils]} ) (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 ifconfig]} {[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 echo]} {[DQ [LIT_CHARS "== Finished deleting docker0 =="]]} ) ) ) (FunctionDef download-or-bust [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('hash', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 1]} ) (= scope= flags=0 words=[] bindings=[('urls', {[Array {[VarSub *]}]})]) (While (Com {[LIT_CHARS true]} ) (For url [{[DQ [VarSub urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (List (= scope= flags=0 words=[] bindings=[('file', {[DQ [VarSub url transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub file]]} ) (If (Pipeline! (Com {[LIT_CHARS curl]} {[LIT_CHARS -f]} {[LIT_CHARS --ipv4]} {[LIT_CHARS -Lo]} {[DQ [VarSub file]]} {[LIT_CHARS --connect-timeout]} {[LIT_CHARS 20]} {[LIT_CHARS --max-time]} {[LIT_CHARS 300]} {[LIT_CHARS --retry]} {[LIT_CHARS 6]} {[LIT_CHARS --retry-delay]} {[LIT_CHARS 10]} {[DQ [VarSub url]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Failed to download "][VarSub url][LIT_CHARS ". Retrying. =="]]} ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[DQ [VarSub hash]]}}) (Pipeline! (Com {[LIT_CHARS validate-hash]} {[DQ [VarSub file]]} {[DQ [VarSub hash]]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Hash validation of "][VarSub url][LIT_CHARS " failed. Retrying. =="]]} ) (ElseTrue) (List (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub hash]]}}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Downloaded "][VarSub url][LIT_CHARS " (SHA1 = "][VarSub hash][LIT_CHARS ") =="]]} ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Downloaded "][VarSub url][LIT_CHARS " =="]]} ) ) (Com {[LIT_CHARS return]} ) ) ) ) ) ) ) ) (FunctionDef validate-hash [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('file', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('expected', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[{[LIT_CHARS actual]}] bindings=[]) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('actual', {[ComSub (Pipeline (Com {[LIT_CHARS sha1sum]} {[VarSub file]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (Com {[LIT_CHARS true]} ) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub actual]]} {[DQ [VarSub expected]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== "][VarSub file][LIT_CHARS " corrupted, sha1 "][VarSub actual][LIT_CHARS " doesn't match expected "][VarSub expected][LIT_CHARS " =="]]} ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef apt-get-install [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('packages', {[Array {[VarSub @]}]})]) (= scope= flags=0 words=[] bindings=[('installed', {[LIT_CHARS true]})]) (For package [{[DQ [VarSub packages bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (If (List (Fork (Pipeline! (Com {[LIT_CHARS dpkg]} {[LIT_CHARS -s]} {[DQ [VarSub package]]} ) ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (= scope= flags=0 words=[] bindings=[('installed', {[LIT_CHARS false]})]) (Com {[LIT_CHARS break]} ) ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub installed]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== "][VarSub packages bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS " already installed, skipped apt-get install "][VarSub packages bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS " =="]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS apt-get-update]} ) (While (Com {[LIT_CHARS apt-get]} {[LIT_CHARS -q]} {[LIT_CHARS -y]} {[LIT_CHARS -o]} {[LIT_CHARS DPkg] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS Options] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_DBRACKET_LIKE "="] [LIT_CHARS --force-confold]} {[LIT_CHARS -o]} {[LIT_CHARS DPkg] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS Options] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_DBRACKET_LIKE "="] [LIT_CHARS --force-confdef]} {[LIT_CHARS install]} {[VarSub @]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== install of packages "][VarSub @][LIT_CHARS " failed, retrying =="]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 5]} ) ) ) ) ) (FunctionDef apt-get-update [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Refreshing package database =="]]} ) (While (Com {[LIT_CHARS apt-get]} {[LIT_CHARS update]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== apt-get update failed, retrying =="]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 5]} ) ) ) ) ) (FunctionDef restart-updated-services [] (List (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub AUTO_RESTART_SERVICES test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS true]}]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Auto restart of services prevented by AUTO_RESTART_SERVICES="][VarSub AUTO_RESTART_SERVICES]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Restarting services with updated libraries (needrestart -r a)"]]} ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ ]} ) (Com {[LIT_CHARS needrestart]} {[LIT_CHARS -r]} {[LIT_CHARS a]} < (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS tee]} {[LIT_CHARS /dev/null]} ) ) ) ) (FunctionDef reboot-if-required [] (List (If (DBracket {B! {B1 UNARY_FILE_e {[DQ [LIT_CHARS /var/run/reboot-required]]}}}) (Com {[LIT_CHARS return]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Reboot is required (/var/run/reboot-required detected)"]]} ) (If (DBracket {B1 UNARY_FILE_e {[DQ [LIT_CHARS /var/run/reboot-required.pkgs]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Packages that triggered reboot:"]]} ) (Com {[LIT_CHARS cat]} {[LIT_CHARS /var/run/reboot-required.pkgs]} ) ) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub AUTO_REBOOT test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS true]}]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Reboot prevented by AUTO_REBOOT="][VarSub AUTO_REBOOT]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /var/run/reboot-required]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /var/run/reboot-required.pkgs]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Triggering reboot"]]} ) (Com {[LIT_CHARS init]} {[LIT_CHARS 6]} ) ) ) (FunctionDef auto-upgrade [] (List (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [VarSub AUTO_UPGRADE test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "AUTO_UPGRADE not set to true; won't auto-upgrade"]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS apt-get-install]} {[LIT_CHARS unattended-upgrades]} {[LIT_CHARS needrestart]} ) (Com {[LIT_CHARS unattended-upgrade]} {[LIT_CHARS --debug]} ) (Com {[LIT_CHARS reboot-if-required]} ) (Com {[LIT_CHARS restart-updated-services]} ) ) ) (FunctionDef install-salt [] (List (If (List (Fork (Com {[LIT_CHARS dpkg]} {[LIT_CHARS -s]} {[LIT_CHARS salt-minion]} ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== SaltStack already installed, skipping install step =="]]} ) (Com {[LIT_CHARS return]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Refreshing package database =="]]} ) (While (Com {[LIT_CHARS apt-get]} {[LIT_CHARS update]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== apt-get update failed, retrying =="]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 5]} ) ) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /var/cache/salt-install]} ) (Com {[LIT_CHARS cd]} {[LIT_CHARS /var/cache/salt-install]} ) (= scope= flags=0 words=[] bindings=[('DEBS', {[Array {OP_NEWLINE "\n"} {[LIT_CHARS libzmq3_3.2.3] [LIT_OTHER "+"] [LIT_CHARS dfsg-1] [LIT_TILDE "~"] [LIT_CHARS bpo70] [LIT_TILDE "~"] [LIT_CHARS dst] [LIT_OTHER "+"] [LIT_CHARS 1_amd64.deb]} {OP_NEWLINE "\n"} {[LIT_CHARS python-zmq_13.1.0-1] [LIT_TILDE "~"] [LIT_CHARS bpo70] [LIT_TILDE "~"] [LIT_CHARS dst] [LIT_OTHER "+"] [LIT_CHARS 1_amd64.deb]} {OP_NEWLINE "\n"} {[LIT_CHARS salt-common_2014.1.13] [LIT_OTHER "+"] [LIT_CHARS ds-1] [LIT_TILDE "~"] [LIT_CHARS bpo70] [LIT_OTHER "+"] [LIT_CHARS 1_all.deb]} {OP_NEWLINE "\n"} {[LIT_CHARS salt-minion_2014.1.13] [LIT_OTHER "+"] [LIT_CHARS ds-1] [LIT_TILDE "~"] [LIT_CHARS bpo70] [LIT_OTHER "+"] [LIT_CHARS 1_all.deb]} {OP_NEWLINE "\n"}]})]) (= scope= flags=0 words=[] bindings=[('URL_BASE', {[DQ [LIT_CHARS "https://storage.googleapis.com/kubernetes-release/salt"]]})]) (For deb [{[DQ [VarSub DEBS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub deb]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS download-or-bust]} {[DQ ]} {[DQ [VarSub URL_BASE][LIT_CHARS /][VarSub deb]]} ) ) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS /usr/sbin/policy-rc.d]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "echo "][RIGHT_D_QUOTE "\""][LIT_CHARS "Salt shall not start."][RIGHT_D_QUOTE "\""][LIT_CHARS " >&2\n"][LIT_CHARS "exit 101\n"]]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 0755]} {[LIT_CHARS /usr/sbin/policy-rc.d]} ) (For deb [{[DQ [VarSub DEBS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Installing "][VarSub deb][LIT_CHARS ", ignore dependency complaints (will fix later) =="]]} ) (Com {[LIT_CHARS dpkg]} {[LIT_CHARS --skip-same-version]} {[LIT_CHARS --force-depends]} {[LIT_CHARS -i]} {[DQ [VarSub deb]]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Installing unmet dependencies =="]]} ) (While (Com {[LIT_CHARS apt-get]} {[LIT_CHARS install]} {[LIT_CHARS -f]} {[LIT_CHARS -y]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== apt-get install failed, retrying =="]]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 5]} ) ) ) (Com {[LIT_CHARS rm]} {[LIT_CHARS /usr/sbin/policy-rc.d]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Finished installing Salt =="]]} ) ) ) (FunctionDef stop-salt-minion [] (List (If (DBracket {B1 UNARY_FILE_e {[LIT_CHARS /etc/init/salt-minion.override]}}) (Com {[LIT_CHARS return]} ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS manual]} < (FilenameRedirectNode filename={[LIT_CHARS /etc/init/salt-minion.override]} "> 1), > ) (Com {[LIT_CHARS update-rc.d]} {[LIT_CHARS salt-minion]} {[LIT_CHARS disable]} ) (While (Com {[LIT_CHARS service]} {[LIT_CHARS salt-minion]} {[LIT_CHARS status]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "salt-minion found running, stopping"]]} ) (Com {[LIT_CHARS service]} {[LIT_CHARS salt-minion]} {[LIT_CHARS stop]} ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef find-master-pd [] (List (= scope= flags=0 words=[] bindings=[('MASTER_PD_DEVICE', {[DQ ]})]) (If (DBracket {B! {B1 UNARY_FILE_e {[LIT_CHARS /dev/disk/by-id/google-master-pd]}}}) (Com {[LIT_CHARS return]} ) ) (= scope= flags=0 words=[] bindings=[('device_info', {[ComSub (Com {[LIT_CHARS ls]} {[LIT_CHARS -l]} {[LIT_CHARS /dev/disk/by-id/google-master-pd]})]})]) (= scope= flags=0 words=[] bindings=[('relative_path', {[VarSub device_info transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "* "]}]]})]) (= scope= flags=0 words=[] bindings=[('MASTER_PD_DEVICE', {[DQ [LIT_CHARS /dev/disk/by-id/][VarSub relative_path]]})]) ) ) (FunctionDef mount-master-pd [] (List (Com {[LIT_CHARS find-master-pd]} ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub MASTER_PD_DEVICE test_op=VS_TEST_COLON_HYPHEN {}]]}}) (Com {[LIT_CHARS return]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Mounting master-pd"]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /mnt/master-pd]} ) (Fork (Com {[LIT_CHARS /usr/share/google/safe_format_and_mount]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "mkfs.ext4 -F"]]} {[DQ [VarSub MASTER_PD_DEVICE]]} {[LIT_CHARS /mnt/master-pd]} ) ) (AndOr OP_OR_IF (Com < (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]} {[LIT_CHARS /mnt/master-pd/var/etcd]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /mnt/master-pd/srv/kubernetes]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /mnt/master-pd/srv/salt-overlay]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /mnt/master-pd/srv/sshproxy]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[LIT_CHARS /mnt/master-pd/var/etcd]} {[LIT_CHARS /var/etcd]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[LIT_CHARS /mnt/master-pd/srv/kubernetes]} {[LIT_CHARS /srv/kubernetes]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[LIT_CHARS /mnt/master-pd/srv/sshproxy]} {[LIT_CHARS /srv/sshproxy]} ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[LIT_CHARS -f]} {[LIT_CHARS /mnt/master-pd/srv/salt-overlay]} {[LIT_CHARS /srv/salt-overlay]} ) (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]} {[LIT_CHARS /mnt/master-pd/var/etcd]} ) (Com {[LIT_CHARS chgrp]} {[LIT_CHARS -R]} {[LIT_CHARS etcd]} {[LIT_CHARS /mnt/master-pd/var/etcd]} ) ) ) (FunctionDef create-salt-pillar [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /srv/salt-overlay/pillar]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "instance_prefix: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub INSTANCE_PREFIX]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "node_tags: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NODE_TAGS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "node_instance_prefix: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NODE_INSTANCE_PREFIX]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "cluster_cidr: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub CLUSTER_IP_RANGE]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "allocate_node_cidrs: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ALLOCATE_NODE_CIDRS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "non_masquerade_cidr: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NON_MASQUERADE_CIDR]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "service_cluster_ip_range: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SERVICE_CLUSTER_IP_RANGE]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_cluster_monitoring: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CLUSTER_MONITORING]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_cluster_logging: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CLUSTER_LOGGING]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_cluster_ui: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CLUSTER_UI]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_node_problem_detector: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_NODE_PROBLEM_DETECTOR]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_l7_loadbalancing: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_L7_LOADBALANCING]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_node_logging: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_NODE_LOGGING]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_rescheduler: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_RESCHEDULER]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "logging_destination: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub LOGGING_DESTINATION]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "elasticsearch_replicas: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ELASTICSEARCH_LOGGING_REPLICAS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_cluster_dns: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CLUSTER_DNS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_cluster_registry: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CLUSTER_REGISTRY]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "dns_replicas: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DNS_REPLICAS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "dns_server: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DNS_SERVER_IP]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "dns_domain: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DNS_DOMAIN]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "admission_control: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ADMISSION_CONTROL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "storage_backend: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub STORAGE_BACKEND]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "network_provider: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NETWORK_PROVIDER]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "prepull_e2e_images: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub PREPULL_E2E_IMAGES]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "hairpin_mode: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub HAIRPIN_MODE]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "opencontrail_tag: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub OPENCONTRAIL_TAG]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "opencontrail_kubernetes_tag: '"][ComSub (Com {[LIT_CHARS echo]} {[DQ [VarSub OPENCONTRAIL_KUBERNETES_TAG]]})][LIT_CHARS "'\n"][LIT_CHARS "opencontrail_public_subnet: '"][ComSub (Com {[LIT_CHARS echo]} {[DQ [VarSub OPENCONTRAIL_PUBLIC_SUBNET]]})][LIT_CHARS "'\n"][LIT_CHARS "network_policy_provider: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NETWORK_POLICY_PROVIDER]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "enable_manifest_url: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_MANIFEST_URL test_op=VS_TEST_COLON_HYPHEN {}]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "manifest_url: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub MANIFEST_URL test_op=VS_TEST_COLON_HYPHEN {}]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "manifest_url_header: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub MANIFEST_URL_HEADER test_op=VS_TEST_COLON_HYPHEN {}]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "num_nodes: "][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NUM_NODES test_op=VS_TEST_COLON_HYPHEN {}]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "\n"][LIT_CHARS "e2e_storage_test_environment: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub E2E_STORAGE_TEST_ENVIRONMENT]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "kube_uid: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_UID]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "initial_etcd_cluster: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub INITIAL_ETCD_CLUSTER test_op=VS_TEST_COLON_HYPHEN {}]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "hostname: "][ComSub (Com {[LIT_CHARS hostname]} {[LIT_CHARS -s]})][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} "> 1), > ) (If (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ADMISSION_CONTROL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ADMISSION_CONTROL]} {[LIT_DBRACKET_LIKE "=="]} {[LIT_OTHER "*"] [DQ [LIT_CHARS ImagePolicyWebhook]] [LIT_OTHER "*"]} {[LIT_DBRACKET_LIKE "]"]} ) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "admission-control-config-file: /etc/admission_controller.config\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_PORT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "kubelet_port: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBELET_PORT]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ETCD_VERSION test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "etcd_docker_tag: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ETCD_VERSION]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub APISERVER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "apiserver_test_args: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub APISERVER_TEST_ARGS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub API_SERVER_TEST_LOG_LEVEL 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 "api_server_test_log_level: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub API_SERVER_TEST_LOG_LEVEL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "kubelet_test_args: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBELET_TEST_ARGS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBELET_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "kubelet_test_log_level: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBELET_TEST_LOG_LEVEL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub DOCKER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "docker_test_log_level: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DOCKER_TEST_LOG_LEVEL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "controller_manager_test_args: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_ARGS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "controller_manager_test_log_level: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub CONTROLLER_MANAGER_TEST_LOG_LEVEL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULER_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "scheduler_test_args: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SCHEDULER_TEST_ARGS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULER_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "scheduler_test_log_level: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SCHEDULER_TEST_LOG_LEVEL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBEPROXY_TEST_ARGS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "kubeproxy_test_args: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBEPROXY_TEST_ARGS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBEPROXY_TEST_LOG_LEVEL test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "kubeproxy_test_log_level: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBEPROXY_TEST_LOG_LEVEL]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_EQUAL {[DQ [VarSub ENABLE_CLUSTER_REGISTRY]]} {[LIT_CHARS true]}} {B1 UNARY_STRING_n {[DQ [VarSub CLUSTER_REGISTRY_DISK]]}}}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "cluster_registry_disk_type: gce\n"][LIT_CHARS "cluster_registry_disk_size: "][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[ComSub (Com {[LIT_CHARS convert-bytes-gce-kube]} {[VarSub CLUSTER_REGISTRY_DISK_SIZE]})]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "\n"][LIT_CHARS "cluster_registry_disk_name: "][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub CLUSTER_REGISTRY_DISK]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TERMINATED_POD_GC_THRESHOLD test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "terminated_pod_gc_threshold: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub TERMINATED_POD_GC_THRESHOLD]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub ENABLE_CUSTOM_METRICS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "enable_custom_metrics: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CUSTOM_METRICS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub NODE_LABELS test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "node_labels: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub NODE_LABELS]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub EVICTION_HARD test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "eviction_hard: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub EVICTION_HARD]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub ENABLE_CLUSTER_AUTOSCALER test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]]} {[DQ [LIT_CHARS true]]}}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "enable_cluster_autoscaler: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENABLE_CLUSTER_AUTOSCALER]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"][LIT_CHARS "autoscaler_mig_config: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub AUTOSCALER_MIG_CONFIG]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (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 cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "federations_domain_map: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "- --federations="][VarSub federations_domain_map]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) (ElseTrue) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "federations_domain_map: ''\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) ) (ElseTrue) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "federations_domain_map: ''\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub SCHEDULING_ALGORITHM_PROVIDER test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "scheduling_algorithm_provider: '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub SCHEDULING_ALGORITHM_PROVIDER]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /srv/salt-overlay/pillar/cluster-params.sls]} >"> 1), > ) ) ) ) (FunctionDef convert-bytes-gce-kube [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('storage_space', {[VarSub 1]})]) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub storage_space]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} ) ) ) ) (FunctionDef create-salt-master-auth [] (List (If (DBracket {B! {B1 UNARY_FILE_e {[LIT_CHARS /srv/kubernetes/ca.crt]}}}) (If (AndOr OP_AND_IF (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub CA_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (AndOr OP_AND_IF (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub MASTER_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub MASTER_KEY test_op=VS_TEST_COLON_HYPHEN {}]]}}}) ) ) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /srv/kubernetes]} ) (Subshell (List (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]} ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub CA_CERT]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[LIT_CHARS /srv/kubernetes/ca.crt]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub MASTER_CERT]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[LIT_CHARS /srv/kubernetes/server.cert]} "> 1), > ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub MASTER_KEY]]} ) (Com {[LIT_CHARS base64]} {[LIT_CHARS --decode]} < (FilenameRedirectNode filename={[LIT_CHARS /srv/kubernetes/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={[LIT_CHARS /srv/kubernetes/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={[LIT_CHARS /srv/kubernetes/kubecfg.key]} "> 1), > ) ) ) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub BASIC_AUTH_FILE]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /srv/salt-overlay/salt/kube-apiserver]} ) (Subshell (List (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_PASSWORD][LIT_CHARS ","][VarSub KUBE_USER][LIT_CHARS ",admin"]]} < (FilenameRedirectNode filename={[DQ [VarSub BASIC_AUTH_FILE]]} "> 1), > ) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub KNOWN_TOKENS_FILE]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /srv/salt-overlay/salt/kube-apiserver]} ) (Subshell (List (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_BEARER_TOKEN][LIT_CHARS ",admin,admin"]]} < (FilenameRedirectNode filename={[DQ [VarSub KNOWN_TOKENS_FILE]]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBELET_TOKEN][LIT_CHARS ",kubelet,kubelet"]]} < (FilenameRedirectNode filename={[DQ [VarSub KNOWN_TOKENS_FILE]]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [VarSub KUBE_PROXY_TOKEN][LIT_CHARS ",kube_proxy,kube_proxy"]]} < (FilenameRedirectNode filename={[DQ [VarSub KNOWN_TOKENS_FILE]]} >"> 1), > ) ) ) ) ) ) ) (FunctionDef create-salt-master-kubelet-auth [] (If (AndOr OP_AND_IF (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_APISERVER test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (AndOr OP_AND_IF (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_KEY test_op=VS_TEST_COLON_HYPHEN {}]]}}}) ) ) (Com {[LIT_CHARS create-salt-kubelet-auth]} ) ) ) (FunctionDef create-salt-kubelet-auth [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('kubelet_kubeconfig_file', {[DQ [LIT_CHARS /srv/salt-overlay/salt/kubelet/kubeconfig]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub kubelet_kubeconfig_file]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_CA_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('KUBELET_CA_CERT', {[DQ [VarSub CA_CERT]]})]) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /srv/salt-overlay/salt/kubelet]} ) (Subshell (List (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub kubelet_kubeconfig_file]]} "> 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 " server: https://kubernetes-master\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-salt-kubeproxy-auth [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('kube_proxy_kubeconfig_file', {[DQ [LIT_CHARS /srv/salt-overlay/salt/kube-proxy/kubeconfig]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[DQ [VarSub kube_proxy_kubeconfig_file]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /srv/salt-overlay/salt/kube-proxy]} ) (Subshell (List (Com {[LIT_CHARS umask]} {[LIT_CHARS 077]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub kube_proxy_kubeconfig_file]]} "> 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 split-commas [] (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]} ) (Com {[LIT_CHARS tr]} {[DQ [LIT_CHARS ","]]} {[DQ [\ LIT_ESCAPED_CHAR "\\n"]]} ) ) ) (FunctionDef try-download-release [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('server_binary_tar_urls', {[Array {[ComSub (Com {[LIT_CHARS split-commas]} {[DQ [VarSub SERVER_BINARY_TAR_URL]]})]}]})]) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('server_binary_tar', {[DQ [VarSub server_binary_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}) transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub SERVER_BINARY_TAR_HASH test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('server_binary_tar_hash', {[DQ [VarSub SERVER_BINARY_TAR_HASH]]})]) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading binary release sha1 (not found in env)"]]} ) (Com {[LIT_CHARS download-or-bust]} {[DQ ]} {[DQ [VarSub server_binary_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[PatSub {[LIT_CHARS .tar.gz]} {[LIT_CHARS .tar.gz.sha1]}]]]} ) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('server_binary_tar_hash', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub server_binary_tar][LIT_CHARS .sha1]]})]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading binary release tar ("][VarSub server_binary_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS ")"]]} ) (Com {[LIT_CHARS download-or-bust]} {[DQ [VarSub server_binary_tar_hash]]} {[DQ [VarSub server_binary_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} ) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('salt_tar_urls', {[Array {[ComSub (Com {[LIT_CHARS split-commas]} {[DQ [VarSub SALT_TAR_URL]]})]}]})]) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('salt_tar', {[DQ [VarSub salt_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}) transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub SALT_TAR_HASH test_op=VS_TEST_COLON_HYPHEN {}]]}}) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('salt_tar_hash', {[DQ [VarSub SALT_TAR_HASH]]})]) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading Salt tar sha1 (not found in env)"]]} ) (Com {[LIT_CHARS download-or-bust]} {[DQ ]} {[DQ [VarSub salt_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[PatSub {[LIT_CHARS .tar.gz]} {[LIT_CHARS .tar.gz.sha1]}]]]} ) (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('salt_tar_hash', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub salt_tar][LIT_CHARS .sha1]]})]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Downloading Salt tar ("][VarSub salt_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})][LIT_CHARS ")"]]} ) (Com {[LIT_CHARS download-or-bust]} {[DQ [VarSub salt_tar_hash]]} {[DQ [VarSub salt_tar_urls bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unpacking Salt tree and checking integrity of binary release tar"]]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS kubernetes]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS tar]} {[LIT_CHARS xzf]} {[DQ [VarSub salt_tar]]} ) (Com {[LIT_CHARS tar]} {[LIT_CHARS tzf]} {[DQ [VarSub server_binary_tar]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) ) ) (FunctionDef download-release [] (List (While (Com {[LIT_CHARS try-download-release]} ) (List (Com {[LIT_CHARS sleep]} {[LIT_CHARS 15]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Couldn't download release. Retrying..."]]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Running release install script"]]} ) (Com {[LIT_CHARS kubernetes/saltbase/install.sh]} {[DQ [VarSub SERVER_BINARY_TAR_URL transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]} ) ) ) (FunctionDef fix-apt-sources [] (List (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [\ LIT_ESCAPED_CHAR "\\|"][LIT_CHARS "^deb.*http://http.debian.net/debian| s/^/#/"]]} {[LIT_CHARS /etc/apt/sources.list]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[LIT_CHARS -e]} {[DQ [\ LIT_ESCAPED_CHAR "\\|"][LIT_CHARS "^deb.*http://ftp.debian.org/debian| s/^/#/"]]} {[LIT_CHARS /etc/apt/sources.list.d/backports.list]} ) ) ) (FunctionDef salt-run-local [] (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "file_client: local\n"][LIT_CHARS "file_roots:\n"][LIT_CHARS " base:\n"][LIT_CHARS " - /srv/salt\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/local.conf]} "> 1), > ) ) (FunctionDef salt-debug-log [] (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "log_level: debug\n"][LIT_CHARS "log_level_logfile: debug\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/log-level-debug.conf]} "> 1), > ) ) (FunctionDef salt-master-role [] (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "grains:\n"][LIT_CHARS " roles:\n"][LIT_CHARS " - kubernetes-master\n"][LIT_CHARS " cloud: gce\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} "> 1), > ) (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), > ) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG', {[SQ ]})]) (If (AndOr OP_AND_IF (Pipeline! (DBracket {B1 UNARY_STRING_z {[DQ [VarSub PROJECT_ID test_op=VS_TEST_COLON_HYPHEN {}]]}}) ) (AndOr OP_AND_IF (Pipeline! (DBracket {B1 UNARY_STRING_z {[DQ [VarSub TOKEN_URL test_op=VS_TEST_COLON_HYPHEN {}]]}}) ) (AndOr OP_AND_IF (Pipeline! (DBracket {B1 UNARY_STRING_z {[DQ [VarSub TOKEN_BODY test_op=VS_TEST_COLON_HYPHEN {}]]}}) ) (Pipeline! (DBracket {B1 UNARY_STRING_z {[DQ [VarSub NODE_NETWORK test_op=VS_TEST_COLON_HYPHEN {}]]}}) ) ) ) ) (List (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), > ) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG', {[LIT_CHARS /etc/gce.conf]})]) (= scope= flags=0 words=[] bindings=[('EXTERNAL_IP', {[ComSub (Com {[LIT_CHARS curl]} {[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"]]})]})]) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " advertise_address: '"][VarSub EXTERNAL_IP][LIT_CHARS "'\n"][LIT_CHARS " proxy_ssh_user: '"][VarSub PROXY_SSH_USER][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) ) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub NODE_INSTANCE_PREFIX test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (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), > ) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG', {[LIT_CHARS /etc/gce.conf]})]) ) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub MULTIZONE test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (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), > ) (= scope= flags=0 words=[] bindings=[('CLOUD_CONFIG', {[LIT_CHARS /etc/gce.conf]})]) ) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub CLOUD_CONFIG test_op=VS_TEST_COLON_HYPHEN {}]]}}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " cloud_config: "][VarSub CLOUD_CONFIG][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) (ElseTrue) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS /etc/gce.conf]} ) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub GCP_AUTHN_URL test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " webhook_authentication_config: /etc/gcp_authn.config\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) (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 (DBracket {B1 UNARY_STRING_n {[DQ [VarSub GCP_AUTHZ_URL test_op=VS_TEST_COLON_HYPHEN {}]]}}) (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " webhook_authorization_config: /etc/gcp_authz.config\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) (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 " image_review_config: /etc/gcp_image_review.config\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) (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 " image_review_webhook_config: /etc/admission_controller.config\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 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), > ) ) ) (If (AndOr OP_AND_IF (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_APISERVER test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (AndOr OP_AND_IF (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_CERT test_op=VS_TEST_COLON_HYPHEN {}]]}}}) (DBracket {B! {B1 UNARY_STRING_z {[DQ [VarSub KUBELET_KEY test_op=VS_TEST_COLON_HYPHEN {}]]}}}) ) ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " kubelet_api_servers: '"][VarSub KUBELET_APISERVER][LIT_CHARS "'\n"][LIT_CHARS " cbr-cidr: 10.123.45.0/29\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) (ElseTrue) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " cbr-cidr: "][VarSub MASTER_IP_RANGE][LIT_CHARS "\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) ) (Com {[LIT_CHARS env-to-grains]} {[DQ [LIT_CHARS runtime_config]]} ) (Com {[LIT_CHARS env-to-grains]} {[DQ [LIT_CHARS kube_user]]} ) ) ) (FunctionDef salt-node-role [] (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "grains:\n"][LIT_CHARS " roles:\n"][LIT_CHARS " - kubernetes-pool\n"][LIT_CHARS " cbr-cidr: 10.123.45.0/29\n"][LIT_CHARS " cloud: gce\n"][LIT_CHARS " api_servers: '"][VarSub KUBERNETES_MASTER_NAME][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} "> 1), > ) ) (FunctionDef env-to-grains [] (List (= scope= flags=0 words=[] bindings=[('key', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('env_key', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub key]}) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('value', {[VarSub env_key test_op=VS_TEST_COLON_HYPHEN {} transform_ops=[(!ref)]]})]) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub value]]}}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " "][VarSub key][LIT_CHARS ": '"][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub value]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s/'/''/g"]]}) )][LIT_CHARS "'\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS /etc/salt/minion.d/grains.conf]} >"> 1), > ) ) ) ) (FunctionDef node-docker-opts [] (List (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub EXTRA_DOCKER_OPTS test_op=VS_TEST_HYPHEN {}]]}}) (= scope= flags=0 words=[] bindings=[('DOCKER_OPTS', {[DQ [VarSub DOCKER_OPTS test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS " "][VarSub EXTRA_DOCKER_OPTS]]})]) ) (If (DBracket {B1 UNARY_STRING_n {[DQ [VarSub DOCKER_REGISTRY_MIRROR_URL test_op=VS_TEST_COLON_HYPHEN {}]]}}) (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 test_op=VS_TEST_COLON_HYPHEN {}][LIT_CHARS " --registry-mirror="][VarSub DOCKER_REGISTRY_MIRROR_URL]]})]) ) ) ) ) (FunctionDef salt-grains [] (List (Com {[LIT_CHARS env-to-grains]} {[DQ [LIT_CHARS docker_opts]]} ) (Com {[LIT_CHARS env-to-grains]} {[DQ [LIT_CHARS docker_root]]} ) (Com {[LIT_CHARS env-to-grains]} {[DQ [LIT_CHARS kubelet_root]]} ) (Com {[LIT_CHARS env-to-grains]} {[DQ [LIT_CHARS feature_gates]]} ) ) ) (FunctionDef configure-salt [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /etc/salt/minion.d]} ) (Com {[LIT_CHARS salt-run-local]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_MASTER]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS salt-master-role]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub KUBE_APISERVER_REQUEST_TIMEOUT test_op=VS_TEST_COLON_HYPHEN {}]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS salt-apiserver-timeout-grain]} {[VarSub KUBE_APISERVER_REQUEST_TIMEOUT]} ) ) ) (ElseTrue) (List (Com {[LIT_CHARS salt-node-role]} ) (Com {[LIT_CHARS node-docker-opts]} ) ) ) (Com {[LIT_CHARS salt-grains]} ) (Com {[LIT_CHARS install-salt]} ) (Com {[LIT_CHARS stop-salt-minion]} ) ) ) (FunctionDef run-salt [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== Calling Salt =="]]} ) (= scope= flags=0 words=[] bindings=[('rc', {[LIT_CHARS 0]})]) (For i [{[LIT_LBRACE "{"] [LIT_CHARS 0..6] [LIT_RBRACE "}"]}]) (List (AndOr OP_AND_IF (Com {[LIT_CHARS salt-call]} {[LIT_CHARS --local]} {[LIT_CHARS state.highstate]} ) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('rc', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('rc', {[VarSub ?]})]) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub rc]]} {[LIT_CHARS 0]}}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Salt failed to run repeatedly"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS return]} {[DQ [VarSub rc]]} ) ) ) (FunctionDef run-user-script [] (List (If (Com {[LIT_CHARS curl-metadata]} {[LIT_CHARS k8s-user-startup-script]} < (FilenameRedirectNode filename={[DQ [VarSub INSTALL_DIR][LIT_CHARS /k8s-user-script.sh]]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('user_script', {[ComSub (Com {[LIT_CHARS cat]} {[DQ [VarSub INSTALL_DIR][LIT_CHARS /k8s-user-script.sh]]})]})]) ) (If (DBracket {B! {B1 UNARY_STRING_z {[VarSub user_script test_op=VS_TEST_COLON_HYPHEN {}]}}}) (List (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[DQ [VarSub INSTALL_DIR][LIT_CHARS /k8s-user-script.sh]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== running user startup script =="]]} ) (Com {[DQ [VarSub INSTALL_DIR][LIT_CHARS /k8s-user-script.sh]]} ) ) ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub is_push]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== kube-up node config starting =="]]} ) (Com {[LIT_CHARS set-broken-motd]} ) (Com {[LIT_CHARS ensure-basic-networking]} ) (Com {[LIT_CHARS fix-apt-sources]} ) (Com {[LIT_CHARS ensure-install-dir]} ) (Com {[LIT_CHARS ensure-packages]} ) (Com {[LIT_CHARS set-kube-env]} ) (Com {[LIT_CHARS auto-upgrade]} ) (Com {[LIT_CHARS ensure-local-disks]} ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_MASTER]]} {[DQ [LIT_CHARS true]]}}) (Com {[LIT_CHARS mount-master-pd]} ) ) (Com {[LIT_CHARS create-salt-pillar]} ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub KUBERNETES_MASTER]]} {[DQ [LIT_CHARS true]]}}) (List (Com {[LIT_CHARS create-salt-master-auth]} ) (Com {[LIT_CHARS create-salt-master-kubelet-auth]} ) ) (ElseTrue) (List (Com {[LIT_CHARS create-salt-kubelet-auth]} ) (Com {[LIT_CHARS create-salt-kubeproxy-auth]} ) ) ) (Com {[LIT_CHARS download-release]} ) (Com {[LIT_CHARS configure-salt]} ) (Com {[LIT_CHARS remove-docker-artifacts]} ) (Com {[LIT_CHARS run-salt]} ) (Com {[LIT_CHARS reset-motd]} ) (Com {[LIT_CHARS run-user-script]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== kube-up node config done =="]]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== kube-push node config starting =="]]} ) (Com {[LIT_CHARS ensure-basic-networking]} ) (Com {[LIT_CHARS ensure-install-dir]} ) (Com {[LIT_CHARS set-kube-env]} ) (Com {[LIT_CHARS create-salt-pillar]} ) (Com {[LIT_CHARS download-release]} ) (Com {[LIT_CHARS reset-motd]} ) (Com {[LIT_CHARS run-salt]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "== kube-push node config done =="]]} ) ) ) )