---
# Source: opentelemetry-operator/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
automountServiceAccountToken: true
metadata:
  name: opentelemetry-operator
  namespace: default
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
---
# Source: opentelemetry-operator/templates/clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator-manager
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
      - persistentvolumeclaims
      - persistentvolumes
      - pods
      - serviceaccounts
      - services
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - ""
    resources:
      - events
    verbs:
      - create
      - get
      - list
      - patch
      - watch
  - apiGroups:
      - ""
    resources:
      - namespaces
    verbs:
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - namespaces/status
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - nodes/spec
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - pods/status
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - replicationcontrollers
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - replicationcontrollers/status
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - resourcequotas
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - apps
    resources:
      - daemonsets
      - deployments
      - statefulsets
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - apps
      - extensions
    resources:
      - replicasets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
    resources:
      - daemonsets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
    resources:
      - deployments
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - autoscaling
    resources:
      - horizontalpodautoscalers
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - batch
    resources:
      - jobs
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - batch
    resources:
      - cronjobs
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - nodes/proxy
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - nodes/stats
    verbs:
      - get
  - apiGroups:
      - config.openshift.io
    resources:
      - infrastructures
      - infrastructures/status
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - coordination.k8s.io
    resources:
      - leases
    verbs:
      - create
      - get
      - list
      - update
  - apiGroups:
      - discovery.k8s.io
    resources:
      - endpointslices
    verbs:
      - get
      - list
  - apiGroups:
      - events.k8s.io
    resources:
      - events
    verbs:
      - create
      - list
      - patch
      - watch
  - apiGroups:
      - gateway.networking.k8s.io
    resources:
      - httproutes
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - podmonitors
      - servicemonitors
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - networking.k8s.io
    resources:
      - ingresses
      - networkpolicies
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - instrumentations
    verbs:
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - opampbridges
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - opampbridges/finalizers
    verbs:
      - update
  - apiGroups:
      - opentelemetry.io
    resources:
      - opampbridges/status
    verbs:
      - get
      - patch
      - update
  - apiGroups:
      - opentelemetry.io
    resources:
      - opentelemetrycollectors
    verbs:
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - opentelemetrycollectors/finalizers
    verbs:
      - get
      - patch
      - update
  - apiGroups:
      - opentelemetry.io
    resources:
      - opentelemetrycollectors/status
    verbs:
      - get
      - patch
      - update
  - apiGroups:
      - policy
    resources:
      - poddisruptionbudgets
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - route.openshift.io
    resources:
      - routes
      - routes/custom-host
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
    - opentelemetry.io
    resources:
      - targetallocators
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
    - opentelemetry.io
    resources:
    - targetallocators/status
    verbs:
    - get
    - patch
    - update
  - apiGroups:
    - opentelemetry.io
    resources:
    - targetallocators/finalizers
    verbs:
    - get
    - patch
    - update
  - apiGroups:
      - cert-manager.io
    resources:
      - issuers
      - certificaterequests
      - certificates
    verbs:
      - create
      - get
      - list
      - watch
      - update
      - patch
      - delete
  - apiGroups:
      - authentication.k8s.io
    resources:
      - tokenreviews
    verbs:
      - create
  - apiGroups:
      - authorization.k8s.io
    resources:
      - subjectaccessreviews
    verbs:
      - create
---
# Source: opentelemetry-operator/templates/clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator-metrics
rules:
  - nonResourceURLs:
      - /metrics
    verbs:
      - get
---
# Source: opentelemetry-operator/templates/clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator-manager
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: opentelemetry-operator-manager
subjects:
  - kind: ServiceAccount
    name: opentelemetry-operator
    namespace: default
