--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.19.0 operatorframework.io/installed-alongside-4bd893de2d7a381: kuadrant-system/rhcl-operator.v1.3.1 creationTimestamp: "2026-03-18T16:54:24Z" generation: 1 labels: app: kuadrant olm.managed: "true" operators.coreos.com/rhcl-operator.kuadrant-system: "" managedFields: - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:controller-gen.kubebuilder.io/version: {} f:operatorframework.io/installed-alongside-4bd893de2d7a381: {} f:labels: .: {} f:app: {} f:olm.managed: {} f:spec: f:conversion: .: {} f:strategy: {} f:group: {} f:names: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:scope: {} f:versions: {} manager: catalog operation: Update time: "2026-03-18T16:54:24Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:status: f:acceptedNames: f:kind: {} f:listKind: {} f:plural: {} f:singular: {} f:conditions: k:{"type":"Established"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"NamesAccepted"}: .: {} f:lastTransitionTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} manager: kube-apiserver operation: Update subresource: status time: "2026-03-18T16:54:25Z" - apiVersion: apiextensions.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:operators.coreos.com/rhcl-operator.kuadrant-system: {} manager: olm operation: Update time: "2026-03-18T16:55:01Z" name: kuadrants.kuadrant.io resourceVersion: "16838" uid: 749478cc-6774-4e72-bcfd-47701d2056d2 spec: conversion: strategy: None group: kuadrant.io names: kind: Kuadrant listKind: KuadrantList plural: kuadrants singular: kuadrant scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.conditions[0].reason name: Status priority: 2 type: string - jsonPath: .status.mtlsAuthorino name: mTLS Authorino type: boolean - jsonPath: .status.mtlsLimitador name: mTLS Limitador type: boolean - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: description: Kuadrant configures installations of Kuadrant Service Protection components 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: KuadrantSpec defines the desired state of Kuadrant properties: components: description: Components configures optional Kuadrant components properties: developerPortal: description: DeveloperPortal enables the developer portal integration including APIProduct and APIKeyRequest CRDs properties: enabled: type: boolean type: object type: object mtls: description: |- MTLS is an optional entry which when enabled is set to true, kuadrant-operator will add the configuration required to enable mTLS between an Istio provided gateway and the Kuadrant components. properties: authorino: type: boolean enable: type: boolean limitador: type: boolean type: object observability: description: |- Observability configures telemetry and monitoring settings for Kuadrant components. When enabled, it configures logging, tracing, and other observability features for both the control plane and data plane components. properties: dataPlane: description: DataPlane configures observability settings for the data plane components. properties: defaultLevels: description: |- DefaultLevels specifies the default logging levels and their activation predicates. Each entry defines a log level (debug, info, warn, error) and an optional CEL expression that determines when that level should be active for a given request. items: description: |- LogLevel defines a logging level with its activation predicate Only one field should be set per LogLevel entry properties: debug: description: Debug level - highest verbosity type: string error: description: Error level - lowest verbosity type: string info: description: Info level type: string warn: description: Warn level type: string type: object type: array httpHeaderIdentifier: description: |- HTTPHeaderIdentifier specifies the HTTP header name used to identify and correlate requests in logs and traces (e.g., "x-request-id", "x-correlation-id"). If set, this header value will be included in log output for request correlation. type: string type: object enable: description: |- Enable controls whether observability features are active. When false, no additional logging or tracing configuration is applied. type: boolean tracing: description: Tracing configures distributed tracing for request flows through the system. properties: defaultEndpoint: description: |- DefaultEndpoint is the default URL of the tracing collector backend where spans should be sent. This endpoint is used by Auth (Authorino), RateLimiting (Limitador) and WASM services for exporting trace data. If tracing endpoints have been configured directly in Authorino or Limitador CRs, those take precedence over this default value. Note: Per-gateway overrides are not currently supported. type: string insecure: description: Insecure controls whether to skip TLS certificate verification. type: boolean type: object type: object type: object status: description: KuadrantStatus defines the observed state of Kuadrant properties: conditions: description: |- Represents the observations of a foo's current state. Known .status.conditions.type are: "Available" 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 mtlsAuthorino: description: Mtls Authorino reflects the mtls feature state regarding comms with authorino. type: boolean mtlsLimitador: description: Mtls Limitador reflects the mtls feature state regarding comms with limitador. type: boolean observedGeneration: description: ObservedGeneration reflects the generation of the most recently observed spec. format: int64 type: integer type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: Kuadrant listKind: KuadrantList plural: kuadrants singular: kuadrant conditions: - lastTransitionTime: "2026-03-18T16:54:24Z" message: no conflicts found reason: NoConflicts status: "True" type: NamesAccepted - lastTransitionTime: "2026-03-18T16:54:25Z" message: the initial names have been accepted reason: InitialNamesAccepted status: "True" type: Established storedVersions: - v1beta1