diff --git a/submariner-k8s-broker/templates/crd.yaml b/submariner-k8s-broker/templates/crd.yaml index bacd265..6fb2417 100644 --- a/submariner-k8s-broker/templates/crd.yaml +++ b/submariner-k8s-broker/templates/crd.yaml @@ -130,6 +130,63 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp + "schema": + "openAPIV3Schema": + description: ServiceExport declares that the Service with the same name and + namespace as this export should be consumable from other clusters. + type: object + 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 + status: + description: status describes the current state of an exported service. + Service configuration comes from the Service that had the same name + and namespace as this ServiceExport. Populated by the multi-cluster + service implementation's controller. + type: object + properties: + conditions: + type: array + items: + description: "ServiceExportCondition contains details for the current + condition of this service export. \n Once [KEP-1623](https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1623-standardize-conditions) + is implemented, this will be replaced by metav1.Condition." + type: object + required: + - status + - type + properties: + lastTransitionTime: + type: string + format: date-time + message: + type: string + reason: + type: string + status: + description: Status is one of {"True", "False", "Unknown"} + type: string + enum: + - "True" + - "False" + - Unknown + type: + description: ServiceExportConditionType identifies a specific + condition. + type: string + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition @@ -162,5 +219,122 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp + "schema": + "openAPIV3Schema": + description: ServiceImport describes a service imported from clusters in a + ClusterSet. + type: object + 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: spec defines the behavior of a ServiceImport. + type: object + required: + - ports + - type + properties: + ips: + description: ip will be used as the VIP for this service when type + is ClusterSetIP. + type: array + maxItems: 1 + items: + type: string + ports: + type: array + items: + description: ServicePort represents the port on which the service + is exposed + type: object + required: + - port + properties: + appProtocol: + description: The application protocol for this port. This field + follows standard Kubernetes label syntax. Un-prefixed names + are reserved for IANA standard service names (as per RFC-6335 + and http://www.iana.org/assignments/service-names). Non-standard + protocols should use prefixed names such as mycompany.com/my-custom-protocol. + Field can be enabled with ServiceAppProtocol feature gate. + type: string + name: + description: The name of this port within the service. This + must be a DNS_LABEL. All ports within a ServiceSpec must have + unique names. When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. Optional + if only one ServicePort is defined on this service. + type: string + port: + description: The port that will be exposed by this service. + type: integer + format: int32 + protocol: + description: The IP protocol for this port. Supports "TCP", + "UDP", and "SCTP". Default is TCP. + type: string + x-kubernetes-list-type: atomic + sessionAffinity: + description: 'Supports "ClientIP" and "None". Used to maintain session + affinity. Enable client IP based session affinity. Must be ClientIP + or None. Defaults to None. Ignored when type is Headless More info: + https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + type: string + sessionAffinityConfig: + description: sessionAffinityConfig contains session affinity configuration. + type: object + properties: + clientIP: + description: clientIP contains the configurations of Client IP + based session affinity. + type: object + properties: + timeoutSeconds: + description: timeoutSeconds specifies the seconds of ClientIP + type session sticky time. The value must be >0 && <=86400(for + 1 day) if ServiceAffinity == "ClientIP". Default value is + 10800(for 3 hours). + type: integer + format: int32 + type: + description: type defines the type of this service. Must be ClusterSetIP + or Headless. + type: string + enum: + - ClusterSetIP + - Headless + status: + description: status contains information about the exported services that + form the multi-cluster service referenced by this ServiceImport. + type: object + properties: + clusters: + description: clusters is the list of exporting clusters from which + this service was derived. + type: array + items: + description: ClusterStatus contains service configuration mapped + to a specific source cluster + type: object + required: + - cluster + properties: + cluster: + description: cluster is the name of the exporting cluster. Must + be a valid RFC-1123 DNS label. + type: string + x-kubernetes-list-map-keys: + - cluster + x-kubernetes-list-type: map {{- end -}} {{- end -}} \ No newline at end of file diff --git a/submariner/templates/crd.yaml b/submariner/templates/crd.yaml index 177ee6d..761666e 100644 --- a/submariner/templates/crd.yaml +++ b/submariner/templates/crd.yaml @@ -130,6 +130,63 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp + "schema": + "openAPIV3Schema": + description: ServiceExport declares that the Service with the same name and + namespace as this export should be consumable from other clusters. + type: object + 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 + status: + description: status describes the current state of an exported service. + Service configuration comes from the Service that had the same name + and namespace as this ServiceExport. Populated by the multi-cluster + service implementation's controller. + type: object + properties: + conditions: + type: array + items: + description: "ServiceExportCondition contains details for the current + condition of this service export. \n Once [KEP-1623](https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1623-standardize-conditions) + is implemented, this will be replaced by metav1.Condition." + type: object + required: + - status + - type + properties: + lastTransitionTime: + type: string + format: date-time + message: + type: string + reason: + type: string + status: + description: Status is one of {"True", "False", "Unknown"} + type: string + enum: + - "True" + - "False" + - Unknown + type: + description: ServiceExportConditionType identifies a specific + condition. + type: string + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition @@ -162,5 +219,122 @@ spec: - name: Age type: date jsonPath: .metadata.creationTimestamp + "schema": + "openAPIV3Schema": + description: ServiceImport describes a service imported from clusters in a + ClusterSet. + type: object + 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: spec defines the behavior of a ServiceImport. + type: object + required: + - ports + - type + properties: + ips: + description: ip will be used as the VIP for this service when type + is ClusterSetIP. + type: array + maxItems: 1 + items: + type: string + ports: + type: array + items: + description: ServicePort represents the port on which the service + is exposed + type: object + required: + - port + properties: + appProtocol: + description: The application protocol for this port. This field + follows standard Kubernetes label syntax. Un-prefixed names + are reserved for IANA standard service names (as per RFC-6335 + and http://www.iana.org/assignments/service-names). Non-standard + protocols should use prefixed names such as mycompany.com/my-custom-protocol. + Field can be enabled with ServiceAppProtocol feature gate. + type: string + name: + description: The name of this port within the service. This + must be a DNS_LABEL. All ports within a ServiceSpec must have + unique names. When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. Optional + if only one ServicePort is defined on this service. + type: string + port: + description: The port that will be exposed by this service. + type: integer + format: int32 + protocol: + description: The IP protocol for this port. Supports "TCP", + "UDP", and "SCTP". Default is TCP. + type: string + x-kubernetes-list-type: atomic + sessionAffinity: + description: 'Supports "ClientIP" and "None". Used to maintain session + affinity. Enable client IP based session affinity. Must be ClientIP + or None. Defaults to None. Ignored when type is Headless More info: + https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + type: string + sessionAffinityConfig: + description: sessionAffinityConfig contains session affinity configuration. + type: object + properties: + clientIP: + description: clientIP contains the configurations of Client IP + based session affinity. + type: object + properties: + timeoutSeconds: + description: timeoutSeconds specifies the seconds of ClientIP + type session sticky time. The value must be >0 && <=86400(for + 1 day) if ServiceAffinity == "ClientIP". Default value is + 10800(for 3 hours). + type: integer + format: int32 + type: + description: type defines the type of this service. Must be ClusterSetIP + or Headless. + type: string + enum: + - ClusterSetIP + - Headless + status: + description: status contains information about the exported services that + form the multi-cluster service referenced by this ServiceImport. + type: object + properties: + clusters: + description: clusters is the list of exporting clusters from which + this service was derived. + type: array + items: + description: ClusterStatus contains service configuration mapped + to a specific source cluster + type: object + required: + - cluster + properties: + cluster: + description: cluster is the name of the exporting cluster. Must + be a valid RFC-1123 DNS label. + type: string + x-kubernetes-list-map-keys: + - cluster + x-kubernetes-list-type: map {{- end }} {{- end -}}