2
apiVersion: apiextensions.k8s.io/v1
3
kind: CustomResourceDefinition
6
controller-gen.kubebuilder.io/version: v0.14.0
7
name: meshgatewayinstances.kuma.io
13
kind: MeshGatewayInstance
14
listKind: MeshGatewayInstanceList
15
plural: meshgatewayinstances
16
singular: meshgatewayinstance
23
MeshGatewayInstance represents a managed instance of a dataplane proxy for a Kuma
28
APIVersion defines the versioned schema of this representation of an object.
29
Servers should convert recognized schemas to the latest internal value, and
30
may reject unrecognized values.
31
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
35
Kind is a string value representing the REST resource this object represents.
36
Servers may infer this from the endpoint the client submits requests to.
39
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
44
description: MeshGatewayInstanceSpec specifies the options available for
48
description: PodTemplate configures the Pod owned by this config.
51
description: Metadata holds metadata configuration for a Service.
56
description: Annotations holds annotations to be set on an
62
description: Labels holds labels to be set on an objects.
66
description: Spec holds some customizable fields of a Pod.
69
description: Container corresponds to PodSpec.Container
72
description: ContainerSecurityContext corresponds to PodSpec.Container.SecurityContext
74
readOnlyRootFilesystem:
75
description: ReadOnlyRootFilesystem corresponds to
76
PodSpec.Container.SecurityContext.ReadOnlyRootFilesystem
81
description: PodSecurityContext corresponds to PodSpec.SecurityContext
84
description: FSGroup corresponds to PodSpec.SecurityContext.FSGroup
89
description: ServiceAccountName corresponds to PodSpec.ServiceAccountName.
96
Replicas is the number of dataplane proxy replicas to create. For
97
now this is a fixed number, but in the future it could be
98
automatically scaled based on metrics.
104
Resources specifies the compute resources for the proxy container.
105
The default can be set in the control plane config.
109
Claims lists the names of resources, defined in spec.resourceClaims,
110
that are used by this container.
113
This is an alpha field and requires enabling the
114
DynamicResourceAllocation feature gate.
117
This field is immutable. It can only be set for containers.
119
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
123
Name must match the name of one entry in pod.spec.resourceClaims of
124
the Pod where this field is used. It makes that resource available
131
x-kubernetes-list-map-keys:
133
x-kubernetes-list-type: map
135
additionalProperties:
139
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
140
x-kubernetes-int-or-string: true
142
Limits describes the maximum amount of compute resources allowed.
143
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
146
additionalProperties:
150
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
151
x-kubernetes-int-or-string: true
153
Requests describes the minimum amount of compute resources required.
154
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
155
otherwise to an implementation-defined value. Requests cannot exceed Limits.
156
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
160
description: ServiceTemplate configures the Service owned by this
164
description: Metadata holds metadata configuration for a Service.
167
additionalProperties:
169
description: Annotations holds annotations to be set on an
173
additionalProperties:
175
description: Labels holds labels to be set on an objects.
179
description: Spec holds some customizable fields of a Service.
182
description: LoadBalancerIP corresponds to ServiceSpec.LoadBalancerIP.
187
default: LoadBalancer
189
ServiceType specifies the type of managed Service that will be
190
created to expose the dataplane proxies to traffic from outside
191
the cluster. The ports to expose will be taken from the matching Gateway
192
resource. If there is no matching Gateway, the managed Service will
200
additionalProperties:
203
Tags specifies the Kuma tags that are propagated to the managed
204
dataplane proxies. These tags should include exactly one
205
`kuma.io/service` tag, and should match exactly one Gateway
211
MeshGatewayInstanceStatus holds information about the status of the gateway
215
description: Conditions is an array of gateway instance conditions.
217
description: "Condition contains details for one aspect of the current
218
state of this API Resource.\n---\nThis struct is intended for
219
direct use as an array at the field path .status.conditions. For
220
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
221
observations of a foo's current state.\n\t // Known .status.conditions.type
222
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
223
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
224
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
225
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
226
\ // other fields\n\t}"
230
lastTransitionTime is the last time the condition transitioned from one status to another.
231
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
236
message is a human readable message indicating details about the transition.
237
This may be an empty string.
242
observedGeneration represents the .metadata.generation that the condition was set based upon.
243
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
244
with respect to the current state of the instance.
250
reason contains a programmatic identifier indicating the reason for the condition's last transition.
251
Producers of specific condition types may define expected values and meanings for this field,
252
and whether the values are considered a guaranteed API.
253
The value should be a CamelCase string.
254
This field may not be empty.
257
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
260
description: status of the condition, one of True, False, Unknown.
268
type of condition in CamelCase or in foo.example.com/CamelCase.
270
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
271
useful (see .node.status.conditions), the ability to deconflict is important.
272
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
274
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])$
284
x-kubernetes-list-map-keys:
286
x-kubernetes-list-type: map
289
LoadBalancer contains the current status of the load-balancer,
294
Ingress is a list containing ingress points for the load-balancer.
295
Traffic intended for the service should be sent to these ingress points.
298
LoadBalancerIngress represents the status of a load-balancer ingress point:
299
traffic intended for the service should be sent to an ingress point.
303
Hostname is set for load-balancer ingress points that are DNS based
304
(typically AWS load-balancers)
308
IP is set for load-balancer ingress points that are IP based
309
(typically GCE or OpenStack load-balancers)
313
IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified.
314
Setting this to "VIP" indicates that traffic is delivered to the node with
315
the destination set to the load-balancer's IP and port.
316
Setting this to "Proxy" indicates that traffic is delivered to the node or pod with
317
the destination set to the node's IP and node port or the pod's IP and port.
318
Service implementations may use this information to adjust traffic routing.
322
Ports is a list of records of service ports
323
If used, every port defined in the service should have an entry in it
328
Error is to record the problem with the service port
329
The format of the error shall comply with the following rules:
330
- built-in error values shall be specified in this file and those shall use
332
- cloud provider specific error values must have names that comply with the
333
format foo.example.com/CamelCase.
335
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
337
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])$
340
description: Port is the port number of the service
341
port of which status is recorded here
347
Protocol is the protocol of the service port of which status is recorded here
348
The supported values are: "TCP", "UDP", "SCTP"
355
x-kubernetes-list-type: atomic