diff --git a/traefik-hub/crds/hub.traefik.io_accesscontrolpolicies.yaml b/traefik-hub/crds/hub.traefik.io_accesscontrolpolicies.yaml index 24d8121..821f969 100644 --- a/traefik-hub/crds/hub.traefik.io_accesscontrolpolicies.yaml +++ b/traefik-hub/crds/hub.traefik.io_accesscontrolpolicies.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: accesscontrolpolicies.hub.traefik.io spec: group: hub.traefik.io @@ -20,14 +20,19 @@ spec: description: AccessControlPolicy defines an access control policy. 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' + 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' + 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 @@ -54,10 +59,9 @@ spec: description: Header is the name of a header. type: string headerAuthScheme: - description: HeaderAuthScheme sets an optional auth scheme - when Header is set to "Authorization". If set, this scheme - is removed from the token, and all requests not including - it are dropped. + description: |- + HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + If set, this scheme is removed from the token, and all requests not including it are dropped. type: string query: description: Query is the name of a query parameter. @@ -165,15 +169,15 @@ spec: Server certificate. type: string insecureSkipVerify: - description: InsecureSkipVerify skips the Authorization - Server certificate validation. For testing purposes - only, do not use in production. + description: |- + InsecureSkipVerify skips the Authorization Server certificate validation. + For testing purposes only, do not use in production. type: boolean type: object tokenTypeHint: - description: TokenTypeHint is a hint to pass to the Authorization - Server. See https://tools.ietf.org/html/rfc7662#section-2.1 - for more information. + description: |- + TokenTypeHint is a hint to pass to the Authorization Server. + See https://tools.ietf.org/html/rfc7662#section-2.1 for more information. type: string url: description: URL of the Authorization Server. @@ -186,9 +190,9 @@ spec: type: string type: object tokenSource: - description: 'TokenSource describes how to extract tokens from - HTTP requests. If multiple sources are set, the order is the - following: header > query > cookie.' + description: |- + TokenSource describes how to extract tokens from HTTP requests. + If multiple sources are set, the order is the following: header > query > cookie. properties: cookie: description: Cookie is the name of a cookie. @@ -197,10 +201,9 @@ spec: description: Header is the name of a header. type: string headerAuthScheme: - description: HeaderAuthScheme sets an optional auth scheme - when Header is set to "Authorization". If set, this scheme - is removed from the token, and all requests not including - it are dropped. + description: |- + HeaderAuthScheme sets an optional auth scheme when Header is set to "Authorization". + If set, this scheme is removed from the token, and all requests not including it are dropped. type: string query: description: Query is the name of a query parameter. @@ -241,8 +244,9 @@ spec: type: string type: array secret: - description: SecretReference represents a Secret Reference. It - has enough information to retrieve secret in any namespace + description: |- + SecretReference represents a Secret Reference. It has enough information to retrieve secret + in any namespace properties: name: description: name is unique within a namespace to reference @@ -306,8 +310,9 @@ spec: redirectUrl: type: string secret: - description: SecretReference represents a Secret Reference. It - has enough information to retrieve secret in any namespace + description: |- + SecretReference represents a Secret Reference. It has enough information to retrieve secret + in any namespace properties: name: description: name is unique within a namespace to reference diff --git a/traefik-hub/crds/hub.traefik.io_apiaccesses.yaml b/traefik-hub/crds/hub.traefik.io_apiaccesses.yaml index 9c92170..d1b9998 100644 --- a/traefik-hub/crds/hub.traefik.io_apiaccesses.yaml +++ b/traefik-hub/crds/hub.traefik.io_apiaccesses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: apiaccesses.hub.traefik.io spec: group: hub.traefik.io @@ -20,14 +20,19 @@ spec: description: APIAccess defines who can access to a set of APIs. 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' + 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' + 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 @@ -35,33 +40,34 @@ spec: description: The desired behavior of this APIAccess. properties: apiSelector: - description: APISelector selects the APIs that will be accessible - to the configured audience. Multiple APIAccesses can select the - same set of APIs. This field is optional and follows standard label - selector semantics. An empty APISelector matches any API. + description: |- + APISelector selects the APIs that will be accessible to the configured audience. + Multiple APIAccesses can select the same set of APIs. + This field is optional and follows standard label selector semantics. + An empty APISelector matches any API. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the key - and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to - a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string @@ -74,19 +80,18 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic apis: - description: APIs defines a set of APIs that will be accessible to - the configured audience. Multiple APIAccesses can select the same - APIs. When combined with APISelector, this set of APIs is appended - to the matching APIs. + description: |- + APIs defines a set of APIs that will be accessible to the configured audience. + Multiple APIAccesses can select the same APIs. + When combined with APISelector, this set of APIs is appended to the matching APIs. items: description: APIReference references an API. properties: @@ -113,9 +118,10 @@ spec: type: string type: array operationFilter: - description: OperationFilter specifies the allowed operations on APIs - and APIVersions. If not set, all operations are available. An empty - OperationFilter prohibits all operations. + description: |- + OperationFilter specifies the allowed operations on APIs and APIVersions. + If not set, all operations are available. + An empty OperationFilter prohibits all operations. properties: include: description: Include defines the names of OperationSets that will diff --git a/traefik-hub/crds/hub.traefik.io_apiportals.yaml b/traefik-hub/crds/hub.traefik.io_apiportals.yaml index e04bb19..ea2d531 100644 --- a/traefik-hub/crds/hub.traefik.io_apiportals.yaml +++ b/traefik-hub/crds/hub.traefik.io_apiportals.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: apiportals.hub.traefik.io spec: group: hub.traefik.io @@ -14,25 +14,26 @@ spec: singular: apiportal scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .status.urls - name: URLs - type: string - name: v1alpha1 + - name: v1alpha1 schema: openAPIV3Schema: description: APIPortal defines a developer portal for accessing the documentation of APIs. 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' + 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' + 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 @@ -45,14 +46,17 @@ spec: title: description: Title is the public facing name of the APIPortal. type: string - trustedDomains: - description: TrustedDomains are the domains that are trusted by the - OAuth 2.0 authorization server. + trustedUrls: + description: TrustedURLs are the urls that are trusted by the OAuth + 2.0 authorization server. items: type: string - maxItems: 20 + maxItems: 1 minItems: 1 type: array + x-kubernetes-validations: + - message: must be a valid URLs + rule: self.all(x, isURL(x)) ui: description: UI holds the UI customization options. properties: @@ -61,7 +65,7 @@ spec: type: string type: object required: - - trustedDomains + - trustedUrls type: object status: description: The current status of this APIPortal. @@ -95,4 +99,3 @@ spec: type: object served: true storage: true - subresources: {} diff --git a/traefik-hub/crds/hub.traefik.io_apiratelimits.yaml b/traefik-hub/crds/hub.traefik.io_apiratelimits.yaml index 96e5ea2..8e328d3 100644 --- a/traefik-hub/crds/hub.traefik.io_apiratelimits.yaml +++ b/traefik-hub/crds/hub.traefik.io_apiratelimits.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: apiratelimits.hub.traefik.io spec: group: hub.traefik.io @@ -21,14 +21,19 @@ spec: on a set of APIs. 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' + 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' + 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 @@ -36,33 +41,34 @@ spec: description: The desired behavior of this APIRateLimit. properties: apiSelector: - description: APISelector selects the APIs that will be rate limited. - Multiple APIRateLimits can select the same set of APIs. This field - is optional and follows standard label selector semantics. An empty - APISelector matches any API. + description: |- + APISelector selects the APIs that will be rate limited. + Multiple APIRateLimits can select the same set of APIs. + This field is optional and follows standard label selector semantics. + An empty APISelector matches any API. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the key - and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to - a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string @@ -75,18 +81,18 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic apis: - description: APIs defines a set of APIs that will be rate limited. - Multiple APIRateLimits can select the same APIs. When combined with - APISelector, this set of APIs is appended to the matching APIs. + description: |- + APIs defines a set of APIs that will be rate limited. + Multiple APIRateLimits can select the same APIs. + When combined with APISelector, this set of APIs is appended to the matching APIs. items: description: APIReference references an API. properties: @@ -103,15 +109,15 @@ spec: - message: duplicated apis rule: self.all(x, self.exists_one(y, x.name == y.name)) everyone: - description: Everyone indicates that all users will, by default, be - rate limited with this configuration. If an APIRateLimit explicitly - target a group, the default rate limit will be ignored. + description: |- + Everyone indicates that all users will, by default, be rate limited with this configuration. + If an APIRateLimit explicitly target a group, the default rate limit will be ignored. type: boolean groups: - description: Groups are the consumer groups that will be rate limited. - Multiple APIRateLimits can target the same set of consumer groups, - the most restrictive one applies. When a consumer belongs to multiple - groups, the least restrictive APIRateLimit applies. + description: |- + Groups are the consumer groups that will be rate limited. + Multiple APIRateLimits can target the same set of consumer groups, the most restrictive one applies. + When a consumer belongs to multiple groups, the least restrictive APIRateLimit applies. items: type: string type: array @@ -129,9 +135,9 @@ spec: - message: must be between 1s and 1h rule: self >= duration('1s') && self <= duration('1h') strategy: - description: Strategy defines how the bucket state will be synchronized - between the different Traefik Hub instances. It can be, either "local" - or "distributed". + description: |- + Strategy defines how the bucket state will be synchronized between the different Traefik Hub instances. + It can be, either "local" or "distributed". enum: - local - distributed diff --git a/traefik-hub/crds/hub.traefik.io_apis.yaml b/traefik-hub/crds/hub.traefik.io_apis.yaml index 08d98d5..a7b9e5e 100644 --- a/traefik-hub/crds/hub.traefik.io_apis.yaml +++ b/traefik-hub/crds/hub.traefik.io_apis.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: apis.hub.traefik.io spec: group: hub.traefik.io @@ -17,21 +17,25 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: API defines an HTTP interface that is exposed to external clients. - It specifies the supported versions and provides instructions for accessing - its documentation. Once instantiated, an API object is associated with an - Ingress, IngressRoute, or HTTPRoute resource, enabling the exposure of the - described API to the outside world. + description: |- + API defines an HTTP interface that is exposed to external clients. It specifies the supported versions + and provides instructions for accessing its documentation. Once instantiated, an API object is associated + with an Ingress, IngressRoute, or HTTPRoute resource, enabling the exposure of the described API to the outside world. 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' + 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' + 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 @@ -45,9 +49,9 @@ spec: description: OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. items: - description: OperationSet gives a name to a set of matching - OpenAPI operations. This set of operations can then be referenced - for granular filtering in APIAccesses. + description: |- + OperationSet gives a name to a set of matching OpenAPI operations. + This set of operations can then be referenced for granular filtering in APIAccesses. properties: matchers: description: Matchers defines a list of alternative rules @@ -108,15 +112,32 @@ spec: type: object maxItems: 100 type: array + override: + description: Override holds data used to override OpenAPI specification. + properties: + servers: + items: + properties: + url: + type: string + x-kubernetes-validations: + - message: must be a valid URL + rule: isURL(self) + required: + - url + type: object + maxItems: 100 + minItems: 1 + type: array + required: + - servers + type: object path: - description: Path specifies the endpoint path within the Kubernetes - Service where the OpenAPI specification can be obtained. The - Service queried is determined by the associated Ingress, IngressRoute, - or HTTPRoute resource to which the API is attached. It's important - to note that this option is incompatible if the Ingress or IngressRoute - specifies multiple backend services. The Path must be accessible - via a GET request method and should serve a YAML or JSON document - containing the OpenAPI specification. + description: |- + Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. maxLength: 255 type: string x-kubernetes-validations: @@ -125,10 +146,9 @@ spec: - message: cannot contains '../' rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' url: - description: URL is a Traefik Hub agent accessible URL for obtaining - the OpenAPI specification. The URL must be accessible via a - GET request method and should serve a YAML or JSON document - containing the OpenAPI specification. + description: |- + URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. type: string x-kubernetes-validations: - message: must be a valid URL diff --git a/traefik-hub/crds/hub.traefik.io_apiversions.yaml b/traefik-hub/crds/hub.traefik.io_apiversions.yaml index e4a581c..97184ef 100644 --- a/traefik-hub/crds/hub.traefik.io_apiversions.yaml +++ b/traefik-hub/crds/hub.traefik.io_apiversions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: apiversions.hub.traefik.io spec: group: hub.traefik.io @@ -15,9 +15,6 @@ spec: scope: Namespaced versions: - additionalPrinterColumns: - - jsonPath: .spec.apiName - name: APIName - type: string - jsonPath: .spec.title name: Title type: string @@ -30,14 +27,19 @@ spec: description: APIVersion defines a version of an API. 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' + 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' + 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 @@ -51,9 +53,9 @@ spec: description: OperationSets defines the sets of operations to be referenced for granular filtering in APIAccesses. items: - description: OperationSet gives a name to a set of matching - OpenAPI operations. This set of operations can then be referenced - for granular filtering in APIAccesses. + description: |- + OperationSet gives a name to a set of matching OpenAPI operations. + This set of operations can then be referenced for granular filtering in APIAccesses. properties: matchers: description: Matchers defines a list of alternative rules @@ -114,15 +116,32 @@ spec: type: object maxItems: 100 type: array + override: + description: Override holds data used to override OpenAPI specification. + properties: + servers: + items: + properties: + url: + type: string + x-kubernetes-validations: + - message: must be a valid URL + rule: isURL(self) + required: + - url + type: object + maxItems: 100 + minItems: 1 + type: array + required: + - servers + type: object path: - description: Path specifies the endpoint path within the Kubernetes - Service where the OpenAPI specification can be obtained. The - Service queried is determined by the associated Ingress, IngressRoute, - or HTTPRoute resource to which the API is attached. It's important - to note that this option is incompatible if the Ingress or IngressRoute - specifies multiple backend services. The Path must be accessible - via a GET request method and should serve a YAML or JSON document - containing the OpenAPI specification. + description: |- + Path specifies the endpoint path within the Kubernetes Service where the OpenAPI specification can be obtained. + The Service queried is determined by the associated Ingress, IngressRoute, or HTTPRoute resource to which the API is attached. + It's important to note that this option is incompatible if the Ingress or IngressRoute specifies multiple backend services. + The Path must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. maxLength: 255 type: string x-kubernetes-validations: @@ -131,10 +150,9 @@ spec: - message: cannot contains '../' rule: '!self.matches(r"""(\/\.\.\/)|(\/\.\.$)""")' url: - description: URL is a Traefik Hub agent accessible URL for obtaining - the OpenAPI specification. The URL must be accessible via a - GET request method and should serve a YAML or JSON document - containing the OpenAPI specification. + description: |- + URL is a Traefik Hub agent accessible URL for obtaining the OpenAPI specification. + The URL must be accessible via a GET request method and should serve a YAML or JSON document containing the OpenAPI specification. type: string x-kubernetes-validations: - message: must be a valid URL @@ -144,8 +162,9 @@ spec: - message: path or url must be defined rule: has(self.path) || has(self.url) release: - description: 'Release is the version number of the API. This value - must follow the SemVer format: https://semver.org/' + description: |- + Release is the version number of the API. + This value must follow the SemVer format: https://semver.org/ maxLength: 100 type: string x-kubernetes-validations: diff --git a/traefik-hub/crds/hub.traefik.io_edgeingresses.yaml b/traefik-hub/crds/hub.traefik.io_edgeingresses.yaml deleted file mode 100644 index 673bc16..0000000 --- a/traefik-hub/crds/hub.traefik.io_edgeingresses.yaml +++ /dev/null @@ -1,115 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: edgeingresses.hub.traefik.io -spec: - group: hub.traefik.io - names: - kind: EdgeIngress - listKind: EdgeIngressList - plural: edgeingresses - singular: edgeingress - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .spec.service.name - name: Service - type: string - - jsonPath: .spec.service.port - name: Port - type: string - - jsonPath: .spec.acp.name - name: ACP - priority: 1 - type: string - - jsonPath: .status.urls - name: URLs - type: string - - jsonPath: .status.connection - name: Connection - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: EdgeIngress defines an edge ingress. - 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: The desired behavior of this edge ingress. - properties: - acp: - description: EdgeIngressACP configures the ACP to use on the Ingress. - properties: - name: - type: string - required: - - name - type: object - customDomains: - description: CustomDomains are the custom domains for accessing the - exposed service. - items: - type: string - type: array - service: - description: EdgeIngressService configures the service to exposed - on the edge. - properties: - name: - type: string - port: - type: integer - required: - - name - - port - type: object - required: - - service - type: object - status: - description: The current status of this edge ingress. - properties: - connection: - description: Connection is the status of the underlying connection - to the edge. - type: string - customDomains: - description: CustomDomains are the custom domains for accessing the - exposed service. - items: - type: string - type: array - domain: - description: Domain is the Domain for accessing the exposed service. - type: string - specHash: - description: SpecHash is a hash representing the EdgeIngressSpec - type: string - syncedAt: - format: date-time - type: string - urls: - description: URLs is the list of coma separated URL for accessing - the exposed service. - type: string - version: - type: string - type: object - type: object - served: true - storage: true - subresources: {}