// Code generated by lingon. EDIT AS MUCH AS YOU LIKE.

package tekton

import (
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/api/resource"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/util/intstr"
)

var PipelinesControllerDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "controller",
			"app.kubernetes.io/instance":  "default",
			"app.kubernetes.io/name":      "controller",
			"app.kubernetes.io/part-of":   "tekton-pipelines",
			"app.kubernetes.io/version":   "v0.45.0",
			"pipeline.tekton.dev/release": "v0.45.0",
			"version":                     "v0.45.0",
		},
		Name:      "tekton-pipelines-controller",
		Namespace: "tekton-pipelines",
	},
	Spec: appsv1.DeploymentSpec{
		Replicas: P(int32(1)),
		Selector: &metav1.LabelSelector{
			MatchLabels: map[string]string{
				"app.kubernetes.io/component": "controller",
				"app.kubernetes.io/instance":  "default",
				"app.kubernetes.io/name":      "controller",
				"app.kubernetes.io/part-of":   "tekton-pipelines",
			},
		},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{
				Labels: map[string]string{
					"app":                         "tekton-pipelines-controller",
					"app.kubernetes.io/component": "controller",
					"app.kubernetes.io/instance":  "default",
					"app.kubernetes.io/name":      "controller",
					"app.kubernetes.io/part-of":   "tekton-pipelines",
					"app.kubernetes.io/version":   "v0.45.0",
					"pipeline.tekton.dev/release": "v0.45.0",
					"version":                     "v0.45.0",
				},
			},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{
					NodeAffinity: &corev1.NodeAffinity{
						RequiredDuringSchedulingIgnoredDuringExecution: &corev1.NodeSelector{
							NodeSelectorTerms: []corev1.NodeSelectorTerm{
								{
									MatchExpressions: []corev1.NodeSelectorRequirement{
										{
											Key:      "kubernetes.io/os",
											Operator: corev1.NodeSelectorOperator("NotIn"),
											Values:   []string{"windows"},
										},
									},
								},
							},
						},
					},
				},
				Containers: []corev1.Container{
					{
						Args: []string{
							"-git-image",
							"gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.45.0@sha256:8ab0f58d8381b0b71f5b2bae1f63522989d739e3154d8cab1bacfa0ef5317214",
							"-entrypoint-image",
							"gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.45.0@sha256:9e1ed138383b2266a7916cd3a501fb50335da36d4fd72fd0a4de2aac142cf4b4",
							"-nop-image",
							"gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.45.0@sha256:3314b1f7222c41ab6e191bb4d4e13b519cc1c2f71f66e29ce86d9eaf611808f0",
							"-sidecarlogresults-image",
							"gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/sidecarlogresults:v0.45.0@sha256:3e2d834c4820f06c44a79362d17b847bb0f108a385a932e5f5fdb32160b38b3a",
							"-imagedigest-exporter-image",
							"gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/imagedigestexporter:v0.45.0@sha256:80d09ba9f2aa293a0d4b93ff44a56d6cbeb7669cf4108b63d8a3a94c0b446509",
							"-workingdirinit-image",
							"gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/workingdirinit:v0.45.0@sha256:52fe1b196c2f473cde962745768787ad48b9fd15544a5d2c69bd40c2ade0a461",
							"-gsutil-image",
							"gcr.io/google.com/cloudsdktool/cloud-sdk@sha256:27b2c22bf259d9bc1a291e99c63791ba0c27a04d2db0a43241ba0f1f20f4067f",
							"-shell-image",
							"cgr.dev/chainguard/busybox@sha256:19f02276bf8dbdd62f069b922f10c65262cc34b710eea26ff928129a736be791",
							"-shell-image-win",
							"mcr.microsoft.com/powershell:nanoserver@sha256:b6d5ff841b78bdf2dfed7550000fd4f3437385b8fa686ec0f010be24777654d6",
						},
						Env: []corev1.EnvVar{
							{
								Name:      "SYSTEM_NAMESPACE",
								ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{FieldPath: "metadata.namespace"}},
							}, {
								Name:  "CONFIG_DEFAULTS_NAME",
								Value: "config-defaults",
							}, {
								Name:  "CONFIG_LOGGING_NAME",
								Value: "config-logging",
							}, {
								Name:  "CONFIG_OBSERVABILITY_NAME",
								Value: "config-observability",
							}, {
								Name:  "CONFIG_ARTIFACT_BUCKET_NAME",
								Value: "config-artifact-bucket",
							}, {
								Name:  "CONFIG_ARTIFACT_PVC_NAME",
								Value: "config-artifact-pvc",
							}, {
								Name:  "CONFIG_FEATURE_FLAGS_NAME",
								Value: "feature-flags",
							}, {
								Name:  "CONFIG_LEADERELECTION_NAME",
								Value: "config-leader-election",
							}, {
								Name:  "CONFIG_SPIRE",
								Value: "config-spire",
							}, {
								Name:  "CONFIG_TRUSTED_RESOURCES_NAME",
								Value: "config-trusted-resources",
							}, {
								Name:  "SSL_CERT_FILE",
								Value: "/etc/config-registry-cert/cert",
							}, {
								Name:  "SSL_CERT_DIR",
								Value: "/etc/ssl/certs",
							}, {
								Name:  "METRICS_DOMAIN",
								Value: "tekton.dev/pipeline",
							},
						},
						Image: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.45.0@sha256:8a302dab54484bbb83d46ff9455b077ea51c1c189641dcda12575f8301bfb257",
						LivenessProbe: &corev1.Probe{
							InitialDelaySeconds: int32(5),
							PeriodSeconds:       int32(10),
							ProbeHandler: corev1.ProbeHandler{
								HTTPGet: &corev1.HTTPGetAction{
									Path: "/health",
									Port: intstr.IntOrString{
										StrVal: "probes",
										Type:   intstr.Type(int64(1)),
									},
									Scheme: corev1.URIScheme("HTTP"),
								},
							},
							TimeoutSeconds: int32(5),
						},
						Name: "tekton-pipelines-controller",
						Ports: []corev1.ContainerPort{
							{
								ContainerPort: int32(9090),
								Name:          "metrics",
							}, {
								ContainerPort: int32(8008),
								Name:          "profiling",
							}, {
								ContainerPort: int32(8080),
								Name:          "probes",
							},
						},
						ReadinessProbe: &corev1.Probe{
							InitialDelaySeconds: int32(5),
							PeriodSeconds:       int32(10),
							ProbeHandler: corev1.ProbeHandler{
								HTTPGet: &corev1.HTTPGetAction{
									Path: "/readiness",
									Port: intstr.IntOrString{
										StrVal: "probes",
										Type:   intstr.Type(int64(1)),
									},
									Scheme: corev1.URIScheme("HTTP"),
								},
							},
							TimeoutSeconds: int32(5),
						},
						SecurityContext: &corev1.SecurityContext{
							Capabilities:   &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
							RunAsGroup:     P(int64(65532)),
							RunAsNonRoot:   P(true),
							RunAsUser:      P(int64(65532)),
							SeccompProfile: &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
						},
						VolumeMounts: []corev1.VolumeMount{
							{
								MountPath: "/etc/config-logging",
								Name:      "config-logging",
							}, {
								MountPath: "/etc/config-registry-cert",
								Name:      "config-registry-cert",
							}, {
								MountPath: "/etc/verification-secrets",
								Name:      "verification-secrets",
								ReadOnly:  true,
							},
						},
					},
				},
				ServiceAccountName: "tekton-pipelines-controller",
				Volumes: []corev1.Volume{
					{
						Name:         "config-logging",
						VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "config-logging"}}},
					}, {
						Name:         "config-registry-cert",
						VolumeSource: corev1.VolumeSource{ConfigMap: &corev1.ConfigMapVolumeSource{LocalObjectReference: corev1.LocalObjectReference{Name: "config-registry-cert"}}},
					}, {
						Name: "verification-secrets",
						VolumeSource: corev1.VolumeSource{
							Secret: &corev1.SecretVolumeSource{
								Optional:   P(true),
								SecretName: "verification-secrets",
							},
						},
					},
				},
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var PipelinesRemoteResolversDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "resolvers",
			"app.kubernetes.io/instance":  "default",
			"app.kubernetes.io/name":      "resolvers",
			"app.kubernetes.io/part-of":   "tekton-pipelines",
			"app.kubernetes.io/version":   "v0.45.0",
			"pipeline.tekton.dev/release": "v0.45.0",
			"version":                     "v0.45.0",
		},
		Name:      "tekton-pipelines-remote-resolvers",
		Namespace: "tekton-pipelines-resolvers",
	},
	Spec: appsv1.DeploymentSpec{
		Replicas: P(int32(1)),
		Selector: &metav1.LabelSelector{
			MatchLabels: map[string]string{
				"app.kubernetes.io/component": "resolvers",
				"app.kubernetes.io/instance":  "default",
				"app.kubernetes.io/name":      "resolvers",
				"app.kubernetes.io/part-of":   "tekton-pipelines",
			},
		},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{
				Labels: map[string]string{
					"app":                         "tekton-pipelines-resolvers",
					"app.kubernetes.io/component": "resolvers",
					"app.kubernetes.io/instance":  "default",
					"app.kubernetes.io/name":      "resolvers",
					"app.kubernetes.io/part-of":   "tekton-pipelines",
					"app.kubernetes.io/version":   "v0.45.0",
					"pipeline.tekton.dev/release": "v0.45.0",
					"version":                     "v0.45.0",
				},
			},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{
					PodAntiAffinity: &corev1.PodAntiAffinity{
						PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{
							{
								PodAffinityTerm: corev1.PodAffinityTerm{
									LabelSelector: &metav1.LabelSelector{
										MatchLabels: map[string]string{
											"app.kubernetes.io/component": "resolvers",
											"app.kubernetes.io/instance":  "default",
											"app.kubernetes.io/name":      "resolvers",
											"app.kubernetes.io/part-of":   "tekton-pipelines",
										},
									},
									TopologyKey: "kubernetes.io/hostname",
								},
								Weight: int32(100),
							},
						},
					},
				},
				Containers: []corev1.Container{
					{
						Env: []corev1.EnvVar{
							{
								Name:      "SYSTEM_NAMESPACE",
								ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{FieldPath: "metadata.namespace"}},
							}, {
								Name:  "CONFIG_LOGGING_NAME",
								Value: "config-logging",
							}, {
								Name:  "CONFIG_OBSERVABILITY_NAME",
								Value: "config-observability",
							}, {
								Name:  "CONFIG_FEATURE_FLAGS_NAME",
								Value: "feature-flags",
							}, {
								Name:  "CONFIG_LEADERELECTION_NAME",
								Value: "config-leader-election",
							}, {
								Name:  "METRICS_DOMAIN",
								Value: "tekton.dev/resolution",
							}, {
								Name:  "ARTIFACT_HUB_API",
								Value: "https://artifacthub.io/",
							},
						},
						Image: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/resolvers:v0.45.0@sha256:5bd5240ccd89e0b81796aa8b8bbb4feb2162e63dda1cb0a95e315c9fadeb7ec8",
						Name:  "controller",
						Ports: []corev1.ContainerPort{
							{
								ContainerPort: int32(9090),
								Name:          "metrics",
							},
						},
						Resources: corev1.ResourceRequirements{
							Limits: map[corev1.ResourceName]resource.Quantity{
								corev1.ResourceName("cpu"):    resource.MustParse("1"),
								corev1.ResourceName("memory"): resource.MustParse("4Gi"),
							},
							Requests: map[corev1.ResourceName]resource.Quantity{
								corev1.ResourceName("cpu"):    resource.MustParse("100m"),
								corev1.ResourceName("memory"): resource.MustParse("100Mi"),
							},
						},
						SecurityContext: &corev1.SecurityContext{
							Capabilities:           &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
							ReadOnlyRootFilesystem: P(true),
							RunAsNonRoot:           P(true),
							SeccompProfile:         &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
						},
					},
				},
				ServiceAccountName: "tekton-pipelines-resolvers",
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}

