github.com/wmuizelaar/kpt@v0.0.0-20221018115725-bd564717b2ed/e2e/testdata/fn-render/no-resources/starlark-httpbin.yaml (about) 1 # Copyright 2021 Google LLC 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 apiVersion: fn.kpt.dev/v1alpha1 15 kind: StarlarkRun 16 metadata: 17 name: httpbin-gen 18 source: |- 19 httpbin_deployment_internal = { 20 "apiVersion": "apps/v1", 21 "kind": "Deployment", 22 "metadata": { 23 "name": "httpbin", 24 "annotations": { 25 "internal.config.kubernetes.io/index": 0, 26 # generates resource in parent directory 27 "internal.config.kubernetes.io/path": "/another/file/out.yaml" 28 } 29 }, 30 "spec": { 31 "replicas": 4, 32 "template": { 33 "spec": { 34 "containers": [ 35 { 36 "name": "httpbin", 37 "image": "kennethreitz/httpbin", 38 "ports": [ 39 { 40 "containerPort": 9876 41 } 42 ] 43 } 44 ] 45 } 46 } 47 } 48 } 49 httpbin_deployment_legacy = { 50 "apiVersion": "apps/v1", 51 "kind": "Deployment", 52 "metadata": { 53 "name": "httpbin-2", 54 "annotations": { 55 "config.kubernetes.io/index": 1, 56 # generates resource in parent directory 57 "config.kubernetes.io/path": "/another/file/out.yaml" 58 } 59 }, 60 "spec": { 61 "replicas": 4, 62 "template": { 63 "spec": { 64 "containers": [ 65 { 66 "name": "httpbin", 67 "image": "kennethreitz/httpbin", 68 "ports": [ 69 { 70 "containerPort": 9876 71 } 72 ] 73 } 74 ] 75 } 76 } 77 } 78 } 79 # filter to return if resource is HTTPBin resource 80 def is_httpbin(r): 81 return r["apiVersion"] == "apps/v1" and r["kind"] == "Deployment" and r["metadata"]["name"] == "httpbin" 82 83 def ensure_httpbin(resources): 84 for r in resources: 85 if is_httpbin(r): 86 return 87 88 resources.append(httpbin_deployment_internal) 89 resources.append(httpbin_deployment_legacy) 90 91 ensure_httpbin(ctx.resource_list["items"])