(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /..]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /hack/lib/init.sh]]} ) (= scope= flags=0 words=[] bindings=[('KUBE_OLD_API_VERSION', {[VarSub KUBE_OLD_API_VERSION test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS v1]]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_NEW_API_VERSION', {[VarSub KUBE_NEW_API_VERSION test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS v1]]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_OLD_STORAGE_VERSIONS', {[VarSub KUBE_OLD_STORAGE_VERSIONs test_op=VS_TEST_COLON_HYPHEN {[DQ ]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_NEW_STORAGE_VERSIONS', {[VarSub KUBE_NEW_STORAGE_VERSIONs test_op=VS_TEST_COLON_HYPHEN {[DQ ]}]})]) (= scope= flags=0 words=[] bindings=[('STORAGE_BACKEND_ETCD2', {[DQ [LIT_CHARS etcd2]]})]) (= scope= flags=0 words=[] bindings=[('STORAGE_BACKEND_ETCD3', {[DQ [LIT_CHARS etcd3]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_STORAGE_MEDIA_TYPE_JSON', {[DQ [LIT_CHARS application/json]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_STORAGE_MEDIA_TYPE_PROTOBUF', {[DQ [LIT_CHARS application/vnd.kubernetes.protobuf]]})]) (= scope= flags=0 words=[] bindings=[('ETCD_HOST', {[VarSub ETCD_HOST test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 127.0.0.1]}]})]) (= scope= flags=0 words=[] bindings=[('ETCD_PORT', {[VarSub ETCD_PORT test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 2379]}]})]) (= scope= flags=0 words=[] bindings=[('ETCD_PREFIX', {[VarSub ETCD_PREFIX test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS randomPrefix]}]})]) (= scope= flags=0 words=[] bindings=[('API_PORT', {[VarSub API_PORT test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 8080]}]})]) (= scope= flags=0 words=[] bindings=[('API_HOST', {[VarSub API_HOST test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 127.0.0.1]}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_API_VERSIONS', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('RUNTIME_CONFIG', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('ETCDCTL', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS etcdctl]})]})]) (= scope= flags=0 words=[] bindings=[('KUBECTL', {[DQ [VarSub KUBE_OUTPUT_HOSTBIN][LIT_CHARS /kubectl]]})]) (= scope= flags=0 words=[] bindings=[('UPDATE_ETCD_OBJECTS_SCRIPT', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /cluster/update-storage-objects.sh]]})]) (FunctionDef startApiServer [] (List (= scope= flags=0 words=[] bindings=[('storage_backend', {[VarSub 1 test_op=VS_TEST_COLON_HYPHEN {[DQ [VarSub STORAGE_BACKEND_ETCD2]]}]})]) (= scope= flags=0 words=[] bindings=[('storage_versions', {[VarSub 2 test_op=VS_TEST_COLON_HYPHEN {[DQ ]}]})]) (= scope= flags=0 words=[] bindings=[('storage_media_type', {[VarSub 3 test_op=VS_TEST_COLON_HYPHEN {[DQ ]}]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Starting kube-apiserver with KUBE_API_VERSIONS: "][VarSub KUBE_API_VERSIONS]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS " and storage-backend: "][VarSub storage_backend]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS " and storage-media-type: "][VarSub storage_media_type]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS " and runtime-config: "][VarSub RUNTIME_CONFIG]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS " and storage-version overrides: "][VarSub storage_versions]]} ) (Fork (Com {[DQ [VarSub KUBE_OUTPUT_HOSTBIN][LIT_CHARS /kube-apiserver]]} {[LIT_CHARS --insecure-bind-address] [LIT_DBRACKET_LIKE "="] [DQ [VarSub API_HOST]]} {[LIT_CHARS --bind-address] [LIT_DBRACKET_LIKE "="] [DQ [VarSub API_HOST]]} {[LIT_CHARS --insecure-port] [LIT_DBRACKET_LIKE "="] [DQ [VarSub API_PORT]]} {[LIT_CHARS --storage-backend] [LIT_DBRACKET_LIKE "="] [DQ [VarSub storage_backend]]} {[LIT_CHARS --etcd-servers] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS "http://"][VarSub ETCD_HOST][LIT_CHARS ":"][VarSub ETCD_PORT]]} {[LIT_CHARS --etcd-prefix] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS /][VarSub ETCD_PREFIX]]} {[LIT_CHARS --runtime-config] [LIT_DBRACKET_LIKE "="] [DQ [VarSub RUNTIME_CONFIG]]} {[LIT_CHARS --cert-dir] [LIT_DBRACKET_LIKE "="] [DQ [VarSub TMPDIR test_op=VS_TEST_COLON_HYPHEN {[LIT_SLASH /] [LIT_CHARS tmp] [LIT_SLASH /]}]]} {[LIT_CHARS --service-cluster-ip-range] [LIT_DBRACKET_LIKE "="] [DQ [LIT_CHARS 10.0.0.0/24]]} {[LIT_CHARS --storage-versions] [LIT_DBRACKET_LIKE "="] [DQ [VarSub storage_versions]]} {[LIT_CHARS --storage-media-type] [LIT_DBRACKET_LIKE "="] [VarSub storage_media_type]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > more_env=[('KUBE_API_VERSIONS', {[DQ [VarSub KUBE_API_VERSIONS]]})] ) ) (= scope= flags=0 words=[] bindings=[('APISERVER_PID', {[VarSub !]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS wait_for_url]} {[DQ [LIT_CHARS "http://"][VarSub API_HOST][LIT_CHARS ":"][VarSub API_PORT][LIT_CHARS /healthz]]} {[DQ [LIT_CHARS "apiserver: "]]} {[LIT_CHARS 1]} {[LIT_CHARS 120]} ) ) ) (FunctionDef killApiServer [] (List (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Killing api server"]]} ) (If (DBracket {B1 UNARY_STRING_n {[VarSub APISERVER_PID test_op=VS_TEST_HYPHEN {}]}}) (List (Com {[LIT_CHARS kill]} {[VarSub APISERVER_PID]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS wait]} {[VarSub APISERVER_PID]} ) (Com {[LIT_CHARS true]} ) ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "api server exited"]]} ) ) ) (Com {[LIT_CHARS unset]} {[LIT_CHARS APISERVER_PID]} ) ) ) (FunctionDef cleanup [] (List (Com {[LIT_CHARS killApiServer]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS etcd] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS cleanup]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Clean up complete"]]} ) ) ) (Com {[LIT_CHARS trap]} {[LIT_CHARS cleanup]} {[LIT_CHARS EXIT]} {[LIT_CHARS SIGINT]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS -C]} {[DQ [VarSub KUBE_ROOT]]} {[LIT_VAR_LIKE "WHAT="] [LIT_CHARS cmd/kube-apiserver] =} ) (Com {[LIT_CHARS make]} {[LIT_CHARS -C]} {[DQ [VarSub KUBE_ROOT]]} {[LIT_VAR_LIKE "WHAT="] [LIT_CHARS cluster/images/etcd/attachlease] =} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS etcd] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS start]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub ETCD_VERSION][LIT_CHARS /][VarSub STORAGE_BACKEND_ETCD2]]} < (FilenameRedirectNode filename={[DQ [VarSub ETCD_DIR][LIT_CHARS /version.txt]]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('tests', {[Array {OP_NEWLINE "\n"} {[LIT_CHARS test/fixtures/doc-yaml/user-guide/job.yaml] [LIT_COMMA ","] [LIT_CHARS jobs] [LIT_COMMA ","] [LIT_CHARS default] [LIT_COMMA ","] [LIT_CHARS pi] [LIT_COMMA ","] [LIT_CHARS extensions/v1beta1] [LIT_COMMA ","] [LIT_CHARS batch/v1]} {OP_NEWLINE "\n"} {[LIT_CHARS test/fixtures/doc-yaml/user-guide/horizontal-pod-autoscaling/hpa-php-apache.yaml] [LIT_COMMA ","] [LIT_CHARS horizontalpodautoscalers] [LIT_COMMA ","] [LIT_CHARS default] [LIT_COMMA ","] [LIT_CHARS php-apache] [LIT_COMMA ","] [LIT_CHARS extensions/v1beta1] [LIT_COMMA ","] [LIT_CHARS autoscaling/v1]} {OP_NEWLINE "\n"}]})]) (= scope= flags=0 words=[] bindings=[('KUBE_OLD_API_VERSION', {[DQ [LIT_CHARS "v1,extensions/v1beta1"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_NEW_API_VERSION', {[DQ [LIT_CHARS "v1,extensions/v1beta1,batch/v1,autoscaling/v1"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_OLD_STORAGE_VERSIONS', {[DQ [LIT_CHARS "batch=extensions/v1beta1,autoscaling=extensions/v1beta1"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_NEW_STORAGE_VERSIONS', {[DQ [LIT_CHARS "batch/v1,autoscaling/v1"]]})]) (= scope= flags=0 words=[] bindings=[('KUBE_API_VERSIONS', {[DQ [VarSub KUBE_OLD_API_VERSION][LIT_CHARS ","][VarSub KUBE_NEW_API_VERSION]]})]) (= scope= flags=0 words=[] bindings=[('RUNTIME_CONFIG', {[DQ [LIT_CHARS "api/all=false,api/"][VarSub KUBE_OLD_API_VERSION][LIT_CHARS "=true,api/"][VarSub KUBE_NEW_API_VERSION][LIT_CHARS "=true"]]})]) (Com {[LIT_CHARS startApiServer]} {[VarSub STORAGE_BACKEND_ETCD2]} {[VarSub KUBE_OLD_STORAGE_VERSIONS]} {[VarSub KUBE_STORAGE_MEDIA_TYPE_JSON]} ) (For test [{[VarSub tests bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]) (List (Com {[LIT_CHARS read]} {[LIT_CHARS -ra]} {[LIT_CHARS test_data]} < (HereWordRedirectNode here_word={[DQ [VarSub test]]} 0), > more_env=[('IFS', {[SQ ]})] ) (= scope= flags=0 words=[] bindings=[('source_file', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Creating "][VarSub source_file]]} ) (Com {[VarSub KUBECTL]} {[LIT_CHARS create]} {[LIT_CHARS -f]} {[DQ [VarSub source_file]]} ) (= scope= flags=0 words=[] bindings=[('resource', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]})]) (= scope= flags=0 words=[] bindings=[('namespace', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}})]})]) (= scope= flags=0 words=[] bindings=[('name', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}})]})]) (= scope= flags=0 words=[] bindings=[('old_storage_version', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 4]}})]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Verifying "][VarSub resource][LIT_CHARS /][VarSub namespace][LIT_CHARS /][VarSub name][LIT_CHARS " has storage version "][VarSub old_storage_version][LIT_CHARS " in etcd"]]} ) (Pipeline (Com {[LIT_CHARS curl]} {[LIT_CHARS -s]} {[LIT_CHARS http] [LIT_OTHER ":"] [LIT_CHARS //] [VarSub ETCD_HOST] [LIT_OTHER ":"] [VarSub ETCD_PORT] [LIT_CHARS /v2/keys/] [VarSub ETCD_PREFIX] [LIT_CHARS /] [VarSub resource] [LIT_CHARS /] [VarSub namespace] [LIT_CHARS /] [VarSub name]} ) (Com {[LIT_CHARS grep]} {[VarSub old_storage_version]} ) ) ) ) (Com {[LIT_CHARS killApiServer]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS etcd] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS stop]} ) (Com {[VarSub KUBE_ROOT] [LIT_CHARS /cluster/images/etcd/migrate-if-needed.sh]} more_env=[('TARGET_STORAGE', {[DQ [LIT_CHARS etcd3]]}), ('TARGET_VERSION', {[DQ [LIT_CHARS 3.0.13]]}), ('DATA_DIRECTORY', {[DQ [VarSub ETCD_DIR]]}), ('ETCD', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS etcd]})]}), ('ETCDCTL', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS etcdctl]})]}), ('ATTACHLEASE', {[DQ [VarSub KUBE_OUTPUT_HOSTBIN][LIT_CHARS /attachlease]]})] ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS etcd] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS start]} ) (= scope= flags=0 words=[] bindings=[('KUBE_API_VERSIONS', {[DQ [VarSub KUBE_NEW_API_VERSION][LIT_CHARS ","][VarSub KUBE_OLD_API_VERSION]]})]) (= scope= flags=0 words=[] bindings=[('RUNTIME_CONFIG', {[DQ [LIT_CHARS "api/all=false,api/"][VarSub KUBE_OLD_API_VERSION][LIT_CHARS "=true,api/"][VarSub KUBE_NEW_API_VERSION][LIT_CHARS "=true"]]})]) (Com {[LIT_CHARS startApiServer]} {[VarSub STORAGE_BACKEND_ETCD3]} {[VarSub KUBE_NEW_STORAGE_VERSIONS]} {[VarSub KUBE_STORAGE_MEDIA_TYPE_JSON]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Updating storage versions in etcd"]]} ) (Com {[VarSub UPDATE_ETCD_OBJECTS_SCRIPT]} ) (For test [{[VarSub tests bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]) (List (Com {[LIT_CHARS read]} {[LIT_CHARS -ra]} {[LIT_CHARS test_data]} < (HereWordRedirectNode here_word={[DQ [VarSub test]]} 0), > more_env=[('IFS', {[SQ ]})] ) (= scope= flags=0 words=[] bindings=[('resource', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]})]) (= scope= flags=0 words=[] bindings=[('namespace', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}})]})]) (= scope= flags=0 words=[] bindings=[('name', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}})]})]) (= scope= flags=0 words=[] bindings=[('new_storage_version', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 5]}})]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Verifying "][VarSub resource][LIT_CHARS /][VarSub namespace][LIT_CHARS /][VarSub name][LIT_CHARS " has updated storage version "][VarSub new_storage_version][LIT_CHARS " in etcd"]]} ) (Pipeline (Com {[VarSub ETCDCTL]} {[LIT_CHARS --endpoints] [LIT_DBRACKET_LIKE "="] [DQ [VarSub ETCD_HOST][LIT_CHARS ":"][VarSub ETCD_PORT]]} {[LIT_CHARS get]} {[DQ [LIT_CHARS /][VarSub ETCD_PREFIX][LIT_CHARS /][VarSub resource][LIT_CHARS /][VarSub namespace][LIT_CHARS /][VarSub name]]} more_env=[('ETCDCTL_API', {[LIT_CHARS 3]})] ) (Com {[LIT_CHARS grep]} {[VarSub new_storage_version]} ) ) ) ) (Com {[LIT_CHARS killApiServer]} ) (= scope= flags=0 words=[] bindings=[('KUBE_API_VERSIONS', {[DQ [VarSub KUBE_NEW_API_VERSION]]})]) (= scope= flags=0 words=[] bindings=[('RUNTIME_CONFIG', {[DQ [LIT_CHARS "api/all=false,api/"][VarSub KUBE_NEW_API_VERSION][LIT_CHARS "=true"]]})]) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) (Com {[LIT_CHARS startApiServer]} {[VarSub STORAGE_BACKEND_ETCD3]} {[VarSub KUBE_NEW_STORAGE_VERSIONS]} {[VarSub KUBE_STORAGE_MEDIA_TYPE_PROTOBUF]} ) (For test [{[VarSub tests bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}]) (List (Com {[LIT_CHARS read]} {[LIT_CHARS -ra]} {[LIT_CHARS test_data]} < (HereWordRedirectNode here_word={[DQ [VarSub test]]} 0), > more_env=[('IFS', {[SQ ]})] ) (= scope= flags=0 words=[] bindings=[('resource', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}})]})]) (= scope= flags=0 words=[] bindings=[('namespace', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}})]})]) (= scope= flags=0 words=[] bindings=[('name', {[VarSub test_data bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 3]}})]})]) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS log] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS status]} {[DQ [LIT_CHARS "Verifying we can retrieve "][VarSub resource][LIT_CHARS /][VarSub namespace][LIT_CHARS /][VarSub name][LIT_CHARS " via kubectl"]]} ) (Com {[VarSub KUBECTL]} {[LIT_CHARS get]} {[LIT_CHARS --namespace] [LIT_DBRACKET_LIKE "="] [VarSub namespace]} {[VarSub resource] [LIT_CHARS /] [VarSub name]} ) ) ) (Com {[LIT_CHARS killApiServer]} ) )