---
# Source: opentelemetry-operator/templates/role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator-leader-election
  namespace: default
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
      - pods
      - serviceaccounts
      - services
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - ""
    resources:
      - events
    verbs:
      - create
      - patch
  - apiGroups:
      - ""
    resources:
      - namespaces
      - secrets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - apps
    resources:
      - daemonsets
      - deployments
      - statefulsets
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - apps
    resources:
      - replicasets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - autoscaling
    resources:
      - horizontalpodautoscalers
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - batch
    resources:
      - jobs
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - config.openshift.io
    resources:
      - infrastructures
      - infrastructures/status
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - coordination.k8s.io
    resources:
      - leases
    verbs:
      - create
      - get
      - list
      - update
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - podmonitors
      - servicemonitors
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - networking.k8s.io
    resources:
      - ingresses
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - instrumentations
      - opentelemetrycollectors
    verbs:
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - opampbridges
      - targetallocators
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - opentelemetry.io
    resources:
      - opampbridges/finalizers
    verbs:
      - update
  - apiGroups:
      - opentelemetry.io
    resources:
      - opampbridges/status
      - opentelemetrycollectors/finalizers
      - opentelemetrycollectors/status
      - targetallocators/status
      - targetallocators/finalizers
    verbs:
      - get
      - patch
      - update
  - apiGroups:
      - policy
    resources:
      - poddisruptionbudgets
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
  - apiGroups:
      - route.openshift.io
    resources:
      - routes
      - routes/custom-host
    verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
---
# Source: opentelemetry-operator/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator-leader-election
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: opentelemetry-operator-leader-election
subjects:
  - kind: ServiceAccount
    name: opentelemetry-operator
    namespace: default
---
# Source: opentelemetry-operator/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator
  namespace: default
spec:
  ports:
    - name: metrics
      port: 8443
      protocol: TCP
      targetPort: metrics
  selector:
      app.kubernetes.io/name: opentelemetry-operator
      app.kubernetes.io/component: controller-manager
---
# Source: opentelemetry-operator/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator-webhook
  namespace: default
spec:
  ports:
    - port: 443
      protocol: TCP
      targetPort: webhook-server
  selector:
      app.kubernetes.io/name: opentelemetry-operator
      app.kubernetes.io/component: controller-manager
---
# Source: opentelemetry-operator/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: controller-manager
  name: opentelemetry-operator
  namespace: default
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: opentelemetry-operator
      app.kubernetes.io/component: controller-manager
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: manager
      labels:
        helm.sh/chart: opentelemetry-operator-0.114.0
        app.kubernetes.io/name: opentelemetry-operator
        app.kubernetes.io/version: "0.152.0"
        app.kubernetes.io/managed-by: Helm
        app.kubernetes.io/part-of: opentelemetry-operator
        app.kubernetes.io/instance: opentelemetry-operator
        app.kubernetes.io/component: controller-manager
    spec:
      automountServiceAccountToken: true
      hostNetwork: false
      containers:
        - args:
            - --metrics-addr=0.0.0.0:8443
            - --metrics-secure=true
            - --enable-leader-election
            - --health-probe-addr=:8081
            - --webhook-port=9443
            - --collector-image=ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.152.1
          command:
            - /manager
          env:
            - name: SERVICE_ACCOUNT_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.serviceAccountName
            - name: ENABLE_WEBHOOKS
              value: "true"
          image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.152.0"
          name: manager
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8443
              name: metrics
              protocol: TCP
            - containerPort: 9443
              name: webhook-server
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8081
            initialDelaySeconds: 15
            periodSeconds: 20
          readinessProbe:
            httpGet:
              path: /readyz
              port: 8081
            initialDelaySeconds: 5
            periodSeconds: 10
          resources:
            {}
          volumeMounts:
            - mountPath: /tmp/k8s-webhook-server/serving-certs
              name: cert
              readOnly: true
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            runAsNonRoot: true
            seccompProfile:
              type: RuntimeDefault
      nodeSelector:
        kubernetes.io/os: linux
      serviceAccountName: opentelemetry-operator
      terminationGracePeriodSeconds: 10
      volumes:
        - name: cert
          secret:
            defaultMode: 420
            secretName: opentelemetry-operator-controller-manager-service-cert
      securityContext:
        fsGroup: 65532
        runAsGroup: 65532
        runAsNonRoot: true
        runAsUser: 65532
