config/crd/bases/networking.fleet.azure.com_multiclusterservices.yaml (219 lines of code) (raw):

--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.0 name: multiclusterservices.networking.fleet.azure.com spec: group: networking.fleet.azure.com names: categories: - fleet-networking kind: MultiClusterService listKind: MultiClusterServiceList plural: multiclusterservices shortNames: - mcs singular: multiclusterservice scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.serviceImport.name name: Service-Import type: string - jsonPath: .status.loadBalancer.ingress[0].ip name: External-IP type: string - jsonPath: .status.conditions[?(@.type=='Valid')].status name: Is-Valid type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha1 schema: openAPIV3Schema: description: MultiClusterService is the Schema for creating north-south L4 load balancer to consume services across clusters. properties: apiVersion: 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 type: string kind: 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 type: string metadata: type: object spec: description: MultiClusterServiceSpec defines the desired state of MultiClusterService. properties: serviceImport: description: ServiceImport is the reference to the Service with the same name exported in the member clusters. properties: name: description: Name is the name of the referent. maxLength: 63 pattern: ^([a-z]([-a-z0-9]*[a-z0-9])?)$ type: string required: - name type: object type: object status: description: MultiClusterServiceStatus represents the current status of a multi-cluster service. properties: conditions: description: Current service state items: description: Condition contains details for one aspect of the current state of this API Resource. properties: lastTransitionTime: 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. format: date-time type: string message: description: |- message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: 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. format: int64 minimum: 0 type: integer reason: 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. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 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])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map loadBalancer: description: |- LoadBalancerStatus represents the status of a load-balancer. if one is present. properties: ingress: description: |- Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points. items: description: |- LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point. properties: hostname: description: |- Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers) type: string ip: description: |- IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers) type: string ipMode: description: |- IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to "VIP" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to "Proxy" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing. type: string ports: description: |- Ports is a list of records of service ports If used, every port defined in the service should have an entry in it items: properties: error: description: |- Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use CamelCase names - cloud provider specific error values must have names that comply with the format foo.example.com/CamelCase. maxLength: 316 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])$ type: string port: description: Port is the port number of the service port of which status is recorded here format: int32 type: integer protocol: default: TCP description: |- Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP" type: string required: - error - port - protocol type: object type: array x-kubernetes-list-type: atomic type: object type: array x-kubernetes-list-type: atomic type: object type: object required: - spec type: object x-kubernetes-validations: - message: metadata.name max length is 63 rule: size(self.metadata.name) < 64 served: true storage: true subresources: status: {}