(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]} ) (FunctionDef grab_profiles_from_component [] (List (= scope= flags=0 words=[] bindings=[('requested_profiles', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('mem_pprof_flags', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('binary', {[VarSub 3]})]) (= scope= flags=0 words=[] bindings=[('tunnel_port', {[VarSub 4]})]) (= scope= flags=0 words=[] bindings=[('path', {[VarSub 5]})]) (= scope= flags=0 words=[] bindings=[('output_prefix', {[VarSub 6]})]) (= scope= flags=0 words=[] bindings=[('timestamp', {[VarSub 7]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "binary: "][VarSub binary]]} ) (For profile [{[VarSub requested_profiles]}]) (Case to_match={[VarSub profile]}, pat_word_list=[[{[LIT_CHARS cpu]}], [{[LIT_CHARS mem]}]] (Com {[LIT_CHARS go]} {[LIT_CHARS tool]} {[LIT_CHARS pprof]} {[DQ [LIT_CHARS -pdf]]} {[DQ [VarSub binary]]} {[DQ [LIT_CHARS "http://localhost:"][VarSub tunnel_port][VarSub path][LIT_CHARS /debug/pprof/profile]]} < (FilenameRedirectNode filename={[DQ [VarSub output_prefix][LIT_CHARS -][VarSub profile][LIT_CHARS -profile-][VarSub timestamp][LIT_CHARS .pdf]]} "> 1), > ) (For flag [{[VarSub mem_pprof_flags]}]) (Com {[LIT_CHARS go]} {[LIT_CHARS tool]} {[LIT_CHARS pprof]} {[DQ [LIT_CHARS -][VarSub flag]]} {[DQ [LIT_CHARS -pdf]]} {[DQ [VarSub binary]]} {[DQ [LIT_CHARS "http://localhost:"][VarSub tunnel_port][VarSub path][LIT_CHARS /debug/pprof/heap]]} < (FilenameRedirectNode filename={[DQ [VarSub output_prefix][LIT_CHARS -][VarSub profile][LIT_CHARS -][VarSub flag][LIT_CHARS -profile-][VarSub timestamp][LIT_CHARS .pdf]]} "> 1), > ) ) ) ) ) ) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /..]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /hack/lib/init.sh]]} ) (= scope= flags=0 words=[] bindings=[('server_addr', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('kubelet_addreses', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('kubelet_binary', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('master_binary', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('scheduler_binary', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('scheduler_port', {[DQ [LIT_CHARS 10251]]})]) (= scope= flags=0 words=[] bindings=[('controller_manager_port', {[DQ [LIT_CHARS 10252]]})]) (= scope= flags=0 words=[] bindings=[('controller_manager_binary', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('mem_pprof_flags', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('profile_components', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('output_dir', {[DQ [LIT_CHARS .]]})]) (= scope= flags=0 words=[] bindings=[('tunnel_port', {[DQ [VarSub tunnel_port test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 1234]}]]})]) (= scope= flags=0 words=[] bindings=[('args', {[ComSub (Com {[LIT_CHARS getopt]} {[LIT_CHARS -o]} {[LIT_CHARS s] [LIT_OTHER ":"] [LIT_CHARS mho] [LIT_OTHER ":"] [LIT_CHARS k] [LIT_OTHER ":"] [LIT_CHARS c]} {[LIT_CHARS -l]} {[LIT_CHARS server] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS master] [LIT_COMMA ","] [LIT_CHARS heapster] [LIT_COMMA ","] [LIT_CHARS output] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS kubelet] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS scheduler] [LIT_COMMA ","] [LIT_CHARS controller-manager] [LIT_COMMA ","] [LIT_CHARS help] [LIT_COMMA ","] [LIT_CHARS inuse-space] [LIT_COMMA ","] [LIT_CHARS inuse-objects] [LIT_COMMA ","] [LIT_CHARS alloc-space] [LIT_COMMA ","] [LIT_CHARS alloc-objects] [LIT_COMMA ","] [LIT_CHARS cpu] [LIT_COMMA ","] [LIT_CHARS kubelet-binary] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS master-binary] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS scheduler-binary] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS controller-manager-binary] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS scheduler-port] [LIT_OTHER ":"] [LIT_COMMA ","] [LIT_CHARS controller-manager-port] [LIT_OTHER ":"]} {[LIT_CHARS --]} {[DQ [VarSub @]]})]})]) (If (DBracket {B2 BINARY_INT_NE {[VarSub ?]} {[LIT_CHARS 0]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error in getopt"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('HEAPSTER_VERSION', {[DQ [LIT_CHARS v0.18.2]]})]) (= scope= flags=0 words=[] bindings=[('MASTER_PPROF_PATH', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('HEAPSTER_PPROF_PATH', {[DQ [LIT_CHARS /api/v1/proxy/namespaces/kube-system/services/monitoring-heapster]]})]) (= scope= flags=0 words=[] bindings=[('KUBELET_PPROF_PATH_PREFIX', {[DQ [LIT_CHARS /api/v1/proxy/nodes]]})]) (= scope= flags=0 words=[] bindings=[('SCHEDULER_PPROF_PATH_PREFIX', {[DQ [LIT_CHARS /api/v1/proxy/namespaces/kube-system/pods/kube-scheduler]]})]) (= scope= flags=0 words=[] bindings=[('CONTROLLER_MANAGER_PPROF_PATH_PREFIX', {[DQ [LIT_CHARS /api/v1/proxy/namespaces/kube-system/pods/kube-controller-manager]]})]) (Com {[LIT_CHARS eval]} {[LIT_CHARS set]} {[LIT_CHARS --]} {[DQ [VarSub args]]} ) (While (Com {[LIT_CHARS true]} ) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS -s]}, {[LIT_CHARS --server]}], [{[LIT_CHARS -m]}, {[LIT_CHARS --master]}], [{[LIT_CHARS --master-binary]}], [{[LIT_CHARS -h]}, {[LIT_CHARS --heapster]}], [{[LIT_CHARS -k]}, {[LIT_CHARS --kubelet]}], [{[LIT_CHARS --kubelet-binary]}], [{[LIT_CHARS --scheduler]}], [{[LIT_CHARS --scheduler-binary]}], [{[LIT_CHARS --scheduler-port]}], [{[LIT_CHARS -c]}, {[LIT_CHARS --controller-manager]}], [{[LIT_CHARS --controller-manager-binary]}], [{[LIT_CHARS --controller-manager-port]}], [{[LIT_CHARS -o]}, {[LIT_CHARS --output]}], [{[LIT_CHARS --inuse-space]}], [{[LIT_CHARS --inuse-objects]}], [{[LIT_CHARS --alloc-space]}], [{[LIT_CHARS --alloc-objects]}], [{[LIT_CHARS --cpu]}], [{[LIT_CHARS --help]}], [{[LIT_CHARS --]}]] (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argument to --server flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('server_addr', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('profile_components', {[DQ [LIT_CHARS "master "][VarSub profile_components]]})]) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --master-binary flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('master_binary', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('profile_components', {[DQ [LIT_CHARS "heapster "][VarSub profile_components]]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('profile_components', {[DQ [LIT_CHARS "kubelet "][VarSub profile_components]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --kubelet flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('kubelet_addreses', {[DQ [VarSub 1][LIT_CHARS " "][VarSub kubelet_addreses]]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --kubelet-binary flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('kubelet_binary', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('profile_components', {[DQ [LIT_CHARS "scheduler "][VarSub profile_components]]})]) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --scheduler-binary flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('scheduler_binary', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --scheduler-port flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('scheduler_port', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('profile_components', {[DQ [LIT_CHARS "controller-manager "][VarSub profile_components]]})]) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --controller-manager-binary flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('controller_manager_binary', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argumet to --controller-manager-port flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS controller-managerr_port] [LIT_DBRACKET_LIKE "="] [VarSub 1]} ) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "empty argument to --output flag"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('output_dir', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[DQ [LIT_CHARS "mem "][VarSub requested_profiles]]})]) (= scope= flags=0 words=[] bindings=[('mem_pprof_flags', {[DQ [LIT_CHARS "inuse_space "][VarSub mem_pprof_flags]]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[DQ [LIT_CHARS "mem "][VarSub requested_profiles]]})]) (= scope= flags=0 words=[] bindings=[('mem_pprof_flags', {[DQ [LIT_CHARS "inuse_objects "][VarSub mem_pprof_flags]]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[DQ [LIT_CHARS "mem "][VarSub requested_profiles]]})]) (= scope= flags=0 words=[] bindings=[('mem_pprof_flags', {[DQ [LIT_CHARS "alloc_space "][VarSub mem_pprof_flags]]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[DQ [LIT_CHARS "mem "][VarSub requested_profiles]]})]) (= scope= flags=0 words=[] bindings=[('mem_pprof_flags', {[DQ [LIT_CHARS "alloc_objects "][VarSub mem_pprof_flags]]})]) ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[DQ [LIT_CHARS "cpu "][VarSub requested_profiles]]})]) ) (List (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Recognized options:\n"][LIT_CHARS " -o/--output,\n"][LIT_CHARS " -s/--server,\n"][LIT_CHARS " -m/--master,\n"][LIT_CHARS " -h/--heapster,\n"][LIT_CHARS " --inuse-space,\n"][LIT_CHARS " --inuse-objects,\n"][LIT_CHARS " --alloc-space,\n"][LIT_CHARS " --alloc-objects,\n"][LIT_CHARS " --cpu,\n"][LIT_CHARS " --help"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) ) (List (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS break]} ) ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub server_addr]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Server flag is required"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub profile_components]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Choose at least one component to profile"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub requested_profiles]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Choose at least one profiling option"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Fork (Com {[LIT_CHARS gcloud]} {[LIT_CHARS compute]} {[LIT_CHARS ssh]} {[DQ [VarSub server_addr]]} {[LIT_CHARS --ssh-flag] [LIT_DBRACKET_LIKE "="] [LIT_CHARS -nN]} {[LIT_CHARS --ssh-flag] [LIT_DBRACKET_LIKE "="] [LIT_CHARS -L] [VarSub tunnel_port] [LIT_OTHER ":"] [LIT_CHARS localhost] [LIT_OTHER ":"] [LIT_CHARS 8080]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Waiting for tunnel to be created..."]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS wait_for_url]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //localhost] [LIT_OTHER ":"] [VarSub tunnel_port] [LIT_CHARS /healthz]} ) (= scope= flags=0 words=[] bindings=[('SSH_PID', {[ComSub (Com {[LIT_CHARS pgrep]} {[LIT_CHARS -f]} {[DQ [LIT_CHARS "/usr/bin/ssh.*"][VarSub tunnel_port][LIT_CHARS ":localhost:8080"]]})]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS trap_add]} {[SQ ]} {[LIT_CHARS EXIT]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS trap_add]} {[SQ ]} {[LIT_CHARS SIGTERM]} ) (= scope= flags=0 words=[] bindings=[('requested_profiles', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub requested_profiles]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS -n1]}) (Com more_env=[('LC_ALL', {[LIT_CHARS C]})] {[LIT_CHARS sort]} {[LIT_CHARS -u]}) (Com {[LIT_CHARS xargs]}) )]})]) (= scope= flags=0 words=[] bindings=[('profile_components', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub profile_components]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS -n1]}) (Com more_env=[('LC_ALL', {[LIT_CHARS C]})] {[LIT_CHARS sort]} {[LIT_CHARS -u]}) (Com {[LIT_CHARS xargs]}) )]})]) (= scope= flags=0 words=[] bindings=[('kubelet_addreses', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub kubelet_addreses]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS -n1]}) (Com more_env=[('LC_ALL', {[LIT_CHARS C]})] {[LIT_CHARS sort]} {[LIT_CHARS -u]}) (Com {[LIT_CHARS xargs]}) )]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "requested profiles: "][VarSub requested_profiles]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "flags for heap profile: "][VarSub mem_pprof_flags]]} ) (= scope= flags=0 words=[] bindings=[('timestamp', {[ComSub (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [LIT_OTHER "%"] [LIT_CHARS Y] [LIT_OTHER "%"] [LIT_CHARS m] [LIT_OTHER "%"] [LIT_CHARS d] [LIT_OTHER "%"] [LIT_CHARS H] [LIT_OTHER "%"] [LIT_CHARS M] [LIT_OTHER "%"] [LIT_CHARS S]})]})]) (= scope= flags=0 words=[] bindings=[('binary', {[DQ ]})]) (For component [{[VarSub profile_components]}]) (List (Case to_match={[VarSub component]}, pat_word_list=[[{[LIT_CHARS master]}], [{[LIT_CHARS controller-manager]}], [{[LIT_CHARS scheduler]}], [{[LIT_CHARS heapster]}], [{[LIT_CHARS kubelet]}]] (List (= scope= flags=0 words=[] bindings=[('path', {[VarSub MASTER_PPROF_PATH]})]) (= scope= flags=0 words=[] bindings=[('binary', {[VarSub master_binary]})]) ) (List (= scope= flags=0 words=[] bindings=[('path', {[DQ [VarSub CONTROLLER_MANAGER_PPROF_PATH_PREFIX][LIT_CHARS -][VarSub server_addr][LIT_CHARS ":"][VarSub controller_manager_port]]})]) (= scope= flags=0 words=[] bindings=[('binary', {[VarSub controller_manager_binary]})]) ) (List (= scope= flags=0 words=[] bindings=[('path', {[DQ [VarSub SCHEDULER_PPROF_PATH_PREFIX][LIT_CHARS -][VarSub server_addr][LIT_CHARS ":"][VarSub scheduler_port]]})]) (= scope= flags=0 words=[] bindings=[('binary', {[VarSub scheduler_binary]})]) ) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS heapster]} ) (Com {[LIT_CHARS wget]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //github.com/kubernetes/heapster/releases/download/] [VarSub HEAPSTER_VERSION] [LIT_CHARS /heapster]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS trap_add]} {[SQ ]} {[LIT_CHARS EXIT]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS trap_add]} {[SQ ]} {[LIT_CHARS SIGTERM]} ) (= scope= flags=0 words=[] bindings=[('binary', {[LIT_CHARS heapster]})]) (= scope= flags=0 words=[] bindings=[('path', {[VarSub HEAPSTER_PPROF_PATH]})]) ) (List (= scope= flags=0 words=[] bindings=[('path', {[DQ [VarSub KUBELET_PPROF_PATH_PREFIX]]})]) (If (DBracket {B1 UNARY_STRING_z {[DQ [VarSub kubelet_binary]]}}) (= scope= flags=0 words=[] bindings=[('binary', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /_output/local/bin/linux/amd64/kubelet]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('binary', {[VarSub kubelet_binary]})]) ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub component]]} {[DQ [LIT_CHARS kubelet]]}}) (For node [{[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub kubelet_addreses]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]}]) (Com {[LIT_CHARS grab_profiles_from_component]} {[DQ [VarSub requested_profiles]]} {[DQ [VarSub mem_pprof_flags]]} {[DQ [VarSub binary]]} {[DQ [VarSub tunnel_port]]} {[DQ [VarSub path][LIT_CHARS /][VarSub node]]} {[DQ [VarSub output_dir][LIT_CHARS /][VarSub component]]} {[DQ [VarSub timestamp]]} ) ) (ElseTrue) (Com {[LIT_CHARS grab_profiles_from_component]} {[DQ [VarSub requested_profiles]]} {[DQ [VarSub mem_pprof_flags]]} {[DQ [VarSub binary]]} {[DQ [VarSub tunnel_port]]} {[DQ [VarSub path]]} {[DQ [VarSub output_dir][LIT_CHARS /][VarSub component]]} {[DQ [VarSub timestamp]]} ) ) ) ) )