---
# Source: linkerd-control-plane/templates/namespace.yaml
---
# Source: linkerd-control-plane/templates/identity-rbac.yaml
---
###
### Identity Controller Service RBAC
###
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linkerd-linkerd-dev-identity
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
rules:
- apiGroups: ["authentication.k8s.io"]
  resources: ["tokenreviews"]
  verbs: ["create"]
# TODO(ver) Restrict this to the Linkerd namespace. See
# https://github.com/linkerd/linkerd2/issues/9367
- apiGroups: [""]
  resources: ["events"]
  verbs: ["create", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linkerd-linkerd-dev-identity
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: linkerd-linkerd-dev-identity
subjects:
- kind: ServiceAccount
  name: linkerd-identity
  namespace: linkerd-dev
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: linkerd-identity
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
---
# Source: linkerd-control-plane/templates/destination-rbac.yaml
---
###
### Destination Controller Service
###
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linkerd-linkerd-dev-destination
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
rules:
- apiGroups: ["apps"]
  resources: ["replicasets"]
  verbs: ["list", "get", "watch"]
- apiGroups: ["batch"]
  resources: ["jobs"]
  verbs: ["list", "get", "watch"]
- apiGroups: [""]
  resources: ["pods", "endpoints", "services", "nodes"]
  verbs: ["list", "get", "watch"]
- apiGroups: ["linkerd.io"]
  resources: ["serviceprofiles"]
  verbs: ["list", "get", "watch"]
- apiGroups: ["workload.linkerd.io"]
  resources: ["externalworkloads"]
  verbs: ["list", "get", "watch"]
- apiGroups: ["coordination.k8s.io"]
  resources: ["leases"]
  verbs: ["create", "get", "update", "patch"]
- apiGroups: ["discovery.k8s.io"]
  resources: ["endpointslices"]
  verbs: ["list", "get", "watch", "create", "update", "patch", "delete"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linkerd-linkerd-dev-destination
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: linkerd-linkerd-dev-destination
subjects:
- kind: ServiceAccount
  name: linkerd-destination
  namespace: linkerd-dev
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: linkerd-destination
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: linkerd-sp-validator-webhook-config
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
webhooks:
- name: linkerd-sp-validator.linkerd.io
  namespaceSelector:
    matchExpressions:
    - key: config.linkerd.io/admission-webhooks
      operator: NotIn
      values:
      - disabled
  clientConfig:
    service:
      name: linkerd-sp-validator
      namespace: linkerd-dev
      path: "/"
    caBundle: dGVzdC1wcm9maWxlLXZhbGlkYXRvci1jYS1idW5kbGU=
  failurePolicy: Fail
  admissionReviewVersions: ["v1", "v1beta1"]
  rules:
  - operations: ["CREATE", "UPDATE"]
    apiGroups: ["linkerd.io"]
    apiVersions: ["v1alpha1", "v1alpha2"]
    resources: ["serviceprofiles"]
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: linkerd-policy-validator-webhook-config
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
webhooks:
- name: linkerd-policy-validator.linkerd.io
  namespaceSelector:
    matchExpressions:
    - key: config.linkerd.io/admission-webhooks
      operator: NotIn
      values:
      - disabled
  clientConfig:
    service:
      name: linkerd-policy-validator
      namespace: linkerd-dev
      path: "/"
    caBundle: dGVzdC1wcm9maWxlLXZhbGlkYXRvci1jYS1idW5kbGU=
  failurePolicy: Fail
  admissionReviewVersions: ["v1", "v1beta1"]
  rules:
  - operations: ["CREATE", "UPDATE"]
    apiGroups: ["policy.linkerd.io"]
    apiVersions: ["*"]
    resources:
    - authorizationpolicies
    - httplocalratelimitpolicies
    - httproutes
    - networkauthentications
    - meshtlsauthentications
    - serverauthorizations
    - servers
    - egressnetworks
  - operations: ["CREATE", "UPDATE"]
    apiGroups: ["gateway.networking.k8s.io"]
    apiVersions: ["*"]
    resources:
    - httproutes
    - grpcroutes
    - tlsroutes
    - tcproutes
  sideEffects: None
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: linkerd-policy
  labels:
    app.kubernetes.io/part-of: Linkerd
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
rules:
  - apiGroups:
      - ""
    resources:
      - pods
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - apps
    resources:
      - deployments
    verbs:
      - get
  - apiGroups:
      - policy.linkerd.io
    resources:
      - authorizationpolicies
      - httplocalratelimitpolicies
      - httproutes
      - meshtlsauthentications
      - networkauthentications
      - servers
      - serverauthorizations
      - egressnetworks
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - gateway.networking.k8s.io
    resources:
      - httproutes
      - grpcroutes
      - tlsroutes
      - tcproutes
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - policy.linkerd.io
    resources:
      - httproutes/status
      - httplocalratelimitpolicies/status
      - egressnetworks/status
    verbs:
      - patch
  - apiGroups:
      - gateway.networking.k8s.io
    resources:
      - httproutes/status
      - grpcroutes/status
      - tlsroutes/status
      - tcproutes/status
    verbs:
      - patch
  - apiGroups:
      - workload.linkerd.io
    resources:
      - externalworkloads
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - coordination.k8s.io
    resources:
      - leases
    verbs:
      - create
      - get
      - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: linkerd-destination-policy
  labels:
    app.kubernetes.io/part-of: Linkerd
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: linkerd-policy
subjects:
  - kind: ServiceAccount
    name: linkerd-destination
    namespace: linkerd-dev
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: remote-discovery
  namespace: linkerd-dev
  labels:
    app.kubernetes.io/part-of: Linkerd
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
rules:
  - apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - get
      - list
      - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: linkerd-destination-remote-discovery
  namespace: linkerd-dev
  labels:
    app.kubernetes.io/part-of: Linkerd
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: remote-discovery
subjects:
  - kind: ServiceAccount
    name: linkerd-destination
    namespace: linkerd-dev
---
# Source: linkerd-control-plane/templates/heartbeat-rbac.yaml
---
###
### Heartbeat RBAC
###
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: linkerd-heartbeat
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-ns: linkerd-dev
rules:
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["get"]
  resourceNames: ["linkerd-config"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: linkerd-heartbeat
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-ns: linkerd-dev
roleRef:
  kind: Role
  name: linkerd-heartbeat
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: linkerd-heartbeat
  namespace: linkerd-dev
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: linkerd-heartbeat
  labels:
    linkerd.io/control-plane-ns: linkerd-dev
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["list"]
- apiGroups: ["linkerd.io"]
  resources: ["serviceprofiles"]
  verbs: ["list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: linkerd-heartbeat
  labels:
    linkerd.io/control-plane-ns: linkerd-dev
roleRef:
  kind: ClusterRole
  name: linkerd-heartbeat
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: linkerd-heartbeat
  namespace: linkerd-dev
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: linkerd-heartbeat
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: heartbeat
    linkerd.io/control-plane-ns: linkerd-dev
---
# Source: linkerd-control-plane/templates/podmonitor.yaml

---
# Source: linkerd-control-plane/templates/proxy-injector-rbac.yaml
---
###
### Proxy Injector RBAC
###
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linkerd-linkerd-dev-proxy-injector
  labels:
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
rules:
- apiGroups: [""]
  resources: ["events"]
  verbs: ["create", "patch"]
- apiGroups: [""]
  resources: ["namespaces", "replicationcontrollers"]
  verbs: ["list", "get", "watch"]
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list", "watch"]
- apiGroups: ["extensions", "apps"]
  resources: ["deployments", "replicasets", "daemonsets", "statefulsets"]
  verbs: ["list", "get", "watch"]
- apiGroups: ["extensions", "batch"]
  resources: ["cronjobs", "jobs"]
  verbs: ["list", "get", "watch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linkerd-linkerd-dev-proxy-injector
  labels:
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
subjects:
- kind: ServiceAccount
  name: linkerd-proxy-injector
  namespace: linkerd-dev
  apiGroup: ""
roleRef:
  kind: ClusterRole
  name: linkerd-linkerd-dev-proxy-injector
  apiGroup: rbac.authorization.k8s.io
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: linkerd-proxy-injector
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  name: linkerd-proxy-injector-webhook-config
  labels:
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
webhooks:
- name: linkerd-proxy-injector.linkerd.io
  namespaceSelector:
    matchExpressions:
    - key: config.linkerd.io/admission-webhooks
      operator: NotIn
      values:
      - disabled
    - key: kubernetes.io/metadata.name
      operator: NotIn
      values:
      - kube-system
      - cert-manager
  objectSelector:
    null
  clientConfig:
    service:
      name: linkerd-proxy-injector
      namespace: linkerd-dev
      path: "/"
    caBundle: dGVzdC1wcm94eS1pbmplY3Rvci1jYS1idW5kbGU=
  failurePolicy: Fail
  admissionReviewVersions: ["v1", "v1beta1"]
  rules:
  - operations: [ "CREATE" ]
    apiGroups: [""]
    apiVersions: ["v1"]
    resources: ["pods", "services"]
    scope: "Namespaced"
  sideEffects: None
  timeoutSeconds: 10
---
# Source: linkerd-control-plane/templates/psp.yaml
---
# Source: linkerd-control-plane/templates/config.yaml
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: linkerd-config
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: controller
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
data:
  linkerd-crds-chart-version: linkerd-crds-1.0.0-edge
  values: |
    cliVersion: ""
    clusterDomain: cluster.local
    clusterNetworks: 10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
    cniEnabled: false
    controlPlaneTracing: false
    controlPlaneTracingNamespace: linkerd-jaeger
    controller:
      podDisruptionBudget:
        maxUnavailable: 1
    controllerGID: -1
    controllerImage: cr.l5d.io/linkerd/controller
    controllerLogFormat: plain
    controllerLogLevel: info
    controllerReplicas: 3
    controllerUID: 2103
    debugContainer:
      image:
        name: cr.l5d.io/linkerd/debug
        pullPolicy: ""
        version: test-debug-version
    deploymentStrategy:
      rollingUpdate:
        maxSurge: 25%
        maxUnavailable: 1
    destinationController:
      meshedHttp2ClientProtobuf:
        keep_alive:
          interval:
            seconds: 10
          timeout:
            seconds: 3
          while_idle: true
      podAnnotations: {}
    destinationProxyResources: null
    destinationResources:
      cpu:
        limit: ""
        request: 100m
      ephemeral-storage:
        limit: ""
        request: ""
      memory:
        limit: 250Mi
        request: 50Mi
    disableHeartBeat: false
    disableIPv6: true
    egress:
      globalEgressNetworkNamespace: linkerd-egress
    enableEndpointSlices: true
    enableH2Upgrade: true
    enablePodAntiAffinity: true
    enablePodDisruptionBudget: true
    heartbeat: null
    heartbeatResources:
      cpu:
        limit: ""
        request: 100m
      ephemeral-storage:
        limit: ""
        request: ""
      memory:
        limit: 250Mi
        request: 50Mi
    heartbeatSchedule: 1 2 3 4 5
    highAvailability: true
    identity:
      additionalEnv: null
      experimentalEnv: null
      externalCA: false
      issuer:
        clockSkewAllowance: 20s
        issuanceLifetime: 24h0m0s
        scheme: linkerd.io/tls
        tls:
          crtPEM: test-crt-pem
      kubeAPI:
        clientBurst: 200
        clientQPS: 100
      podAnnotations: {}
      serviceAccountTokenProjection: true
    identityProxyResources: null
    identityResources:
      cpu:
        limit: ""
        request: 100m
      ephemeral-storage:
        limit: ""
        request: ""
      memory:
        limit: 250Mi
        request: 10Mi
    identityTrustAnchorsPEM: test-trust-anchor
    identityTrustDomain: test.trust.domain
    imagePullPolicy: IfNotPresent
    imagePullSecrets: null
    linkerdVersion: linkerd-version
    networkValidator:
      connectAddr: ""
      enableSecurityContext: true
      listenAddr: ""
      logFormat: plain
      logLevel: debug
      timeout: 10s
    nodeAffinity: null
    nodeSelector:
      kubernetes.io/os: linux
    podAnnotations:
      asda: fasda
      bingo: bongo
    podLabels:
      fiz: buz
      foo: bar
    podMonitor:
      controller:
        enabled: true
        namespaceSelector: |
          matchNames:
            - {{ .Release.Namespace }}
            - linkerd-viz
            - linkerd-jaeger
      enabled: false
      proxy:
        enabled: true
      scrapeInterval: 10s
      scrapeTimeout: 10s
      serviceMirror:
        enabled: true
    policyController:
      image:
        name: cr.l5d.io/linkerd/policy-controller
        pullPolicy: ""
        version: ""
      logLevel: info
      probeNetworks:
      - 0.0.0.0/0
      - ::/0
      resources:
        cpu:
          limit: ""
          request: ""
        ephemeral-storage:
          limit: ""
          request: ""
        memory:
          limit: ""
          request: ""
    policyValidator:
      caBundle: test-profile-validator-ca-bundle
      crtPEM: ""
      externalSecret: true
      injectCaFrom: ""
      injectCaFromSecret: ""
      namespaceSelector:
        matchExpressions:
        - key: config.linkerd.io/admission-webhooks
          operator: NotIn
          values:
          - disabled
    priorityClassName: ""
    profileValidator:
      caBundle: test-profile-validator-ca-bundle
      crtPEM: ""
      externalSecret: true
      injectCaFrom: ""
      injectCaFromSecret: ""
      namespaceSelector:
        matchExpressions:
        - key: config.linkerd.io/admission-webhooks
          operator: NotIn
          values:
          - disabled
    prometheusUrl: ""
    proxy:
      accessLog: ""
      additionalEnv: null
      await: true
      capabilities: null
      control:
        streams:
          idleTimeout: 5m
          initialTimeout: 3s
          lifetime: 1h
      defaultInboundPolicy: all-unauthenticated
      disableInboundProtocolDetectTimeout: false
      disableOutboundProtocolDetectTimeout: false
      enableExternalProfiles: false
      enableShutdownEndpoint: false
      experimentalEnv: null
      gid: -1
      image:
        name: cr.l5d.io/linkerd/proxy
        pullPolicy: ""
        version: test-proxy-version
      inbound:
        server:
          http2:
            keepAliveInterval: 10s
            keepAliveTimeout: 3s
      inboundConnectTimeout: 100ms
      inboundDiscoveryCacheUnusedTimeout: 90s
      isGateway: false
      isIngress: false
      livenessProbe:
        initialDelaySeconds: 10
        timeoutSeconds: 1
      logFormat: plain
      logHTTPHeaders: "off"
      logLevel: warn,linkerd=info,hickory=error
      metrics:
        hostnameLabels: false
      nativeSidecar: false
      opaquePorts: 25,587,3306,4444,5432,6379,9300,11211
      outbound:
        server:
          http2:
            keepAliveInterval: 10s
            keepAliveTimeout: 3s
      outboundConnectTimeout: 1000ms
      outboundDiscoveryCacheUnusedTimeout: 5s
      outboundTransportMode: transport-header
      podInboundPorts: ""
      ports:
        admin: 4191
        control: 4190
        inbound: 4143
        outbound: 4140
      readinessProbe:
        initialDelaySeconds: 2
        timeoutSeconds: 1
      requireIdentityOnInboundPorts: ""
      resources:
        cpu:
          limit: ""
          request: 100m
        ephemeral-storage:
          limit: ""
          request: ""
        memory:
          limit: 250Mi
          request: 20Mi
      runtime:
        workers:
          minimum: 1
      saMountPath: null
      shutdownGracePeriod: ""
      startupProbe:
        failureThreshold: 120
        initialDelaySeconds: 0
        periodSeconds: 1
      tracing:
        collector:
          endpoint: ""
          meshIdentity:
            serviceAccountName: ""
        enable: false
        protocol: ""
        traceServiceName: linkerd-proxy
      uid: 2102
      waitBeforeExitSeconds: 0
    proxyContainerName: linkerd-proxy
    proxyInit:
      capabilities: null
      closeWaitTimeoutSecs: 0
      ignoreInboundPorts: "444"
      ignoreOutboundPorts: "333"
      image:
        name: cr.l5d.io/linkerd/proxy-init
        pullPolicy: ""
        version: test-proxy-init-version
      iptablesMode: legacy
      kubeAPIServerPorts: 443,6443
      logFormat: ""
      logLevel: ""
      privileged: false
      resources: null
      runAsGroup: 65534
      runAsRoot: false
      runAsUser: 65534
      saMountPath: null
      skipSubnets: ""
      xtMountPath:
        mountPath: /run
        name: linkerd-proxy-init-xtables-lock
        readOnly: false
    proxyInjector:
      additionalEnv: null
      caBundle: test-proxy-injector-ca-bundle
      crtPEM: ""
      experimentalEnv: null
      externalSecret: true
      injectCaFrom: ""
      injectCaFromSecret: ""
      namespaceSelector:
        matchExpressions:
        - key: config.linkerd.io/admission-webhooks
          operator: NotIn
          values:
          - disabled
        - key: kubernetes.io/metadata.name
          operator: NotIn
          values:
          - kube-system
          - cert-manager
      podAnnotations: {}
    proxyInjectorProxyResources: null
    proxyInjectorResources:
      cpu:
        limit: ""
        request: 100m
      ephemeral-storage:
        limit: ""
        request: ""
      memory:
        limit: 250Mi
        request: 50Mi
    revisionHistoryLimit: 10
    spValidator:
      livenessProbe:
        timeoutSeconds: 1
      readinessProbe:
        timeoutSeconds: 1
    tap:
      caBundle: test-tap-ca-bundle
      externalSecret: true
    tolerations: null
    webhookFailurePolicy: Fail
---
# Source: linkerd-control-plane/templates/config-rbac.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
  name: ext-namespace-metadata-linkerd-config
  namespace: linkerd-dev
rules:
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["get"]
  resourceNames: ["linkerd-config"]
---
# Source: linkerd-control-plane/templates/identity.yaml
---
###
### Identity Controller Service
###
kind: Secret
apiVersion: v1
metadata:
  name: linkerd-identity-issuer
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
data:
  crt.pem: dGVzdC1jcnQtcGVt
  key.pem: dGVzdC1rZXktcGVt
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: linkerd-identity-trust-roots
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
data:
  ca-bundle.crt: |-
    test-trust-anchor
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-identity
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  type: ClusterIP
  selector:
    linkerd.io/control-plane-component: identity
  ports:
  - name: grpc
    port: 8080
    targetPort: 8080
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-identity-headless
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  clusterIP: None
  selector:
    linkerd.io/control-plane-component: identity
  ports:
  - name: grpc
    port: 8080
    targetPort: 8080
---
kind: PodDisruptionBudget
apiVersion: policy/v1
metadata:
  name: linkerd-identity
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      linkerd.io/control-plane-component: identity
---

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
  labels:
    app.kubernetes.io/name: identity
    app.kubernetes.io/part-of: Linkerd
    app.kubernetes.io/version: linkerd-version
    linkerd.io/control-plane-component: identity
    linkerd.io/control-plane-ns: linkerd-dev
  name: linkerd-identity
  namespace: linkerd-dev
spec:
  replicas: 3
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      linkerd.io/control-plane-component: identity
      linkerd.io/control-plane-ns: linkerd-dev
      linkerd.io/proxy-deployment: linkerd-identity
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 1
  template:
    metadata:
      annotations:
        linkerd.io/created-by: linkerd/helm linkerd-version
        linkerd.io/proxy-version: test-proxy-version
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
        linkerd.io/trust-root-sha256: f8ebf807fa1cf5bf3b40e94680a5fc91593782385f28c96eae7bb6672dba375e
        asda: fasda
        bingo: bongo
        config.linkerd.io/default-inbound-policy: "all-unauthenticated"
      labels:
        linkerd.io/control-plane-component: identity
        linkerd.io/control-plane-ns: linkerd-dev
        linkerd.io/workload-ns: linkerd-dev
        linkerd.io/proxy-deployment: linkerd-identity
        fiz: buz
        foo: bar
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: linkerd.io/control-plane-component
                  operator: In
                  values:
                  - identity
              topologyKey: topology.kubernetes.io/zone
            weight: 100
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: linkerd.io/control-plane-component
                operator: In
                values:
                - identity
            topologyKey: kubernetes.io/hostname
      automountServiceAccountToken: false
      containers:
      - args:
        - identity
        - -log-level=info
        - -log-format=plain
        - -controller-namespace=linkerd-dev
        - -identity-trust-domain=test.trust.domain
        - -identity-issuance-lifetime=24h0m0s
        - -identity-clock-skew-allowance=20s
        - -identity-scheme=linkerd.io/tls
        - -enable-pprof=false
        - -kube-apiclient-qps=100
        - -kube-apiclient-burst=200
        env:
        - name: LINKERD_DISABLED
          value: "linkerd-await cannot block the identity controller"
        image: cr.l5d.io/linkerd/controller:linkerd-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /ping
            port: 9990
          initialDelaySeconds: 10
        name: identity
        ports:
        - containerPort: 8080
          name: ident-grpc
        - containerPort: 9990
          name: ident-admin
        readinessProbe:
          failureThreshold: 7
          httpGet:
            path: /ready
            port: 9990
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "10Mi"
        securityContext:
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2103
          allowPrivilegeEscalation: false
          seccompProfile:
            type: RuntimeDefault
        volumeMounts:
        - mountPath: /var/run/linkerd/identity/issuer
          name: identity-issuer
        - mountPath: /var/run/linkerd/identity/trust-roots/
          name: trust-roots
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access
          readOnly: true
      - env:
        - name: _pod_name
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: _pod_ns
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: _pod_uid
          valueFrom:
            fieldRef:
              fieldPath: metadata.uid
        - name: _pod_ip
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: _pod_nodeName
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: _pod_containerName
          value: &containerName linkerd-proxy
        - name: LINKERD2_PROXY_CORES
          value: "1"
        - name: LINKERD2_PROXY_CORES_MIN
          value: "1"
        - name: LINKERD2_PROXY_INBOUND_PORTS_REQUIRE_TLS
          value: "8080"
        - name: LINKERD2_PROXY_SHUTDOWN_ENDPOINT_ENABLED
          value: "false"
        - name: LINKERD2_PROXY_LOG
          value: "warn,linkerd=info,hickory=error,[{headers}]=off,[{request}]=off"
        - name: LINKERD2_PROXY_LOG_FORMAT
          value: "plain"
        - name: LINKERD2_PROXY_DESTINATION_SVC_ADDR
          value: linkerd-dst-headless.linkerd-dev.svc.cluster.local.:8086
        - name: LINKERD2_PROXY_DESTINATION_PROFILE_NETWORKS
          value: "10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8"
        - name: LINKERD2_PROXY_POLICY_SVC_ADDR
          value: linkerd-policy.linkerd-dev.svc.cluster.local.:8090
        - name: LINKERD2_PROXY_POLICY_WORKLOAD
          value: |
            {"ns":"$(_pod_ns)", "pod":"$(_pod_name)"}
        - name: LINKERD2_PROXY_INBOUND_DEFAULT_POLICY
          value: all-unauthenticated
        - name: LINKERD2_PROXY_POLICY_CLUSTER_NETWORKS
          value: "10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8"
        - name: LINKERD2_PROXY_CONTROL_STREAM_INITIAL_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_CONTROL_STREAM_IDLE_TIMEOUT
          value: "5m"
        - name: LINKERD2_PROXY_CONTROL_STREAM_LIFETIME
          value: "1h"
        - name: LINKERD2_PROXY_INBOUND_CONNECT_TIMEOUT
          value: "100ms"
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_TIMEOUT
          value: "1000ms"
        - name: LINKERD2_PROXY_OUTBOUND_DISCOVERY_IDLE_TIMEOUT
          value: "5s"
        - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
          value: "90s"
        - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
          value: "0.0.0.0:4190"
        - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
          value: "0.0.0.0:4191"
        - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
          value: "127.0.0.1:4140"
        - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
          value: "127.0.0.1:4140"
        - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
          value: "0.0.0.0:4143"
        - name: LINKERD2_PROXY_INBOUND_IPS
          valueFrom:
            fieldRef:
              fieldPath: status.podIPs
        - name: LINKERD2_PROXY_INBOUND_PORTS
          value: "8080,9990"
        - name: LINKERD2_PROXY_DESTINATION_PROFILE_SUFFIXES
          value: svc.cluster.local.
        - name: LINKERD2_PROXY_INBOUND_ACCEPT_KEEPALIVE
          value: 10000ms
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_KEEPALIVE
          value: 10000ms
        - name: LINKERD2_PROXY_INBOUND_ACCEPT_USER_TIMEOUT
          value: 30s
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
          value: 30s
        - name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
          value: "false"
        - name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
          value: "10s"
        - name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_OUTBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
          value: "10s"
        - name: LINKERD2_PROXY_OUTBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
          value: "25,587,3306,4444,5432,6379,9300,11211"
        - name: LINKERD2_PROXY_DESTINATION_CONTEXT
          value: |
            {"ns":"$(_pod_ns)", "nodeName":"$(_pod_nodeName)", "pod":"$(_pod_name)"}
        - name: _pod_sa
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        - name: _l5d_ns
          value: linkerd-dev
        - name: _l5d_trustdomain
          value: test.trust.domain
        - name: LINKERD2_PROXY_IDENTITY_DIR
          value: /var/run/linkerd/identity/end-entity
        - name: LINKERD2_PROXY_IDENTITY_TRUST_ANCHORS
          valueFrom:
            configMapKeyRef:
              name: linkerd-identity-trust-roots
              key: ca-bundle.crt
        - name: LINKERD2_PROXY_IDENTITY_TOKEN_FILE
          value: /var/run/secrets/tokens/linkerd-identity-token
        - name: LINKERD2_PROXY_IDENTITY_SVC_ADDR
          value: localhost.:8080
        - name: LINKERD2_PROXY_IDENTITY_LOCAL_NAME
          value: $(_pod_sa).$(_pod_ns).serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_IDENTITY_SVC_NAME
          value: linkerd-identity.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_DESTINATION_SVC_NAME
          value: linkerd-destination.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_POLICY_SVC_NAME
          value: linkerd-destination.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        image: cr.l5d.io/linkerd/proxy:test-proxy-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /live
            port: 4191
          initialDelaySeconds: 10
          timeoutSeconds: 1
        name: *containerName
        ports:
        - containerPort: 4143
          name: linkerd-proxy
        - containerPort: 4191
          name: linkerd-admin
        readinessProbe:
          httpGet:
            path: /ready
            port: 4191
          initialDelaySeconds: 2
          timeoutSeconds: 1
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "20Mi"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
              - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2102
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
        volumeMounts:
        - mountPath: /var/run/linkerd/identity/end-entity
          name: linkerd-identity-end-entity
        - mountPath: /var/run/secrets/tokens
          name: linkerd-identity-token
      initContainers:
      - args:
        - --ipv6=false
        - --incoming-proxy-port
        - "4143"
        - --outgoing-proxy-port
        - "4140"
        - --proxy-uid
        - "2102"
        - --inbound-ports-to-ignore
        - "4190,4191,444"
        - --outbound-ports-to-ignore
        - "443,6443"
        image: cr.l5d.io/linkerd/proxy-init:test-proxy-init-version
        imagePullPolicy: IfNotPresent
        name: linkerd-init
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "20Mi"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
            - NET_RAW
          privileged: false
          runAsNonRoot: true
          runAsUser: 65534
          runAsGroup: 65534
          readOnlyRootFilesystem: true
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
        volumeMounts:
        - mountPath: /run
          name: linkerd-proxy-init-xtables-lock
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: linkerd-identity
      volumes:
      - name: identity-issuer
        secret:
          secretName: linkerd-identity-issuer
      - configMap:
          name: linkerd-identity-trust-roots
        name: trust-roots
      - name: kube-api-access
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              expirationSeconds: 3607
              path: token
          - configMap:
              items:
              - key: ca.crt
                path: ca.crt
              name: kube-root-ca.crt
          - downwardAPI:
              items:
              - fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
                path: namespace
      - emptyDir: {}
        name: linkerd-proxy-init-xtables-lock
      - name: linkerd-identity-token
        projected:
          sources:
          - serviceAccountToken:
              path: linkerd-identity-token
              expirationSeconds: 86400
              audience: identity.l5d.io
      - emptyDir:
          medium: Memory
        name: linkerd-identity-end-entity
---
# Source: linkerd-control-plane/templates/destination.yaml
---
###
### Destination Controller Service
###
kind: Service
apiVersion: v1
metadata:
  name: linkerd-dst
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  type: ClusterIP
  selector:
    linkerd.io/control-plane-component: destination
  ports:
  - name: grpc
    port: 8086
    targetPort: 8086
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-dst-headless
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  clusterIP: None
  selector:
    linkerd.io/control-plane-component: destination
  ports:
  - name: grpc
    port: 8086
    targetPort: 8086
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-sp-validator
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  type: ClusterIP
  selector:
    linkerd.io/control-plane-component: destination
  ports:
  - name: sp-validator
    port: 443
    targetPort: sp-validator
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-policy
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  clusterIP: None
  selector:
    linkerd.io/control-plane-component: destination
  ports:
  - name: grpc
    port: 8090
    targetPort: 8090
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-policy-validator
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  type: ClusterIP
  selector:
    linkerd.io/control-plane-component: destination
  ports:
  - name: policy-https
    port: 443
    targetPort: policy-https
---
kind: PodDisruptionBudget
apiVersion: policy/v1
metadata:
  name: linkerd-dst
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      linkerd.io/control-plane-component: destination
---

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
  labels:
    app.kubernetes.io/name: destination
    app.kubernetes.io/part-of: Linkerd
    app.kubernetes.io/version: linkerd-version
    linkerd.io/control-plane-component: destination
    linkerd.io/control-plane-ns: linkerd-dev
  name: linkerd-destination
  namespace: linkerd-dev
spec:
  replicas: 3
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      linkerd.io/control-plane-component: destination
      linkerd.io/control-plane-ns: linkerd-dev
      linkerd.io/proxy-deployment: linkerd-destination
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 1
  template:
    metadata:
      annotations:
        checksum/config: fd8add3a34efa33eae90f8e70a5e0925728e8cf48d5607c4c03adb27ed005fe1
        linkerd.io/created-by: linkerd/helm linkerd-version
        linkerd.io/proxy-version: test-proxy-version
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
        linkerd.io/trust-root-sha256: f8ebf807fa1cf5bf3b40e94680a5fc91593782385f28c96eae7bb6672dba375e
        asda: fasda
        bingo: bongo
        config.linkerd.io/default-inbound-policy: "all-unauthenticated"
      labels:
        linkerd.io/control-plane-component: destination
        linkerd.io/control-plane-ns: linkerd-dev
        linkerd.io/workload-ns: linkerd-dev
        linkerd.io/proxy-deployment: linkerd-destination
        fiz: buz
        foo: bar
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: linkerd.io/control-plane-component
                  operator: In
                  values:
                  - destination
              topologyKey: topology.kubernetes.io/zone
            weight: 100
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: linkerd.io/control-plane-component
                operator: In
                values:
                - destination
            topologyKey: kubernetes.io/hostname
      automountServiceAccountToken: false
      containers:
      - env:
        - name: _pod_name
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: _pod_ns
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: _pod_uid
          valueFrom:
            fieldRef:
              fieldPath: metadata.uid
        - name: _pod_ip
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: _pod_nodeName
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: _pod_containerName
          value: &containerName linkerd-proxy
        - name: LINKERD2_PROXY_CORES
          value: "1"
        - name: LINKERD2_PROXY_CORES_MIN
          value: "1"
        - name: LINKERD2_PROXY_SHUTDOWN_ENDPOINT_ENABLED
          value: "false"
        - name: LINKERD2_PROXY_LOG
          value: "warn,linkerd=info,hickory=error,[{headers}]=off,[{request}]=off"
        - name: LINKERD2_PROXY_LOG_FORMAT
          value: "plain"
        - name: LINKERD2_PROXY_DESTINATION_SVC_ADDR
          value: localhost.:8086
        - name: LINKERD2_PROXY_DESTINATION_PROFILE_NETWORKS
          value: "10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8"
        - name: LINKERD2_PROXY_POLICY_SVC_ADDR
          value: localhost.:8090
        - name: LINKERD2_PROXY_POLICY_WORKLOAD
          value: |
            {"ns":"$(_pod_ns)", "pod":"$(_pod_name)"}
        - name: LINKERD2_PROXY_INBOUND_DEFAULT_POLICY
          value: all-unauthenticated
        - name: LINKERD2_PROXY_POLICY_CLUSTER_NETWORKS
          value: "10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8"
        - name: LINKERD2_PROXY_CONTROL_STREAM_INITIAL_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_CONTROL_STREAM_IDLE_TIMEOUT
          value: "5m"
        - name: LINKERD2_PROXY_CONTROL_STREAM_LIFETIME
          value: "1h"
        - name: LINKERD2_PROXY_INBOUND_CONNECT_TIMEOUT
          value: "100ms"
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_TIMEOUT
          value: "1000ms"
        - name: LINKERD2_PROXY_OUTBOUND_DISCOVERY_IDLE_TIMEOUT
          value: "5s"
        - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
          value: "90s"
        - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
          value: "0.0.0.0:4190"
        - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
          value: "0.0.0.0:4191"
        - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
          value: "127.0.0.1:4140"
        - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
          value: "127.0.0.1:4140"
        - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
          value: "0.0.0.0:4143"
        - name: LINKERD2_PROXY_INBOUND_IPS
          valueFrom:
            fieldRef:
              fieldPath: status.podIPs
        - name: LINKERD2_PROXY_INBOUND_PORTS
          value: "8086,8090,8443,9443,9990,9996,9997"
        - name: LINKERD2_PROXY_DESTINATION_PROFILE_SUFFIXES
          value: svc.cluster.local.
        - name: LINKERD2_PROXY_INBOUND_ACCEPT_KEEPALIVE
          value: 10000ms
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_KEEPALIVE
          value: 10000ms
        - name: LINKERD2_PROXY_INBOUND_ACCEPT_USER_TIMEOUT
          value: 30s
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
          value: 30s
        - name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
          value: "false"
        - name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
          value: "10s"
        - name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_OUTBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
          value: "10s"
        - name: LINKERD2_PROXY_OUTBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
          value: "25,587,3306,4444,5432,6379,9300,11211"
        - name: LINKERD2_PROXY_DESTINATION_CONTEXT
          value: |
            {"ns":"$(_pod_ns)", "nodeName":"$(_pod_nodeName)", "pod":"$(_pod_name)"}
        - name: _pod_sa
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        - name: _l5d_ns
          value: linkerd-dev
        - name: _l5d_trustdomain
          value: test.trust.domain
        - name: LINKERD2_PROXY_IDENTITY_DIR
          value: /var/run/linkerd/identity/end-entity
        - name: LINKERD2_PROXY_IDENTITY_TRUST_ANCHORS
          valueFrom:
            configMapKeyRef:
              name: linkerd-identity-trust-roots
              key: ca-bundle.crt
        - name: LINKERD2_PROXY_IDENTITY_TOKEN_FILE
          value: /var/run/secrets/tokens/linkerd-identity-token
        - name: LINKERD2_PROXY_IDENTITY_SVC_ADDR
          value: linkerd-identity-headless.linkerd-dev.svc.cluster.local.:8080
        - name: LINKERD2_PROXY_IDENTITY_LOCAL_NAME
          value: $(_pod_sa).$(_pod_ns).serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_IDENTITY_SVC_NAME
          value: linkerd-identity.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_DESTINATION_SVC_NAME
          value: linkerd-destination.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_POLICY_SVC_NAME
          value: linkerd-destination.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        image: cr.l5d.io/linkerd/proxy:test-proxy-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /live
            port: 4191
          initialDelaySeconds: 10
          timeoutSeconds: 1
        name: *containerName
        ports:
        - containerPort: 4143
          name: linkerd-proxy
        - containerPort: 4191
          name: linkerd-admin
        readinessProbe:
          httpGet:
            path: /ready
            port: 4191
          initialDelaySeconds: 2
          timeoutSeconds: 1
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "20Mi"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
              - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2102
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
        lifecycle:
          postStart:
            exec:
              command:
                - /usr/lib/linkerd/linkerd-await
                - --timeout=2m
                - --port=4191
        volumeMounts:
        - mountPath: /var/run/linkerd/identity/end-entity
          name: linkerd-identity-end-entity
        - mountPath: /var/run/secrets/tokens
          name: linkerd-identity-token
      - args:
        - destination
        - -addr=:8086
        - -controller-namespace=linkerd-dev
        - -outbound-transport-mode=transport-header
        - -enable-h2-upgrade=true
        - -log-level=info
        - -log-format=plain
        - -enable-endpoint-slices=true
        - -cluster-domain=cluster.local
        - -identity-trust-domain=test.trust.domain
        - -default-opaque-ports=25,587,3306,4444,5432,6379,9300,11211
        - -enable-ipv6=false
        - -enable-pprof=false
        - --meshed-http2-client-params={"keep_alive":{"interval":{"seconds":10},"timeout":{"seconds":3},"while_idle":true}}
        image: cr.l5d.io/linkerd/controller:linkerd-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /ping
            port: 9996
          initialDelaySeconds: 10
        name: destination
        ports:
        - containerPort: 8086
          name: dest-grpc
        - containerPort: 9996
          name: dest-admin
        readinessProbe:
          failureThreshold: 7
          httpGet:
            path: /ready
            port: 9996
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "50Mi"
        securityContext:
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2103
          allowPrivilegeEscalation: false
          seccompProfile:
            type: RuntimeDefault
        volumeMounts:
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access
          readOnly: true
      - args:
        - sp-validator
        - -log-level=info
        - -log-format=plain
        - -enable-pprof=false
        image: cr.l5d.io/linkerd/controller:linkerd-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /ping
            port: 9997
          initialDelaySeconds: 10
          timeoutSeconds: 1
        name: sp-validator
        ports:
        - containerPort: 8443
          name: sp-validator
        - containerPort: 9997
          name: spval-admin
        readinessProbe:
          failureThreshold: 7
          httpGet:
            path: /ready
            port: 9997
          timeoutSeconds: 1
        securityContext:
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2103
          allowPrivilegeEscalation: false
          seccompProfile:
            type: RuntimeDefault
        volumeMounts:
        - mountPath: /var/run/linkerd/tls
          name: sp-tls
          readOnly: true
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access
          readOnly: true
      - args:
        - --admin-addr=0.0.0.0:9990
        - --control-plane-namespace=linkerd-dev
        - --grpc-addr=0.0.0.0:8090
        - --server-addr=0.0.0.0:9443
        - --server-tls-key=/var/run/linkerd/tls/tls.key
        - --server-tls-certs=/var/run/linkerd/tls/tls.crt
        - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
        - --identity-domain=test.trust.domain
        - --cluster-domain=cluster.local
        - --default-policy=all-unauthenticated
        - --log-level=info
        - --log-format=plain
        - --default-opaque-ports=25,587,3306,4444,5432,6379,9300,11211
        - --global-egress-network-namespace=linkerd-egress
        - --probe-networks=0.0.0.0/0,::/0
        image: cr.l5d.io/linkerd/policy-controller:linkerd-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /live
            port: policy-admin
          initialDelaySeconds: 10
        name: policy
        ports:
        - containerPort: 8090
          name: policy-grpc
        - containerPort: 9990
          name: policy-admin
        - containerPort: 9443
          name: policy-https
        readinessProbe:
          failureThreshold: 7
          httpGet:
            path: /ready
            port: policy-admin
        resources:
        securityContext:
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2103
          allowPrivilegeEscalation: false
          seccompProfile:
            type: RuntimeDefault
        volumeMounts:
        - mountPath: /var/run/linkerd/tls
          name: policy-tls
          readOnly: true
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access
          readOnly: true
      initContainers:
      - args:
        - --ipv6=false
        - --incoming-proxy-port
        - "4143"
        - --outgoing-proxy-port
        - "4140"
        - --proxy-uid
        - "2102"
        - --inbound-ports-to-ignore
        - "4190,4191,444"
        - --outbound-ports-to-ignore
        - "443,6443"
        image: cr.l5d.io/linkerd/proxy-init:test-proxy-init-version
        imagePullPolicy: IfNotPresent
        name: linkerd-init
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "20Mi"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
            - NET_RAW
          privileged: false
          runAsNonRoot: true
          runAsUser: 65534
          runAsGroup: 65534
          readOnlyRootFilesystem: true
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
        volumeMounts:
        - mountPath: /run
          name: linkerd-proxy-init-xtables-lock
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: linkerd-destination
      volumes:
      - name: sp-tls
        secret:
          secretName: linkerd-sp-validator-k8s-tls
      - name: policy-tls
        secret:
          secretName: linkerd-policy-validator-k8s-tls
      - name: kube-api-access
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              expirationSeconds: 3607
              path: token
          - configMap:
              items:
              - key: ca.crt
                path: ca.crt
              name: kube-root-ca.crt
          - downwardAPI:
              items:
              - fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
                path: namespace
      - emptyDir: {}
        name: linkerd-proxy-init-xtables-lock
      - name: linkerd-identity-token
        projected:
          sources:
          - serviceAccountToken:
              path: linkerd-identity-token
              expirationSeconds: 86400
              audience: identity.l5d.io
      - emptyDir:
          medium: Memory
        name: linkerd-identity-end-entity
      
---
# Source: linkerd-control-plane/templates/heartbeat.yaml
---
###
### Heartbeat
###
apiVersion: batch/v1
kind: CronJob
metadata:
  name: linkerd-heartbeat
  namespace: linkerd-dev
  labels:
    app.kubernetes.io/name: heartbeat
    app.kubernetes.io/part-of: Linkerd
    app.kubernetes.io/version: linkerd-version
    linkerd.io/control-plane-component: heartbeat
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  concurrencyPolicy: Replace
  schedule: "1 2 3 4 5"
  successfulJobsHistoryLimit: 0
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            linkerd.io/control-plane-component: heartbeat
            linkerd.io/workload-ns: linkerd-dev
            fiz: buz
            foo: bar
          annotations:
            linkerd.io/created-by: linkerd/helm linkerd-version
            asda: fasda
            bingo: bongo
        spec:
          nodeSelector:
            kubernetes.io/os: linux
          securityContext:
            seccompProfile:
              type: RuntimeDefault
          serviceAccountName: linkerd-heartbeat
          restartPolicy: Never
          automountServiceAccountToken: false
          containers:
          - name: heartbeat
            image: cr.l5d.io/linkerd/controller:linkerd-version
            imagePullPolicy: IfNotPresent
            env:
            - name: LINKERD_DISABLED
              value: "the heartbeat controller does not use the proxy"
            args:
            - "heartbeat"
            - "-controller-namespace=linkerd-dev"
            - "-log-level=info"
            - "-log-format=plain"
            - "-prometheus-url=http://prometheus.linkerd-viz.svc.cluster.local:9090"
            resources:
              limits:
                memory: "250Mi"
              requests:
                cpu: "100m"
                memory: "50Mi"
            securityContext:
              capabilities:
                drop:
                - ALL
              readOnlyRootFilesystem: true
              runAsNonRoot: true
              runAsUser: 2103
              allowPrivilegeEscalation: false
              seccompProfile:
                type: RuntimeDefault
            volumeMounts:
            - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
              name: kube-api-access
              readOnly: true
          volumes:
          - name: kube-api-access
            projected:
              defaultMode: 420
              sources:
              - serviceAccountToken:
                  expirationSeconds: 3607
                  path: token
              - configMap:
                  items:
                  - key: ca.crt
                    path: ca.crt
                  name: kube-root-ca.crt
              - downwardAPI:
                  items:
                  - fieldRef:
                      apiVersion: v1
                      fieldPath: metadata.namespace
                    path: namespace
---
# Source: linkerd-control-plane/templates/proxy-injector.yaml
---
###
### Proxy Injector
###

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
  labels:
    app.kubernetes.io/name: proxy-injector
    app.kubernetes.io/part-of: Linkerd
    app.kubernetes.io/version: linkerd-version
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
  name: linkerd-proxy-injector
  namespace: linkerd-dev
spec:
  replicas: 3
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      linkerd.io/control-plane-component: proxy-injector
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 1
  template:
    metadata:
      annotations:
        checksum/config: fd3a1b10afd0c6c39c7c63f51aece4a849b0e47ba992a6612a1a5fa99211b084
        linkerd.io/created-by: linkerd/helm linkerd-version
        linkerd.io/proxy-version: test-proxy-version
        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
        linkerd.io/trust-root-sha256: f8ebf807fa1cf5bf3b40e94680a5fc91593782385f28c96eae7bb6672dba375e
        asda: fasda
        bingo: bongo
        config.linkerd.io/opaque-ports: "8443"
        config.linkerd.io/default-inbound-policy: "all-unauthenticated"
      labels:
        linkerd.io/control-plane-component: proxy-injector
        linkerd.io/control-plane-ns: linkerd-dev
        linkerd.io/workload-ns: linkerd-dev
        linkerd.io/proxy-deployment: linkerd-proxy-injector
        fiz: buz
        foo: bar
    spec:
      nodeSelector:
        kubernetes.io/os: linux
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: linkerd.io/control-plane-component
                  operator: In
                  values:
                  - proxy-injector
              topologyKey: topology.kubernetes.io/zone
            weight: 100
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: linkerd.io/control-plane-component
                operator: In
                values:
                - proxy-injector
            topologyKey: kubernetes.io/hostname
      automountServiceAccountToken: false
      containers:
      - env:
        - name: _pod_name
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: _pod_ns
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: _pod_uid
          valueFrom:
            fieldRef:
              fieldPath: metadata.uid
        - name: _pod_ip
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: _pod_nodeName
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: _pod_containerName
          value: &containerName linkerd-proxy
        - name: LINKERD2_PROXY_CORES
          value: "1"
        - name: LINKERD2_PROXY_CORES_MIN
          value: "1"
        - name: LINKERD2_PROXY_SHUTDOWN_ENDPOINT_ENABLED
          value: "false"
        - name: LINKERD2_PROXY_LOG
          value: "warn,linkerd=info,hickory=error,[{headers}]=off,[{request}]=off"
        - name: LINKERD2_PROXY_LOG_FORMAT
          value: "plain"
        - name: LINKERD2_PROXY_DESTINATION_SVC_ADDR
          value: linkerd-dst-headless.linkerd-dev.svc.cluster.local.:8086
        - name: LINKERD2_PROXY_DESTINATION_PROFILE_NETWORKS
          value: "10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8"
        - name: LINKERD2_PROXY_POLICY_SVC_ADDR
          value: linkerd-policy.linkerd-dev.svc.cluster.local.:8090
        - name: LINKERD2_PROXY_POLICY_WORKLOAD
          value: |
            {"ns":"$(_pod_ns)", "pod":"$(_pod_name)"}
        - name: LINKERD2_PROXY_INBOUND_DEFAULT_POLICY
          value: all-unauthenticated
        - name: LINKERD2_PROXY_POLICY_CLUSTER_NETWORKS
          value: "10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8"
        - name: LINKERD2_PROXY_CONTROL_STREAM_INITIAL_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_CONTROL_STREAM_IDLE_TIMEOUT
          value: "5m"
        - name: LINKERD2_PROXY_CONTROL_STREAM_LIFETIME
          value: "1h"
        - name: LINKERD2_PROXY_INBOUND_CONNECT_TIMEOUT
          value: "100ms"
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_TIMEOUT
          value: "1000ms"
        - name: LINKERD2_PROXY_OUTBOUND_DISCOVERY_IDLE_TIMEOUT
          value: "5s"
        - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
          value: "90s"
        - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
          value: "0.0.0.0:4190"
        - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
          value: "0.0.0.0:4191"
        - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
          value: "127.0.0.1:4140"
        - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
          value: "127.0.0.1:4140"
        - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
          value: "0.0.0.0:4143"
        - name: LINKERD2_PROXY_INBOUND_IPS
          valueFrom:
            fieldRef:
              fieldPath: status.podIPs
        - name: LINKERD2_PROXY_INBOUND_PORTS
          value: "8443,9995"
        - name: LINKERD2_PROXY_DESTINATION_PROFILE_SUFFIXES
          value: svc.cluster.local.
        - name: LINKERD2_PROXY_INBOUND_ACCEPT_KEEPALIVE
          value: 10000ms
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_KEEPALIVE
          value: 10000ms
        - name: LINKERD2_PROXY_INBOUND_ACCEPT_USER_TIMEOUT
          value: 30s
        - name: LINKERD2_PROXY_OUTBOUND_CONNECT_USER_TIMEOUT
          value: 30s
        - name: LINKERD2_PROXY_OUTBOUND_METRICS_HOSTNAME_LABELS
          value: "false"
        - name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
          value: "10s"
        - name: LINKERD2_PROXY_INBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_OUTBOUND_SERVER_HTTP2_KEEP_ALIVE_INTERVAL
          value: "10s"
        - name: LINKERD2_PROXY_OUTBOUND_SERVER_HTTP2_KEEP_ALIVE_TIMEOUT
          value: "3s"
        - name: LINKERD2_PROXY_INBOUND_PORTS_DISABLE_PROTOCOL_DETECTION
          value: "25,587,3306,4444,5432,6379,9300,11211"
        - name: LINKERD2_PROXY_DESTINATION_CONTEXT
          value: |
            {"ns":"$(_pod_ns)", "nodeName":"$(_pod_nodeName)", "pod":"$(_pod_name)"}
        - name: _pod_sa
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        - name: _l5d_ns
          value: linkerd-dev
        - name: _l5d_trustdomain
          value: test.trust.domain
        - name: LINKERD2_PROXY_IDENTITY_DIR
          value: /var/run/linkerd/identity/end-entity
        - name: LINKERD2_PROXY_IDENTITY_TRUST_ANCHORS
          valueFrom:
            configMapKeyRef:
              name: linkerd-identity-trust-roots
              key: ca-bundle.crt
        - name: LINKERD2_PROXY_IDENTITY_TOKEN_FILE
          value: /var/run/secrets/tokens/linkerd-identity-token
        - name: LINKERD2_PROXY_IDENTITY_SVC_ADDR
          value: linkerd-identity-headless.linkerd-dev.svc.cluster.local.:8080
        - name: LINKERD2_PROXY_IDENTITY_LOCAL_NAME
          value: $(_pod_sa).$(_pod_ns).serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_IDENTITY_SVC_NAME
          value: linkerd-identity.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_DESTINATION_SVC_NAME
          value: linkerd-destination.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        - name: LINKERD2_PROXY_POLICY_SVC_NAME
          value: linkerd-destination.linkerd-dev.serviceaccount.identity.linkerd-dev.test.trust.domain
        image: cr.l5d.io/linkerd/proxy:test-proxy-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /live
            port: 4191
          initialDelaySeconds: 10
          timeoutSeconds: 1
        name: *containerName
        ports:
        - containerPort: 4143
          name: linkerd-proxy
        - containerPort: 4191
          name: linkerd-admin
        readinessProbe:
          httpGet:
            path: /ready
            port: 4191
          initialDelaySeconds: 2
          timeoutSeconds: 1
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "20Mi"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop:
              - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2102
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
        lifecycle:
          postStart:
            exec:
              command:
                - /usr/lib/linkerd/linkerd-await
                - --timeout=2m
                - --port=4191
        volumeMounts:
        - mountPath: /var/run/linkerd/identity/end-entity
          name: linkerd-identity-end-entity
        - mountPath: /var/run/secrets/tokens
          name: linkerd-identity-token
      - args:
        - proxy-injector
        - -log-level=info
        - -log-format=plain
        - -linkerd-namespace=linkerd-dev
        - -enable-pprof=false
        image: cr.l5d.io/linkerd/controller:linkerd-version
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /ping
            port: 9995
          initialDelaySeconds: 10
        name: proxy-injector
        ports:
        - containerPort: 8443
          name: proxy-injector
        - containerPort: 9995
          name: injector-admin
        readinessProbe:
          failureThreshold: 7
          httpGet:
            path: /ready
            port: 9995
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "50Mi"
        securityContext:
          capabilities:
            drop:
            - ALL
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 2103
          allowPrivilegeEscalation: false
          seccompProfile:
            type: RuntimeDefault
        volumeMounts:
        - mountPath: /var/run/linkerd/config
          name: config
        - mountPath: /var/run/linkerd/identity/trust-roots
          name: trust-roots
        - mountPath: /var/run/linkerd/tls
          name: tls
          readOnly: true
        - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
          name: kube-api-access
          readOnly: true
      initContainers:
      - args:
        - --ipv6=false
        - --incoming-proxy-port
        - "4143"
        - --outgoing-proxy-port
        - "4140"
        - --proxy-uid
        - "2102"
        - --inbound-ports-to-ignore
        - "4190,4191,444"
        - --outbound-ports-to-ignore
        - "443,6443"
        image: cr.l5d.io/linkerd/proxy-init:test-proxy-init-version
        imagePullPolicy: IfNotPresent
        name: linkerd-init
        resources:
          limits:
            memory: "250Mi"
          requests:
            cpu: "100m"
            memory: "20Mi"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            add:
            - NET_ADMIN
            - NET_RAW
          privileged: false
          runAsNonRoot: true
          runAsUser: 65534
          runAsGroup: 65534
          readOnlyRootFilesystem: true
          seccompProfile:
            type: RuntimeDefault
        terminationMessagePolicy: FallbackToLogsOnError
        volumeMounts:
        - mountPath: /run
          name: linkerd-proxy-init-xtables-lock
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      serviceAccountName: linkerd-proxy-injector
      volumes:
      - configMap:
          name: linkerd-config
        name: config
      - configMap:
          name: linkerd-identity-trust-roots
        name: trust-roots
      - name: tls
        secret:
          secretName: linkerd-proxy-injector-k8s-tls
      - name: kube-api-access
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              expirationSeconds: 3607
              path: token
          - configMap:
              items:
              - key: ca.crt
                path: ca.crt
              name: kube-root-ca.crt
          - downwardAPI:
              items:
              - fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
                path: namespace
      - emptyDir: {}
        name: linkerd-proxy-init-xtables-lock
      - name: linkerd-identity-token
        projected:
          sources:
          - serviceAccountToken:
              path: linkerd-identity-token
              expirationSeconds: 86400
              audience: identity.l5d.io
      - emptyDir:
          medium: Memory
        name: linkerd-identity-end-entity
      
---
kind: Service
apiVersion: v1
metadata:
  name: linkerd-proxy-injector
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
    config.linkerd.io/opaque-ports: "443"
spec:
  type: ClusterIP
  selector:
    linkerd.io/control-plane-component: proxy-injector
  ports:
  - name: proxy-injector
    port: 443
    targetPort: proxy-injector
---
kind: PodDisruptionBudget
apiVersion: policy/v1
metadata:
  name: linkerd-proxy-injector
  namespace: linkerd-dev
  labels:
    linkerd.io/control-plane-component: proxy-injector
    linkerd.io/control-plane-ns: linkerd-dev
  annotations:
    linkerd.io/created-by: linkerd/helm linkerd-version
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      linkerd.io/control-plane-component: proxy-injector