---
# Source: opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: default/opentelemetry-operator-serving-cert
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: webhook
  name: opentelemetry-operator-mutation
webhooks:
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /mutate-opentelemetry-io-v1alpha1-instrumentation
        port: 443
    failurePolicy: Fail
    name: minstrumentation.kb.io
    rules:
    - apiGroups:
        - opentelemetry.io
      apiVersions:
        - v1alpha1
      operations:
        - CREATE
        - UPDATE
      resources:
        - instrumentations
      scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
        port: 443
    failurePolicy: Fail
    name: mopentelemetrycollectorbeta.kb.io
    rules:
      - apiGroups:
          - opentelemetry.io
        apiVersions:
          - v1beta1
        operations:
          - CREATE
          - UPDATE
        resources:
          - opentelemetrycollectors
        scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /mutate-v1-pod
        port: 443
    failurePolicy: Ignore
    name: mpod.kb.io
    rules:
      - apiGroups:
          - ""
        apiVersions:
          - v1
        operations:
          - CREATE
        resources:
          - pods
        scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
---
# Source: opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: default/opentelemetry-operator-serving-cert
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: webhook
  name: opentelemetry-operator-validation
webhooks:
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /validate-opentelemetry-io-v1alpha1-instrumentation
        port: 443
    failurePolicy: Fail
    name: vinstrumentationcreateupdate.kb.io
    rules:
    - apiGroups:
        - opentelemetry.io
      apiVersions:
        - v1alpha1
      operations:
        - CREATE
        - UPDATE
      resources:
        - instrumentations
      scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /validate-opentelemetry-io-v1alpha1-instrumentation
        port: 443
    failurePolicy: Ignore
    name: vinstrumentationdelete.kb.io
    rules:
      - apiGroups:
          - opentelemetry.io
        apiVersions:
          - v1alpha1
        operations:
          - DELETE
        resources:
          - instrumentations
        scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
        port: 443
    failurePolicy: Fail
    name: vopentelemetrycollectorcreateupdatebeta.kb.io
    rules:
      - apiGroups:
          - opentelemetry.io
        apiVersions:
          - v1beta1
        operations:
          - CREATE
          - UPDATE
        resources:
          - opentelemetrycollectors
        scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
  - admissionReviewVersions:
      - v1
    clientConfig:
      service:
        name: opentelemetry-operator-webhook
        namespace: default
        path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
        port: 443
    failurePolicy: Ignore
    name: vopentelemetrycollectordeletebeta.kb.io
    rules:
      - apiGroups:
          - opentelemetry.io
        apiVersions:
          - v1beta1
        operations:
          - DELETE
        resources:
          - opentelemetrycollectors
        scope: Namespaced
    sideEffects: None
    timeoutSeconds: 10
---
# Source: opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
---
---
# Source: opentelemetry-operator/templates/certmanager.yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: webhook
  name: opentelemetry-operator-serving-cert
  namespace: default
spec:
  dnsNames:
    - opentelemetry-operator-webhook.default.svc
    - opentelemetry-operator-webhook.default.svc.cluster.local
  issuerRef:
    kind: Issuer
    name: opentelemetry-operator-selfsigned-issuer
  secretName: opentelemetry-operator-controller-manager-service-cert
  subject:
    organizationalUnits:
      - opentelemetry-operator
---
# Source: opentelemetry-operator/templates/certmanager.yaml
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  labels:
    helm.sh/chart: opentelemetry-operator-0.114.0
    app.kubernetes.io/name: opentelemetry-operator
    app.kubernetes.io/version: "0.152.0"
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: opentelemetry-operator
    app.kubernetes.io/instance: opentelemetry-operator
    app.kubernetes.io/component: webhook
  name: opentelemetry-operator-selfsigned-issuer
  namespace: default
spec:
  selfSigned: {}
