1# CRDs taken directly from Linkerd installation manifests, installed
2# alongside the linkerd controller so that the CRDs are available before Linkerd
3# is installed. This is needed so that components can include instances of these
4# CRDs alongside their deployment manifests. Otherwise, Flux will fail to apply
5# those objects infinitely. This could be resolved by applying the Linkerd
6# controller first + an installation CRD, but is not really reasonable.
7# These CRDs aren't generated from the source code to make it easy to keep in
8# lock step because of course Linkerd does some wild shit that makes it impossible
9# to generate the CRDs using standard tooling such as controller-gen. My goodness
10# I hate Linkerd.
11#
12# These must be updated in lockstep with the embedded manifests that the Linkerd
13# controller actually deploys.
14apiVersion: apiextensions.k8s.io/v1
15kind: CustomResourceDefinition
16metadata:
17 name: servers.policy.linkerd.io
18 labels:
19 helm.sh/chart: linkerd2-0.1.0
20 linkerd.io/control-plane-ns: linkerd
21 annotations:
22 linkerd.io/created-by: linkerd/cli stable-2.11.4
23spec:
24 group: policy.linkerd.io
25 names:
26 kind: Server
27 plural: servers
28 shortNames: [srv]
29 singular: server
30 scope: Namespaced
31 versions:
32 - name: v1alpha1
33 deprecated: true
34 deprecationWarning: "policy.linkerd.io/v1alpha1 Server is deprecated; use policy.linkerd.io/v1beta1 Server"
35 schema:
36 openAPIV3Schema:
37 type: object
38 properties:
39 spec:
40 type: object
41 properties:
42 port:
43 description: >-
44 A port name or number. Must exist in a pod spec.
45 x-kubernetes-int-or-string: true
46 podSelector:
47 type: object
48 description: >-
49 Selects pods in the same namespace.
50 oneOf:
51 - required: [matchExpressions]
52 - required: [matchLabels]
53 properties:
54 matchExpressions:
55 type: array
56 items:
57 type: object
58 properties:
59 key:
60 type: string
61 operator:
62 type: string
63 enum: [In, NotIn, Exists, DoesNotExist]
64 values:
65 type: array
66 items:
67 type: string
68 required: [key, operator]
69 matchLabels:
70 type: object
71 x-kubernetes-preserve-unknown-fields: true
72 proxyProtocol:
73 type: string
74 default: unknown
75 description: >-
76 Configures protocol discovery for inbound connections.
77
78 Supersedes the `config.linkerd.io/opaque-ports` annotation.
79 enum:
80 - unknown
81 - HTTP/1
82 - HTTP/2
83 - gRPC
84 - opaque
85 - TLS
86 required:
87 - podSelector
88 - port
89 required: [spec]
90 served: true
91 storage: false
92 - name: v1beta1
93 additionalPrinterColumns:
94 - name: Port
95 type: string
96 description: The port the server is listening on
97 jsonPath: .spec.port
98 - name: Protocol
99 type: string
100 description: The protocol of the server
101 jsonPath: .spec.proxyProtocol
102 schema:
103 openAPIV3Schema:
104 type: object
105 properties:
106 spec:
107 type: object
108 properties:
109 port:
110 description: >-
111 A port name or number. Must exist in a pod spec.
112 x-kubernetes-int-or-string: true
113 podSelector:
114 type: object
115 description: >-
116 Selects pods in the same namespace.
117
118 The result of matchLabels and matchExpressions are ANDed. Selects all if empty.
119 properties:
120 matchExpressions:
121 type: array
122 items:
123 type: object
124 properties:
125 key:
126 type: string
127 operator:
128 type: string
129 enum: [In, NotIn, Exists, DoesNotExist]
130 values:
131 type: array
132 items:
133 type: string
134 required: [key, operator]
135 matchLabels:
136 type: object
137 x-kubernetes-preserve-unknown-fields: true
138 proxyProtocol:
139 type: string
140 default: unknown
141 description: >-
142 Configures protocol discovery for inbound connections.
143
144 Supersedes the `config.linkerd.io/opaque-ports` annotation.
145 enum:
146 - unknown
147 - HTTP/1
148 - HTTP/2
149 - gRPC
150 - opaque
151 - TLS
152 required:
153 - podSelector
154 - port
155 required: [spec]
156 served: true
157 storage: true
158---
159apiVersion: apiextensions.k8s.io/v1
160kind: CustomResourceDefinition
161metadata:
162 name: serverauthorizations.policy.linkerd.io
163 labels:
164 helm.sh/chart: linkerd2-0.1.0
165 linkerd.io/control-plane-ns: linkerd
166 annotations:
167 linkerd.io/created-by: linkerd/cli stable-2.11.4
168spec:
169 group: policy.linkerd.io
170 names:
171 kind: ServerAuthorization
172 plural: serverauthorizations
173 shortNames: [saz]
174 singular: serverauthorization
175 scope: Namespaced
176 versions:
177 - name: v1alpha1
178 schema:
179 openAPIV3Schema:
180 type: object
181 properties:
182 spec:
183 type: object
184 description: >-
185 Authorizes clients to communicate with Linkerd-proxied servers.
186 properties:
187 client:
188 type: object
189 description: Describes clients authorized to access a server.
190 properties:
191 meshTLS:
192 type: object
193 properties:
194 identities:
195 type: array
196 description: >-
197 Authorizes clients with the provided proxy identity strings (as provided via MTLS)
198
199 The `*` prefix can be used to match all identities in a domain. An identity string of `*` indicates that all authentication clients are authorized.
200 items:
201 type: string
202 pattern: '^(\*|[a-z0-9]([-a-z0-9]*[a-z0-9])?)(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'
203 serviceAccounts:
204 type: array
205 description: >-
206 Authorizes clients with the provided proxy identity service accounts (as provided via MTLS)
207 items:
208 type: object
209 properties:
210 name:
211 type: string
212 description: The ServiceAccount's name.
213 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
214 namespace:
215 type: string
216 description: >-
217 The ServiceAccount's namespace. If unset, the authorization's namespace is used.
218 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
219 required: [name]
220 unauthenticatedTLS:
221 type: boolean
222 description: >-
223 Indicates that no client identity is required for communication.
224
225 This is mostly important for the identity controller, which must terminate TLS connections from clients that do not yet have a certificate.
226 networks:
227 type: array
228 description: >-
229 Limits the client IP addresses to which this authorization applies. If unset, the server chooses a default (typically, all IPs or the cluster's pod network).
230 items:
231 type: object
232 properties:
233 cidr:
234 type: string
235 except:
236 type: array
237 items:
238 type: string
239 required: [cidr]
240 unauthenticated:
241 type: boolean
242 description: >-
243 Authorizes unauthenticated clients to access a server.
244 server:
245 type: object
246 description: >-
247 Identifies servers in the same namespace for which this authorization applies.
248
249 Only one of `name` or `selector` may be specified.
250 oneOf:
251 - required: [name]
252 - required: [selector]
253 properties:
254 name:
255 type: string
256 description: References a `Server` instance by name
257 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
258 selector:
259 type: object
260 description: >-
261 A label query over servers on which this authorization applies.
262 properties:
263 matchExpressions:
264 type: array
265 items:
266 type: object
267 properties:
268 key:
269 type: string
270 operator:
271 type: string
272 enum: [In, NotIn, Exists, DoesNotExist]
273 values:
274 type: array
275 items:
276 type: string
277 required: [key, operator]
278 matchLabels:
279 type: object
280 x-kubernetes-preserve-unknown-fields: true
281 required: [server, client]
282 required: [spec]
283 served: true
284 storage: false
285 - name: v1beta1
286 additionalPrinterColumns:
287 - name: Server
288 type: string
289 description: The server that this grants access to
290 jsonPath: .spec.server.name
291 schema:
292 openAPIV3Schema:
293 type: object
294 properties:
295 spec:
296 type: object
297 description: >-
298 Authorizes clients to communicate with Linkerd-proxied servers.
299 properties:
300 client:
301 type: object
302 description: Describes clients authorized to access a server.
303 properties:
304 meshTLS:
305 type: object
306 properties:
307 identities:
308 type: array
309 description: >-
310 Authorizes clients with the provided proxy identity strings (as provided via MTLS)
311
312 The `*` prefix can be used to match all identities in a domain. An identity string of `*` indicates that all authentication clients are authorized.
313 items:
314 type: string
315 pattern: '^(\*|[a-z0-9]([-a-z0-9]*[a-z0-9])?)(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'
316 serviceAccounts:
317 type: array
318 description: >-
319 Authorizes clients with the provided proxy identity service accounts (as provided via MTLS)
320 items:
321 type: object
322 properties:
323 name:
324 type: string
325 description: The ServiceAccount's name.
326 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
327 namespace:
328 type: string
329 description: >-
330 The ServiceAccount's namespace. If unset, the authorization's namespace is used.
331 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
332 required: [name]
333 unauthenticatedTLS:
334 type: boolean
335 description: >-
336 Indicates that no client identity is required for communication.
337
338 This is mostly important for the identity controller, which must terminate TLS connections from clients that do not yet have a certificate.
339 networks:
340 type: array
341 description: >-
342 Limits the client IP addresses to which this authorization applies. If unset, the server chooses a default (typically, all IPs or the cluster's pod network).
343 items:
344 type: object
345 properties:
346 cidr:
347 type: string
348 except:
349 type: array
350 items:
351 type: string
352 required: [cidr]
353 unauthenticated:
354 type: boolean
355 description: >-
356 Authorizes unauthenticated clients to access a server.
357 server:
358 type: object
359 description: >-
360 Identifies servers in the same namespace for which this authorization applies.
361
362 Only one of `name` or `selector` may be specified.
363 oneOf:
364 - required: [name]
365 - required: [selector]
366 properties:
367 name:
368 type: string
369 description: References a `Server` instance by name
370 pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
371 selector:
372 type: object
373 description: >-
374 A label query over servers on which this authorization applies.
375 properties:
376 matchExpressions:
377 type: array
378 items:
379 type: object
380 properties:
381 key:
382 type: string
383 operator:
384 type: string
385 enum: [In, NotIn, Exists, DoesNotExist]
386 values:
387 type: array
388 items:
389 type: string
390 required: [key, operator]
391 matchLabels:
392 type: object
393 x-kubernetes-preserve-unknown-fields: true
394 required: [server, client]
395 required: [spec]
396 served: true
397 storage: true
398---
399###
400### Service Profile CRD
401###
402apiVersion: apiextensions.k8s.io/v1
403kind: CustomResourceDefinition
404metadata:
405 name: serviceprofiles.linkerd.io
406 labels:
407 linkerd.io/control-plane-ns: linkerd
408 annotations:
409 linkerd.io/created-by: linkerd/cli stable-2.11.4
410spec:
411 group: linkerd.io
412 names:
413 kind: ServiceProfile
414 plural: serviceprofiles
415 shortNames:
416 - sp
417 singular: serviceprofile
418 preserveUnknownFields: false
419 scope: Namespaced
420 versions:
421 - name: v1alpha1
422 schema:
423 openAPIV3Schema:
424 type: object
425 properties:
426 spec:
427 type: object
428 description: Spec is the custom resource spec
429 properties:
430 dstOverrides:
431 type: array
432 items:
433 type: object
434 description: WeightedDst is a weighted alternate destination.
435 properties:
436 authority:
437 type: string
438 weight:
439 anyOf:
440 - type: integer
441 - type: string
442 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
443 x-kubernetes-int-or-string: true
444 required:
445 - authority
446 - weight
447 opaquePorts:
448 type: array
449 items:
450 type: string
451 retryBudget:
452 type: object
453 description: RetryBudget describes the maximum number of retries that should be issued to this service.
454 properties:
455 minRetriesPerSecond:
456 type: integer
457 format: int32
458 retryRatio:
459 type: number
460 format: float
461 ttl:
462 type: string
463 required:
464 - minRetriesPerSecond
465 - retryRatio
466 - ttl
467 routes:
468 type: array
469 items:
470 type: object
471 description: RouteSpec specifies a Route resource.
472 properties:
473 name:
474 type: string
475 condition:
476 type: object
477 description: RequestMatch describes the conditions under which to match a Route.
478 properties:
479 all:
480 type: array
481 items:
482 type: object
483 x-kubernetes-preserve-unknown-fields: true
484 any:
485 type: array
486 items:
487 type: object
488 x-kubernetes-preserve-unknown-fields: true
489 method:
490 type: string
491 not:
492 type: array
493 items:
494 type: object
495 x-kubernetes-preserve-unknown-fields: true
496 pathRegex:
497 type: string
498 isRetryable:
499 type: boolean
500 responseClasses:
501 type: array
502 items:
503 type: object
504 description: ResponseClass describes how to classify a response (e.g. success or failures).
505 properties:
506 condition:
507 type: object
508 description: ResponseMatch describes the conditions under which to classify a response.
509 properties:
510 status:
511 type: object
512 description: Range describes a range of integers (e.g. status codes).
513 properties:
514 max:
515 type: integer
516 format: int32
517 min:
518 type: integer
519 format: int32
520 all:
521 type: array
522 items:
523 type: object
524 x-kubernetes-preserve-unknown-fields: true
525 any:
526 type: array
527 items:
528 type: object
529 x-kubernetes-preserve-unknown-fields: true
530 not:
531 type: array
532 items:
533 type: object
534 x-kubernetes-preserve-unknown-fields: true
535 isFailure:
536 type: boolean
537 required:
538 - condition
539 timeout:
540 type: string
541 required:
542 - condition
543 - name
544 required:
545 - routes
546 served: true
547 storage: false
548 - name: v1alpha2
549 schema:
550 openAPIV3Schema:
551 type: object
552 properties:
553 spec:
554 type: object
555 description: Spec is the custom resource spec
556 properties:
557 dstOverrides:
558 type: array
559 items:
560 type: object
561 description: WeightedDst is a weighted alternate destination.
562 properties:
563 authority:
564 type: string
565 weight:
566 anyOf:
567 - type: integer
568 - type: string
569 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
570 x-kubernetes-int-or-string: true
571 required:
572 - authority
573 - weight
574 opaquePorts:
575 type: array
576 items:
577 type: string
578 retryBudget:
579 type: object
580 description: RetryBudget describes the maximum number of retries that should be issued to this service.
581 properties:
582 minRetriesPerSecond:
583 type: integer
584 format: int32
585 retryRatio:
586 type: number
587 format: float
588 ttl:
589 type: string
590 required:
591 - minRetriesPerSecond
592 - retryRatio
593 - ttl
594 routes:
595 type: array
596 items:
597 type: object
598 description: RouteSpec specifies a Route resource.
599 properties:
600 name:
601 type: string
602 condition:
603 type: object
604 description: RequestMatch describes the conditions under which to match a Route.
605 properties:
606 all:
607 type: array
608 items:
609 type: object
610 x-kubernetes-preserve-unknown-fields: true
611 any:
612 type: array
613 items:
614 type: object
615 x-kubernetes-preserve-unknown-fields: true
616 method:
617 type: string
618 not:
619 type: array
620 items:
621 type: object
622 x-kubernetes-preserve-unknown-fields: true
623 pathRegex:
624 type: string
625 isRetryable:
626 type: boolean
627 responseClasses:
628 type: array
629 items:
630 type: object
631 description: ResponseClass describes how to classify a response (e.g. success or failures).
632 properties:
633 condition:
634 type: object
635 description: ResponseMatch describes the conditions under which to classify a response.
636 properties:
637 status:
638 type: object
639 description: Range describes a range of integers (e.g. status codes).
640 properties:
641 max:
642 type: integer
643 format: int32
644 min:
645 type: integer
646 format: int32
647 all:
648 type: array
649 items:
650 type: object
651 x-kubernetes-preserve-unknown-fields: true
652 any:
653 type: array
654 items:
655 type: object
656 x-kubernetes-preserve-unknown-fields: true
657 not:
658 type: array
659 items:
660 type: object
661 x-kubernetes-preserve-unknown-fields: true
662 isFailure:
663 type: boolean
664 required:
665 - condition
666 timeout:
667 type: string
668 required:
669 - condition
670 - name
671 served: true
672 storage: true
673---
674###
675### TrafficSplit CRD
676### Copied from github.com/servicemeshinterface/smi-sdk-go/blob/d4e76b1cd7a33ead5f38d1262dd838a31c80f4e5/crds/split.yaml
677###
678apiVersion: apiextensions.k8s.io/v1
679kind: CustomResourceDefinition
680metadata:
681 name: trafficsplits.split.smi-spec.io
682 labels:
683 linkerd.io/control-plane-ns: linkerd
684 annotations:
685 linkerd.io/created-by: linkerd/cli stable-2.11.4
686spec:
687 conversion:
688 strategy: None
689 group: split.smi-spec.io
690 names:
691 kind: TrafficSplit
692 listKind: TrafficSplitList
693 plural: trafficsplits
694 shortNames:
695 - ts
696 singular: trafficsplit
697 preserveUnknownFields: false
698 scope: Namespaced
699 versions:
700 - name: v1alpha1
701 additionalPrinterColumns:
702 - name: Service
703 type: string
704 description: The apex service of this split.
705 jsonPath: .spec.service
706 schema:
707 openAPIV3Schema:
708 type: object
709 properties:
710 spec:
711 type: object
712 properties:
713 service:
714 type: string
715 description: The apex service of this split.
716 backends:
717 type: array
718 description: The backend services of this split.
719 items:
720 type: object
721 properties:
722 service:
723 type: string
724 description: Name of the Kubernetes service.
725 weight:
726 description: Traffic weight value of this backend.
727 x-kubernetes-int-or-string: true
728 required: ['service', 'weight']
729 required:
730 - service
731 - backends
732 served: true
733 storage: true
734 - name: v1alpha2
735 additionalPrinterColumns:
736 - name: Service
737 type: string
738 description: The apex service of this split.
739 jsonPath: .spec.service
740 schema:
741 openAPIV3Schema:
742 type: object
743 properties:
744 spec:
745 type: object
746 properties:
747 service:
748 type: string
749 description: The apex service of this split.
750 backends:
751 type: array
752 description: The backend services of this split.
753 items:
754 type: object
755 properties:
756 service:
757 type: string
758 description: Name of the Kubernetes service.
759 weight:
760 type: number
761 description: Traffic weight value of this backend.
762 required: ['service', 'weight']
763 required:
764 - service
765 - backends
766 served: true
767 storage: false
768---
769apiVersion: apiextensions.k8s.io/v1
770kind: CustomResourceDefinition
771metadata:
772 name: linkerds.linkerd.edge.ncr.com
773 annotations:
774 controller-gen.kubebuilder.io/version: (unknown)
775spec:
776 group: linkerd.edge.ncr.com
777 names:
778 kind: Linkerd
779 listKind: LinkerdList
780 plural: linkerds
781 shortNames:
782 - l5d
783 - l5ds
784 singular: linkerd
785 scope: Cluster
786 versions:
787 - name: v1alpha1
788 additionalPrinterColumns:
789 - name: Ready
790 type: string
791 jsonPath: .status.conditions[?(@.type=="Ready")].status
792 - name: Status
793 type: string
794 jsonPath: .status.conditions[?(@.type=="Ready")].message
795 - name: Version
796 type: string
797 jsonPath: .status.version
798 - name: Age
799 type: date
800 jsonPath: .metadata.creationTimestamp
801 schema:
802 openAPIV3Schema:
803 type: object
804 description: Linkerd is the Schema for the Linkerds API
805 properties:
806 apiVersion:
807 type: string
808 description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
809 kind:
810 type: string
811 description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
812 metadata:
813 type: object
814 spec:
815 type: object
816 description: LinkerdSpec defines the desired state of Linkerd
817 properties:
818 highAvailability:
819 type: object
820 description: HighAvailability contains the HighAvailability configuration options for a Linkerd installation
821 properties:
822 enabled:
823 type: boolean
824 injection:
825 type: object
826 description: Injection defines the configuration for automated proxy injection
827 properties:
828 enabled:
829 type: boolean
830 exclude:
831 type: object
832 description: Exclude defines the exclusion rules for proxy injection
833 properties:
834 namespaces:
835 type: array
836 items:
837 type: string
838 monitoring:
839 type: object
840 default:
841 enabled: true
842 description: Monitoring will be used to control monitoring features such as prometheus
843 properties:
844 enabled:
845 type: boolean
846 status:
847 type: object
848 description: LinkerdStatus defines the observed state of Linkerd
849 properties:
850 conditions:
851 type: array
852 items:
853 type: object
854 description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
855 properties:
856 type:
857 type: string
858 description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
859 maxLength: 316
860 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
861 status:
862 type: string
863 description: status of the condition, one of True, False, Unknown.
864 enum:
865 - "True"
866 - "False"
867 - Unknown
868 lastTransitionTime:
869 type: string
870 description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
871 format: date-time
872 message:
873 type: string
874 description: message is a human readable message indicating details about the transition. This may be an empty string.
875 maxLength: 32768
876 observedGeneration:
877 type: integer
878 description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
879 format: int64
880 minimum: 0
881 reason:
882 type: string
883 description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
884 maxLength: 1024
885 minLength: 1
886 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
887 required:
888 - lastTransitionTime
889 - message
890 - reason
891 - status
892 - type
893 disabledNamespaces:
894 type: array
895 items:
896 type: string
897 injectedNamespaces:
898 type: array
899 items:
900 type: string
901 inventory:
902 type: object
903 description: ResourceInventory contains a list of Kubernetes resource object references that have been applied.
904 properties:
905 entries:
906 type: array
907 description: Entries of Kubernetes resource object references.
908 items:
909 type: object
910 description: ResourceRef contains the information necessary to locate a resource within a cluster.
911 properties:
912 id:
913 type: string
914 description: ID is the string representation of the Kubernetes resource object's metadata, in the format '<namespace>_<name>_<group>_<kind>'.
915 v:
916 type: string
917 description: Version is the API version of the Kubernetes resource object's kind.
918 required:
919 - id
920 - v
921 version:
922 type: string
923 served: true
924 storage: true
925 subresources:
926 status: {}
927---
928apiVersion: linkerd.edge.ncr.com/v1alpha1
929kind: Linkerd
930metadata:
931 name: linkerd.edge.ncr.com
932spec:
933 highAvailability:
934 enabled: false
935 injection:
936 enabled: false
937 exclude:
938 namespaces:
939 - metallb
940 - piraeus
941 - ganesha
942 - sds
View as plain text