github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/kubernetes-operator-pp/go/kubernetes-operator.go (about) 1 package main 2 3 import ( 4 appsv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/apps/v1" 5 corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1" 6 metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/meta/v1" 7 rbacv1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/rbac/v1" 8 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 9 ) 10 11 func main() { 12 pulumi.Run(func(ctx *pulumi.Context) error { 13 _, err := appsv1.NewDeployment(ctx, "pulumi_kubernetes_operatorDeployment", &appsv1.DeploymentArgs{ 14 ApiVersion: pulumi.String("apps/v1"), 15 Kind: pulumi.String("Deployment"), 16 Metadata: &metav1.ObjectMetaArgs{ 17 Name: pulumi.String("pulumi-kubernetes-operator"), 18 }, 19 Spec: &appsv1.DeploymentSpecArgs{ 20 Replicas: pulumi.Int(1), 21 Selector: &metav1.LabelSelectorArgs{ 22 MatchLabels: pulumi.StringMap{ 23 "name": pulumi.String("pulumi-kubernetes-operator"), 24 }, 25 }, 26 Template: &corev1.PodTemplateSpecArgs{ 27 Metadata: &metav1.ObjectMetaArgs{ 28 Labels: pulumi.StringMap{ 29 "name": pulumi.String("pulumi-kubernetes-operator"), 30 }, 31 }, 32 Spec: &corev1.PodSpecArgs{ 33 ServiceAccountName: pulumi.String("pulumi-kubernetes-operator"), 34 ImagePullSecrets: corev1.LocalObjectReferenceArray{ 35 &corev1.LocalObjectReferenceArgs{ 36 Name: pulumi.String("pulumi-kubernetes-operator"), 37 }, 38 }, 39 Containers: corev1.ContainerArray{ 40 &corev1.ContainerArgs{ 41 Name: pulumi.String("pulumi-kubernetes-operator"), 42 Image: pulumi.String("pulumi/pulumi-kubernetes-operator:v0.0.2"), 43 Command: pulumi.StringArray{ 44 pulumi.String("pulumi-kubernetes-operator"), 45 }, 46 Args: pulumi.StringArray{ 47 pulumi.String("--zap-level=debug"), 48 }, 49 ImagePullPolicy: pulumi.String("Always"), 50 Env: corev1.EnvVarArray{ 51 &corev1.EnvVarArgs{ 52 Name: pulumi.String("WATCH_NAMESPACE"), 53 ValueFrom: &corev1.EnvVarSourceArgs{ 54 FieldRef: &corev1.ObjectFieldSelectorArgs{ 55 FieldPath: pulumi.String("metadata.namespace"), 56 }, 57 }, 58 }, 59 &corev1.EnvVarArgs{ 60 Name: pulumi.String("POD_NAME"), 61 ValueFrom: &corev1.EnvVarSourceArgs{ 62 FieldRef: &corev1.ObjectFieldSelectorArgs{ 63 FieldPath: pulumi.String("metadata.name"), 64 }, 65 }, 66 }, 67 &corev1.EnvVarArgs{ 68 Name: pulumi.String("OPERATOR_NAME"), 69 Value: pulumi.String("pulumi-kubernetes-operator"), 70 }, 71 }, 72 }, 73 }, 74 }, 75 }, 76 }, 77 }) 78 if err != nil { 79 return err 80 } 81 _, err = rbacv1.NewRole(ctx, "pulumi_kubernetes_operatorRole", &rbacv1.RoleArgs{ 82 ApiVersion: pulumi.String("rbac.authorization.k8s.io/v1"), 83 Kind: pulumi.String("Role"), 84 Metadata: &metav1.ObjectMetaArgs{ 85 CreationTimestamp: nil, 86 Name: pulumi.String("pulumi-kubernetes-operator"), 87 }, 88 Rules: rbacv1.PolicyRuleArray{ 89 &rbacv1.PolicyRuleArgs{ 90 ApiGroups: pulumi.StringArray{ 91 pulumi.String(""), 92 }, 93 Resources: pulumi.StringArray{ 94 pulumi.String("pods"), 95 pulumi.String("services"), 96 pulumi.String("services/finalizers"), 97 pulumi.String("endpoints"), 98 pulumi.String("persistentvolumeclaims"), 99 pulumi.String("events"), 100 pulumi.String("configmaps"), 101 pulumi.String("secrets"), 102 }, 103 Verbs: pulumi.StringArray{ 104 pulumi.String("create"), 105 pulumi.String("delete"), 106 pulumi.String("get"), 107 pulumi.String("list"), 108 pulumi.String("patch"), 109 pulumi.String("update"), 110 pulumi.String("watch"), 111 }, 112 }, 113 &rbacv1.PolicyRuleArgs{ 114 ApiGroups: pulumi.StringArray{ 115 pulumi.String("apps"), 116 }, 117 Resources: pulumi.StringArray{ 118 pulumi.String("deployments"), 119 pulumi.String("daemonsets"), 120 pulumi.String("replicasets"), 121 pulumi.String("statefulsets"), 122 }, 123 Verbs: pulumi.StringArray{ 124 pulumi.String("create"), 125 pulumi.String("delete"), 126 pulumi.String("get"), 127 pulumi.String("list"), 128 pulumi.String("patch"), 129 pulumi.String("update"), 130 pulumi.String("watch"), 131 }, 132 }, 133 &rbacv1.PolicyRuleArgs{ 134 ApiGroups: pulumi.StringArray{ 135 pulumi.String("monitoring.coreos.com"), 136 }, 137 Resources: pulumi.StringArray{ 138 pulumi.String("servicemonitors"), 139 }, 140 Verbs: pulumi.StringArray{ 141 pulumi.String("get"), 142 pulumi.String("create"), 143 }, 144 }, 145 &rbacv1.PolicyRuleArgs{ 146 ApiGroups: pulumi.StringArray{ 147 pulumi.String("apps"), 148 }, 149 ResourceNames: pulumi.StringArray{ 150 pulumi.String("pulumi-kubernetes-operator"), 151 }, 152 Resources: pulumi.StringArray{ 153 pulumi.String("deployments/finalizers"), 154 }, 155 Verbs: pulumi.StringArray{ 156 pulumi.String("update"), 157 }, 158 }, 159 &rbacv1.PolicyRuleArgs{ 160 ApiGroups: pulumi.StringArray{ 161 pulumi.String(""), 162 }, 163 Resources: pulumi.StringArray{ 164 pulumi.String("pods"), 165 }, 166 Verbs: pulumi.StringArray{ 167 pulumi.String("get"), 168 }, 169 }, 170 &rbacv1.PolicyRuleArgs{ 171 ApiGroups: pulumi.StringArray{ 172 pulumi.String("apps"), 173 }, 174 Resources: pulumi.StringArray{ 175 pulumi.String("replicasets"), 176 pulumi.String("deployments"), 177 }, 178 Verbs: pulumi.StringArray{ 179 pulumi.String("get"), 180 }, 181 }, 182 &rbacv1.PolicyRuleArgs{ 183 ApiGroups: pulumi.StringArray{ 184 pulumi.String("pulumi.com"), 185 }, 186 Resources: pulumi.StringArray{ 187 pulumi.String("*"), 188 }, 189 Verbs: pulumi.StringArray{ 190 pulumi.String("create"), 191 pulumi.String("delete"), 192 pulumi.String("get"), 193 pulumi.String("list"), 194 pulumi.String("patch"), 195 pulumi.String("update"), 196 pulumi.String("watch"), 197 }, 198 }, 199 }, 200 }) 201 if err != nil { 202 return err 203 } 204 _, err = rbacv1.NewRoleBinding(ctx, "pulumi_kubernetes_operatorRoleBinding", &rbacv1.RoleBindingArgs{ 205 Kind: pulumi.String("RoleBinding"), 206 ApiVersion: pulumi.String("rbac.authorization.k8s.io/v1"), 207 Metadata: &metav1.ObjectMetaArgs{ 208 Name: pulumi.String("pulumi-kubernetes-operator"), 209 }, 210 Subjects: rbacv1.SubjectArray{ 211 &rbacv1.SubjectArgs{ 212 Kind: pulumi.String("ServiceAccount"), 213 Name: pulumi.String("pulumi-kubernetes-operator"), 214 }, 215 }, 216 RoleRef: &rbacv1.RoleRefArgs{ 217 Kind: pulumi.String("Role"), 218 Name: pulumi.String("pulumi-kubernetes-operator"), 219 ApiGroup: pulumi.String("rbac.authorization.k8s.io"), 220 }, 221 }) 222 if err != nil { 223 return err 224 } 225 _, err = corev1.NewServiceAccount(ctx, "pulumi_kubernetes_operatorServiceAccount", &corev1.ServiceAccountArgs{ 226 ApiVersion: pulumi.String("v1"), 227 Kind: pulumi.String("ServiceAccount"), 228 Metadata: &metav1.ObjectMetaArgs{ 229 Name: pulumi.String("pulumi-kubernetes-operator"), 230 }, 231 }) 232 if err != nil { 233 return err 234 } 235 return nil 236 }) 237 }