github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/transpiled_examples/kubernetes-pp/nodejs/kubernetes.ts (about)

     1  import * as pulumi from "@pulumi/pulumi";
     2  import * as kubernetes from "@pulumi/kubernetes";
     3  
     4  const config = new pulumi.Config();
     5  const hostname = config.get("hostname") || "example.com";
     6  const nginxDemo = new kubernetes.core.v1.Namespace("nginx-demo", {});
     7  const app = new kubernetes.apps.v1.Deployment("app", {
     8      metadata: {
     9          namespace: nginxDemo.metadata.apply(metadata => metadata?.name),
    10      },
    11      spec: {
    12          selector: {
    13              matchLabels: {
    14                  "app.kubernetes.io/name": "nginx-demo",
    15              },
    16          },
    17          replicas: 1,
    18          template: {
    19              metadata: {
    20                  labels: {
    21                      "app.kubernetes.io/name": "nginx-demo",
    22                  },
    23              },
    24              spec: {
    25                  containers: [{
    26                      name: "app",
    27                      image: "nginx:1.15-alpine",
    28                  }],
    29              },
    30          },
    31      },
    32  });
    33  const service = new kubernetes.core.v1.Service("service", {
    34      metadata: {
    35          namespace: nginxDemo.metadata.apply(metadata => metadata?.name),
    36          labels: {
    37              "app.kubernetes.io/name": "nginx-demo",
    38          },
    39      },
    40      spec: {
    41          type: "ClusterIP",
    42          ports: [{
    43              port: 80,
    44              targetPort: 80,
    45              protocol: "TCP",
    46          }],
    47          selector: {
    48              "app.kubernetes.io/name": "nginx-demo",
    49          },
    50      },
    51  });
    52  const ingress = new kubernetes.networking.v1.Ingress("ingress", {
    53      metadata: {
    54          namespace: nginxDemo.metadata.apply(metadata => metadata?.name),
    55      },
    56      spec: {
    57          rules: [{
    58              host: hostname,
    59              http: {
    60                  paths: [{
    61                      path: "/",
    62                      pathType: "Prefix",
    63                      backend: {
    64                          service: {
    65                              name: service.metadata.apply(metadata => metadata?.name),
    66                              port: {
    67                                  number: 80,
    68                              },
    69                          },
    70                      },
    71                  }],
    72              },
    73          }],
    74      },
    75  });