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