...

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

View as plain text