var PipelinesWebhookDeploy = &appsv1.Deployment{
	ObjectMeta: metav1.ObjectMeta{
		Labels: map[string]string{
			"app.kubernetes.io/component": "webhook",
			"app.kubernetes.io/instance":  "default",
			"app.kubernetes.io/name":      "webhook",
			"app.kubernetes.io/part-of":   "tekton-pipelines",
			"app.kubernetes.io/version":   "v0.45.0",
			"pipeline.tekton.dev/release": "v0.45.0",
			"version":                     "v0.45.0",
		},
		Name:      "tekton-pipelines-webhook",
		Namespace: "tekton-pipelines",
	},
	Spec: appsv1.DeploymentSpec{
		Selector: &metav1.LabelSelector{
			MatchLabels: map[string]string{
				"app.kubernetes.io/component": "webhook",
				"app.kubernetes.io/instance":  "default",
				"app.kubernetes.io/name":      "webhook",
				"app.kubernetes.io/part-of":   "tekton-pipelines",
			},
		},
		Template: corev1.PodTemplateSpec{
			ObjectMeta: metav1.ObjectMeta{
				Labels: map[string]string{
					"app":                         "tekton-pipelines-webhook",
					"app.kubernetes.io/component": "webhook",
					"app.kubernetes.io/instance":  "default",
					"app.kubernetes.io/name":      "webhook",
					"app.kubernetes.io/part-of":   "tekton-pipelines",
					"app.kubernetes.io/version":   "v0.45.0",
					"pipeline.tekton.dev/release": "v0.45.0",
					"version":                     "v0.45.0",
				},
			},
			Spec: corev1.PodSpec{
				Affinity: &corev1.Affinity{
					NodeAffinity: &corev1.NodeAffinity{
						RequiredDuringSchedulingIgnoredDuringExecution: &corev1.NodeSelector{
							NodeSelectorTerms: []corev1.NodeSelectorTerm{
								{
									MatchExpressions: []corev1.NodeSelectorRequirement{
										{
											Key:      "kubernetes.io/os",
											Operator: corev1.NodeSelectorOperator("NotIn"),
											Values:   []string{"windows"},
										},
									},
								},
							},
						},
					},
					PodAntiAffinity: &corev1.PodAntiAffinity{
						PreferredDuringSchedulingIgnoredDuringExecution: []corev1.WeightedPodAffinityTerm{
							{
								PodAffinityTerm: corev1.PodAffinityTerm{
									LabelSelector: &metav1.LabelSelector{
										MatchLabels: map[string]string{
											"app.kubernetes.io/component": "webhook",
											"app.kubernetes.io/instance":  "default",
											"app.kubernetes.io/name":      "webhook",
											"app.kubernetes.io/part-of":   "tekton-pipelines",
										},
									},
									TopologyKey: "kubernetes.io/hostname",
								},
								Weight: int32(100),
							},
						},
					},
				},
				Containers: []corev1.Container{
					{
						Env: []corev1.EnvVar{
							{
								Name:      "SYSTEM_NAMESPACE",
								ValueFrom: &corev1.EnvVarSource{FieldRef: &corev1.ObjectFieldSelector{FieldPath: "metadata.namespace"}},
							}, {
								Name:  "CONFIG_LOGGING_NAME",
								Value: "config-logging",
							}, {
								Name:  "CONFIG_OBSERVABILITY_NAME",
								Value: "config-observability",
							}, {
								Name:  "CONFIG_LEADERELECTION_NAME",
								Value: "config-leader-election",
							}, {
								Name:  "CONFIG_FEATURE_FLAGS_NAME",
								Value: "feature-flags",
							}, {
								Name:  "WEBHOOK_PORT",
								Value: "8443",
							}, {
								Name:  "WEBHOOK_ADMISSION_CONTROLLER_NAME",
								Value: "webhook.pipeline.tekton.dev",
							}, {
								Name:  "WEBHOOK_SERVICE_NAME",
								Value: "tekton-pipelines-webhook",
							}, {
								Name:  "WEBHOOK_SECRET_NAME",
								Value: "webhook-certs",
							}, {
								Name:  "METRICS_DOMAIN",
								Value: "tekton.dev/pipeline",
							},
						},
						Image: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.45.0@sha256:07390c988b1c651c4810e9f7b15a88dfce8030845a429cf19b762a0d50e18ca7",
						LivenessProbe: &corev1.Probe{
							InitialDelaySeconds: int32(5),
							PeriodSeconds:       int32(10),
							ProbeHandler: corev1.ProbeHandler{
								HTTPGet: &corev1.HTTPGetAction{
									Path: "/health",
									Port: intstr.IntOrString{
										StrVal: "probes",
										Type:   intstr.Type(int64(1)),
									},
									Scheme: corev1.URIScheme("HTTP"),
								},
							},
							TimeoutSeconds: int32(5),
						},
						Name: "webhook",
						Ports: []corev1.ContainerPort{
							{
								ContainerPort: int32(9090),
								Name:          "metrics",
							}, {
								ContainerPort: int32(8008),
								Name:          "profiling",
							}, {
								ContainerPort: int32(8443),
								Name:          "https-webhook",
							}, {
								ContainerPort: int32(8080),
								Name:          "probes",
							},
						},
						ReadinessProbe: &corev1.Probe{
							InitialDelaySeconds: int32(5),
							PeriodSeconds:       int32(10),
							ProbeHandler: corev1.ProbeHandler{
								HTTPGet: &corev1.HTTPGetAction{
									Path: "/readiness",
									Port: intstr.IntOrString{
										StrVal: "probes",
										Type:   intstr.Type(int64(1)),
									},
									Scheme: corev1.URIScheme("HTTP"),
								},
							},
							TimeoutSeconds: int32(5),
						},
						Resources: corev1.ResourceRequirements{
							Limits: map[corev1.ResourceName]resource.Quantity{
								corev1.ResourceName("cpu"):    resource.MustParse("500m"),
								corev1.ResourceName("memory"): resource.MustParse("500Mi"),
							},
							Requests: map[corev1.ResourceName]resource.Quantity{
								corev1.ResourceName("cpu"):    resource.MustParse("100m"),
								corev1.ResourceName("memory"): resource.MustParse("100Mi"),
							},
						},
						SecurityContext: &corev1.SecurityContext{
							Capabilities:   &corev1.Capabilities{Drop: []corev1.Capability{corev1.Capability("ALL")}},
							RunAsGroup:     P(int64(65532)),
							RunAsNonRoot:   P(true),
							RunAsUser:      P(int64(65532)),
							SeccompProfile: &corev1.SeccompProfile{Type: corev1.SeccompProfileType("RuntimeDefault")},
						},
					},
				},
				ServiceAccountName: "tekton-pipelines-webhook",
			},
		},
	},
	TypeMeta: metav1.TypeMeta{
		APIVersion: "apps/v1",
		Kind:       "Deployment",
	},
}
