github.com/wmuizelaar/kpt@v0.0.0-20221018115725-bd564717b2ed/e2e/testdata/fn-render/path-index-descendent/starlark-httpbin-gen.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 = {
    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 child directory
    27            "internal.config.kubernetes.io/path": "./db/deployment_httpbin.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    # filter to return if resource is HTTPBin resource
    50    def is_httpbin(r):
    51      return r["apiVersion"] == "apps/v1" and r["kind"] == "Deployment" and r["metadata"]["name"] == "httpbin"
    52  
    53    def ensure_httpbin(resources):
    54      for r in resources:
    55        if is_httpbin(r):
    56          return
    57  
    58      resources.append(httpbin_deployment)
    59  
    60    ensure_httpbin(ctx.resource_list["items"])