...

Text file src/github.com/linkerd/linkerd2/multicluster/cmd/testdata/install_psp.golden

Documentation: github.com/linkerd/linkerd2/multicluster/cmd/testdata

     1kind: Namespace
     2apiVersion: v1
     3metadata:
     4  name: linkerd-multicluster
     5  labels:
     6    linkerd.io/extension: multicluster
     7    pod-security.kubernetes.io/enforce: privileged
     8---
     9apiVersion: apps/v1
    10kind: Deployment
    11metadata:
    12  annotations:
    13    linkerd.io/created-by: linkerd/helm linkerdVersionValue
    14  labels:
    15    app.kubernetes.io/name: gateway
    16    app.kubernetes.io/part-of: Linkerd
    17    app.kubernetes.io/version: linkerdVersionValue
    18    component: gateway
    19    app: linkerd-gateway
    20    linkerd.io/extension: multicluster
    21  name: linkerd-gateway
    22  namespace: linkerd-multicluster
    23spec:
    24  replicas: 1
    25  revisionHistoryLimit: 10
    26  selector:
    27    matchLabels:
    28      app: linkerd-gateway
    29  template:
    30    metadata:
    31      annotations:
    32        linkerd.io/created-by: linkerd/helm linkerdVersionValue
    33        linkerd.io/inject: enabled
    34        config.linkerd.io/proxy-require-identity-inbound-ports: "4143"
    35        config.linkerd.io/enable-gateway: "true"
    36        config.linkerd.io/default-inbound-policy: all-authenticated
    37        cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
    38      labels:
    39        app: linkerd-gateway
    40        linkerd.io/extension: multicluster
    41    spec:
    42      
    43      containers:
    44        - name: pause
    45          image: gcr.io/google_containers/pause:3.2
    46          securityContext:
    47            allowPrivilegeEscalation: false
    48            capabilities:
    49              drop:
    50              - ALL
    51            readOnlyRootFilesystem: true
    52            runAsGroup: 2103
    53            runAsNonRoot: true
    54            runAsUser: 2103
    55            seccompProfile:
    56              type: RuntimeDefault
    57      securityContext:
    58        seccompProfile:
    59          type: RuntimeDefault
    60      serviceAccountName: linkerd-gateway
    61---
    62apiVersion: v1
    63kind: Service
    64metadata:
    65  name: linkerd-gateway
    66  namespace: linkerd-multicluster
    67  labels:
    68    linkerd.io/extension: multicluster
    69  annotations:
    70    mirror.linkerd.io/gateway-identity: linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local
    71    mirror.linkerd.io/probe-period: "3"
    72    mirror.linkerd.io/probe-path: /ready
    73    mirror.linkerd.io/multicluster-gateway: "true"
    74    component: gateway
    75    linkerd.io/created-by: linkerd/helm linkerdVersionValue
    76spec:
    77  ports:
    78  - name: mc-gateway
    79    port: 4143
    80    protocol: TCP
    81  - name: mc-probe
    82    port: 4191
    83    protocol: TCP
    84  selector:
    85    app: linkerd-gateway
    86  type: LoadBalancer
    87---
    88kind: ServiceAccount
    89apiVersion: v1
    90metadata:
    91  name: linkerd-gateway
    92  namespace: linkerd-multicluster
    93  labels:
    94    linkerd.io/extension: multicluster
    95---
    96apiVersion: policy.linkerd.io/v1beta2
    97kind: Server
    98metadata:
    99  namespace: linkerd-multicluster
   100  name: linkerd-gateway
   101  labels:
   102    linkerd.io/extension: multicluster
   103    app: linkerd-gateway
   104  annotations:
   105    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   106spec:
   107  podSelector:
   108    matchLabels:
   109      app: linkerd-gateway
   110  port: linkerd-proxy
   111---
   112apiVersion: policy.linkerd.io/v1alpha1
   113kind: AuthorizationPolicy
   114metadata:
   115  namespace: linkerd-multicluster
   116  name: linkerd-gateway
   117  labels:
   118    linkerd.io/extension: multicluster
   119    app: linkerd-gateway
   120  annotations:
   121    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   122spec:
   123  targetRef:
   124    group: policy.linkerd.io
   125    kind: Server
   126    name: linkerd-gateway
   127  requiredAuthenticationRefs:
   128    - group: policy.linkerd.io
   129      kind: MeshTLSAuthentication
   130      name: any-meshed
   131      namespace: linkerd-multicluster
   132    - group: policy.linkerd.io
   133      kind: NetworkAuthentication
   134      name: source-cluster
   135      namespace: linkerd-multicluster
   136---
   137apiVersion: policy.linkerd.io/v1alpha1
   138kind: MeshTLSAuthentication
   139metadata:
   140  namespace: linkerd-multicluster
   141  name: any-meshed
   142  labels:
   143    linkerd.io/extension: multicluster
   144    app: linkerd-gateway
   145  annotations:
   146    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   147spec:
   148  identities:
   149  - '*'
   150---
   151apiVersion: policy.linkerd.io/v1alpha1
   152kind: NetworkAuthentication
   153metadata:
   154  namespace: linkerd-multicluster
   155  name: source-cluster
   156  labels:
   157    linkerd.io/extension: multicluster
   158    app: linkerd-gateway
   159  annotations:
   160    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   161spec:
   162  networks:
   163    # Change this to the source cluster cidrs pointing to this gateway.
   164    # Note that the source IP in some providers (e.g. GKE) will be the local
   165    # node's IP and not the source cluster's
   166  - cidr: "0.0.0.0/0"
   167  - cidr: "::/0"
   168---
   169apiVersion: rbac.authorization.k8s.io/v1
   170kind: Role
   171metadata:
   172  name: psp
   173  namespace: linkerd-multicluster
   174  labels:
   175    linkerd.io/extension: multicluster
   176rules:
   177- apiGroups: ['policy', 'extensions']
   178  resources: ['podsecuritypolicies']
   179  verbs: ['use']
   180  resourceNames:
   181  - linkerd-linkerd-control-plane
   182---
   183apiVersion: rbac.authorization.k8s.io/v1
   184kind: RoleBinding
   185metadata:
   186  name: linkerd-multicluster-psp
   187  namespace: linkerd-multicluster
   188  labels:
   189    linkerd.io/extension: multicluster
   190    namespace: linkerd-multicluster
   191roleRef:
   192  kind: Role
   193  name: psp
   194  apiGroup: rbac.authorization.k8s.io
   195subjects:
   196- kind: ServiceAccount
   197  name: linkerd-gateway
   198  namespace: linkerd-multicluster
   199- kind: ServiceAccount
   200  name: namespace-metadata
   201  namespace: linkerd-multicluster
   202---
   203apiVersion: rbac.authorization.k8s.io/v1
   204kind: ClusterRole
   205metadata:
   206  name: linkerd-service-mirror-remote-access-default
   207  labels:
   208    linkerd.io/extension: multicluster
   209  annotations:
   210    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   211rules:
   212- apiGroups: ["apps"]
   213  resources: ["replicasets"]
   214  verbs: ["list", "get", "watch"]
   215- apiGroups: ["batch"]
   216  resources: ["jobs"]
   217  verbs: ["list", "get", "watch"]
   218- apiGroups: [""]
   219  resources: ["pods", "endpoints", "services"]
   220  verbs: ["list", "get", "watch"]
   221- apiGroups: ["discovery.k8s.io"]
   222  resources: ["endpointslices"]
   223  verbs: ["list", "get", "watch"]
   224- apiGroups: ["policy.linkerd.io"]
   225  resources: ["servers"]
   226  verbs: ["list", "get", "watch"]
   227- apiGroups: [""]
   228  resources: ["configmaps"]
   229  verbs: ["get"]
   230  resourceNames: ["linkerd-config"]
   231- apiGroups: [""]
   232  resources: ["events"]
   233  verbs: ["create", "patch"]
   234---
   235apiVersion: v1
   236kind: ServiceAccount
   237metadata:
   238  name: linkerd-service-mirror-remote-access-default
   239  namespace: linkerd-multicluster
   240  labels:
   241    linkerd.io/extension: multicluster
   242  annotations:
   243    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   244---
   245apiVersion: v1
   246kind: Secret
   247metadata:
   248  name: linkerd-service-mirror-remote-access-default-token
   249  namespace: linkerd-multicluster
   250  labels:
   251    linkerd.io/extension: multicluster
   252  annotations:
   253    kubernetes.io/service-account.name: linkerd-service-mirror-remote-access-default
   254    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   255type: kubernetes.io/service-account-token
   256---
   257apiVersion: rbac.authorization.k8s.io/v1
   258kind: ClusterRoleBinding
   259metadata:
   260  name: linkerd-service-mirror-remote-access-default
   261  labels:
   262    linkerd.io/extension: multicluster
   263  annotations:
   264    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   265roleRef:
   266  apiGroup: rbac.authorization.k8s.io
   267  kind: ClusterRole
   268  name: linkerd-service-mirror-remote-access-default
   269subjects:
   270- kind: ServiceAccount
   271  name: linkerd-service-mirror-remote-access-default
   272  namespace: linkerd-multicluster
   273---
   274###
   275### Link CRD
   276###
   277apiVersion: apiextensions.k8s.io/v1
   278kind: CustomResourceDefinition
   279metadata:
   280  name: links.multicluster.linkerd.io
   281  labels:
   282    linkerd.io/extension: multicluster
   283  annotations:
   284    linkerd.io/created-by: linkerd/helm linkerdVersionValue
   285spec:
   286  group: multicluster.linkerd.io
   287  versions:
   288  - name: v1alpha1
   289    served: true
   290    storage: true
   291    schema:
   292      openAPIV3Schema:
   293        type: object
   294        properties:
   295          spec:
   296            type: object
   297            properties:
   298              clusterCredentialsSecret:
   299                description: Kubernetes secret of target cluster
   300                type: string
   301              gatewayAddress:
   302                description: Gateway address of target cluster
   303                type: string
   304              gatewayIdentity:
   305                description: Gateway Identity FQDN
   306                type: string
   307              gatewayPort:
   308                description: Gateway Port
   309                type: string
   310              probeSpec:
   311                description: Spec for gateway health probe
   312                type: object
   313                properties:
   314                  path:
   315                    description: Path of remote gateway health endpoint
   316                    type: string
   317                  period:
   318                    description: Interval in between probe requests
   319                    type: string
   320                  port:
   321                    description: Port of remote gateway health endpoint
   322                    type: string
   323              selector:
   324                description: Kubernetes Label Selector
   325                type: object
   326                properties:
   327                  matchLabels:
   328                    type: object
   329                    x-kubernetes-preserve-unknown-fields: true
   330                  matchExpressions:
   331                    description: List of selector requirements
   332                    type: array
   333                    items:
   334                      description: A selector item requires a key and an operator
   335                      type: object
   336                      required:
   337                      - key
   338                      - operator
   339                      properties:
   340                        key:
   341                          description: Label key that selector should apply to
   342                          type: string
   343                        operator:
   344                          description: Evaluation of a label in relation to set
   345                          type: string
   346                          enum: [In, NotIn, Exists, DoesNotExist]
   347                        values:
   348                          type: array
   349                          items:
   350                            type: string
   351              remoteDiscoverySelector:
   352                description: Selector for Services to mirror in remote discovery mode
   353                type: object
   354                properties:
   355                  matchLabels:
   356                    type: object
   357                    x-kubernetes-preserve-unknown-fields: true
   358                  matchExpressions:
   359                    description: List of selector requirements
   360                    type: array
   361                    items:
   362                      description: A selector item requires a key and an operator
   363                      type: object
   364                      required:
   365                      - key
   366                      - operator
   367                      properties:
   368                        key:
   369                          description: Label key that selector should apply to
   370                          type: string
   371                        operator:
   372                          description: Evaluation of a label in relation to set
   373                          type: string
   374                          enum: [In, NotIn, Exists, DoesNotExist]
   375                        values:
   376                          type: array
   377                          items:
   378                            type: string
   379              targetClusterName:
   380                description: Name of target cluster to link to
   381                type: string
   382              targetClusterDomain:
   383                description: Domain name of target cluster to link to
   384                type: string
   385              targetClusterLinkerdNamespace:
   386                description: Name of namespace Linkerd control plane is installed in on target cluster
   387                type: string
   388  scope: Namespaced
   389  names:
   390    plural: links
   391    singular: link
   392    kind: Link
   393---
   394apiVersion: policy.linkerd.io/v1beta2
   395kind: Server
   396metadata:
   397  namespace: linkerd-multicluster
   398  name: service-mirror
   399  labels:
   400    linkerd.io/extension: multicluster
   401    component: linkerd-service-mirror
   402spec:
   403  podSelector:
   404    matchLabels:
   405      component: linkerd-service-mirror
   406  port: admin-http
   407  proxyProtocol: HTTP/1
   408---
   409apiVersion: policy.linkerd.io/v1alpha1
   410kind: AuthorizationPolicy
   411metadata:
   412  namespace: linkerd-multicluster
   413  name: service-mirror
   414  labels:
   415    linkerd.io/extension: multicluster
   416    component: linkerd-service-mirror
   417spec:
   418  targetRef:
   419    group: policy.linkerd.io
   420    kind: Server
   421    name: service-mirror
   422  requiredAuthenticationRefs:
   423    # In order to use `linkerd mc gateways` you need viz' Prometheus instance
   424    # to be able to reach the service-mirror. In order to also have a separate
   425    # Prometheus scrape the service-mirror an additional AuthorizationPolicy
   426    # resource should be created.
   427    - kind: ServiceAccount
   428      name: prometheus
   429      namespace: linkerd-viz
   430---

View as plain text