diff --git a/submariner-k8s-broker/templates/crd.yaml b/submariner-k8s-broker/templates/crd.yaml index 6fb2417..60b3f6f 100644 --- a/submariner-k8s-broker/templates/crd.yaml +++ b/submariner-k8s-broker/templates/crd.yaml @@ -126,67 +126,69 @@ spec: - name: v1alpha1 served: true storage: true - additionalPrinterColumns: - - 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. + subresources: + status: {} + additionalPrinterColumns: + - 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: - 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: + 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 @@ -207,134 +209,136 @@ spec: - name: v1alpha1 served: true storage: true - additionalPrinterColumns: - - name: Type - type: string - description: The type of this ServiceImport - jsonPath: .spec.type - - name: IP - type: string - description: The VIP for this ServiceImport - jsonPath: .spec.ips - - 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' + subresources: + status: {} + additionalPrinterColumns: + - name: Type 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' + description: The type of this ServiceImport + jsonPath: .spec.type + - name: IP type: string - metadata: + description: The VIP for this ServiceImport + jsonPath: .spec.ips + - name: Age + type: date + jsonPath: .metadata.creationTimestamp + "schema": + "openAPIV3Schema": + description: ServiceImport describes a service imported from clusters in a + ClusterSet. 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' + 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 - sessionAffinityConfig: - description: sessionAffinityConfig contains session affinity configuration. + 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: - clientIP: - description: clientIP contains the configurations of Client IP - based session affinity. + 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: - 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 + 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 761666e..c7e9fa1 100644 --- a/submariner/templates/crd.yaml +++ b/submariner/templates/crd.yaml @@ -126,67 +126,69 @@ spec: - name: v1alpha1 served: true storage: true - additionalPrinterColumns: - - 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. + subresources: + status: {} + additionalPrinterColumns: + - 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: - 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: + 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 @@ -207,134 +209,136 @@ spec: - name: v1alpha1 served: true storage: true - additionalPrinterColumns: - - name: Type - type: string - description: The type of this ServiceImport - jsonPath: .spec.type - - name: IP - type: string - description: The VIP for this ServiceImport - jsonPath: .spec.ips - - 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' + subresources: + status: {} + additionalPrinterColumns: + - name: Type 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' + description: The type of this ServiceImport + jsonPath: .spec.type + - name: IP type: string - metadata: + description: The VIP for this ServiceImport + jsonPath: .spec.ips + - name: Age + type: date + jsonPath: .metadata.creationTimestamp + "schema": + "openAPIV3Schema": + description: ServiceImport describes a service imported from clusters in a + ClusterSet. 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' + 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 - sessionAffinityConfig: - description: sessionAffinityConfig contains session affinity configuration. + 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: - clientIP: - description: clientIP contains the configurations of Client IP - based session affinity. + 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: - 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 + 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 -}}