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

     1  using System.Collections.Generic;
     2  using Pulumi;
     3  using Kubernetes = Pulumi.Kubernetes;
     4  
     5  return await Deployment.RunAsync(() => 
     6  {
     7      var config = new Config();
     8      var hostname = config.Get("hostname") ?? "example.com";
     9      var nginxDemo = new Kubernetes.Core.V1.Namespace("nginx-demo");
    10  
    11      var app = new Kubernetes.Apps.V1.Deployment("app", new()
    12      {
    13          Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
    14          {
    15              Namespace = nginxDemo.Metadata.Apply(metadata => metadata?.Name),
    16          },
    17          Spec = new Kubernetes.Types.Inputs.Apps.V1.DeploymentSpecArgs
    18          {
    19              Selector = new Kubernetes.Types.Inputs.Meta.V1.LabelSelectorArgs
    20              {
    21                  MatchLabels = 
    22                  {
    23                      { "app.kubernetes.io/name", "nginx-demo" },
    24                  },
    25              },
    26              Replicas = 1,
    27              Template = new Kubernetes.Types.Inputs.Core.V1.PodTemplateSpecArgs
    28              {
    29                  Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
    30                  {
    31                      Labels = 
    32                      {
    33                          { "app.kubernetes.io/name", "nginx-demo" },
    34                      },
    35                  },
    36                  Spec = new Kubernetes.Types.Inputs.Core.V1.PodSpecArgs
    37                  {
    38                      Containers = new[]
    39                      {
    40                          new Kubernetes.Types.Inputs.Core.V1.ContainerArgs
    41                          {
    42                              Name = "app",
    43                              Image = "nginx:1.15-alpine",
    44                          },
    45                      },
    46                  },
    47              },
    48          },
    49      });
    50  
    51      var service = new Kubernetes.Core.V1.Service("service", new()
    52      {
    53          Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
    54          {
    55              Namespace = nginxDemo.Metadata.Apply(metadata => metadata?.Name),
    56              Labels = 
    57              {
    58                  { "app.kubernetes.io/name", "nginx-demo" },
    59              },
    60          },
    61          Spec = new Kubernetes.Types.Inputs.Core.V1.ServiceSpecArgs
    62          {
    63              Type = "ClusterIP",
    64              Ports = new[]
    65              {
    66                  new Kubernetes.Types.Inputs.Core.V1.ServicePortArgs
    67                  {
    68                      Port = 80,
    69                      TargetPort = 80,
    70                      Protocol = "TCP",
    71                  },
    72              },
    73              Selector = 
    74              {
    75                  { "app.kubernetes.io/name", "nginx-demo" },
    76              },
    77          },
    78      });
    79  
    80      var ingress = new Kubernetes.Networking.V1.Ingress("ingress", new()
    81      {
    82          Metadata = new Kubernetes.Types.Inputs.Meta.V1.ObjectMetaArgs
    83          {
    84              Namespace = nginxDemo.Metadata.Apply(metadata => metadata?.Name),
    85          },
    86          Spec = new Kubernetes.Types.Inputs.Networking.V1.IngressSpecArgs
    87          {
    88              Rules = new[]
    89              {
    90                  new Kubernetes.Types.Inputs.Networking.V1.IngressRuleArgs
    91                  {
    92                      Host = hostname,
    93                      Http = new Kubernetes.Types.Inputs.Networking.V1.HTTPIngressRuleValueArgs
    94                      {
    95                          Paths = new[]
    96                          {
    97                              new Kubernetes.Types.Inputs.Networking.V1.HTTPIngressPathArgs
    98                              {
    99                                  Path = "/",
   100                                  PathType = "Prefix",
   101                                  Backend = new Kubernetes.Types.Inputs.Networking.V1.IngressBackendArgs
   102                                  {
   103                                      Service = new Kubernetes.Types.Inputs.Networking.V1.IngressServiceBackendArgs
   104                                      {
   105                                          Name = service.Metadata.Apply(metadata => metadata?.Name),
   106                                          Port = new Kubernetes.Types.Inputs.Networking.V1.ServiceBackendPortArgs
   107                                          {
   108                                              Number = 80,
   109                                          },
   110                                      },
   111                                  },
   112                              },
   113                          },
   114                      },
   115                  },
   116              },
   117          },
   118      });
   119  
   120  });
   121