diff --git a/charts/pulsar-resources-operator/Chart.yaml b/charts/pulsar-resources-operator/Chart.yaml index 72c327e..d8b3e09 100644 --- a/charts/pulsar-resources-operator/Chart.yaml +++ b/charts/pulsar-resources-operator/Chart.yaml @@ -30,13 +30,13 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: v0.5.7 +version: v0.6.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.5.7" +appVersion: "v0.6.0" # This is a semver range of compatible Kubernetes versions. Helm will validate the version # constraints when installing the chart and fail if the cluster runs an unsupported Kubernetes version diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarconnections.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarconnections.yaml index b8ce0ad..08fabb5 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarconnections.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarconnections.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarconnections.resource.streamnative.io spec: group: resource.streamnative.io @@ -62,7 +63,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: PulsarConnection is the Schema for the pulsarconnections API + description: |- + PulsarConnection is the Schema for the pulsarconnections API + It represents a connection to a Pulsar cluster and includes both the desired state (Spec) + and the observed state (Status) of the connection. properties: apiVersion: description: |- @@ -82,34 +86,63 @@ spec: metadata: type: object spec: - description: PulsarConnectionSpec defines the desired state of PulsarConnection + description: |- + PulsarConnectionSpec defines the desired state of PulsarConnection + It specifies the configuration for connecting to a Pulsar cluster. + + + For plaintext (non-TLS) Pulsar clusters: + - Set AdminServiceURL to "http://:" + - Set BrokerServiceURL to "pulsar://:" + + + For TLS-enabled Pulsar clusters: + - Set AdminServiceSecureURL to "https://:" + - Set BrokerServiceSecureURL to "pulsar+ssl://:" + - Optionally set BrokerClientTrustCertsFilePath if using custom CA certificates properties: adminServiceSecureURL: - description: AdminServiceSecureURL is the admin service url for secure - connection. + description: |- + AdminServiceSecureURL is the HTTPS URL for secure connections to the Pulsar admin service. + Use this for encrypted administrative operations. pattern: ^https://.+$ type: string adminServiceURL: - description: AdminServiceURL is the admin service url of the pulsar - cluster + description: |- + AdminServiceURL is the HTTP(S) URL for the Pulsar cluster's admin service. + This URL is used for administrative operations. pattern: ^https?://.+$ type: string authentication: - description: Authentication defines authentication configurations + description: |- + Authentication defines the authentication configuration for connecting to the Pulsar cluster. + It supports both token-based and OAuth2-based authentication methods. properties: oauth2: - description: PulsarAuthenticationOAuth2 indicates the parameters - which are need by pulsar OAuth2 + description: |- + OAuth2 specifies the configuration for OAuth2-based authentication. + This includes all necessary parameters for setting up OAuth2 authentication with Pulsar. + For detailed information on the OAuth2 fields, refer to the PulsarAuthenticationOAuth2 struct. properties: audience: + description: |- + Audience is the intended recipient of the token. In Pulsar's context, this is usually + the URL of your Pulsar cluster or a specific identifier for your Pulsar service. type: string clientID: + description: ClientID is the OAuth2 client identifier issued + to the client during the registration process. type: string issuerEndpoint: + description: |- + IssuerEndpoint is the URL of the OAuth2 authorization server. + This is typically the base URL of your identity provider's OAuth2 service. type: string key: - description: ValueOrSecretRef is a string or a secret reference - of the authentication + description: |- + Key is either the client secret or the path to a JSON credentials file. + For confidential clients, this would be the client secret. + For public clients using JWT authentication, this would be the path to the JSON credentials file. properties: secretRef: description: SecretKeyRef indicates a secret name and @@ -127,6 +160,9 @@ spec: type: string type: object scope: + description: |- + Scope is an optional field to request specific permissions from the OAuth2 server. + If not specified, the default scope defined by the OAuth2 server will be used. type: string required: - audience @@ -135,8 +171,10 @@ spec: - key type: object token: - description: ValueOrSecretRef is a string or a secret reference - of the authentication + description: |- + Token specifies the configuration for token-based authentication. + This can be either a direct token value or a reference to a secret containing the token. + If using a secret, the token should be stored under the specified key in the secret. properties: secretRef: description: SecretKeyRef indicates a secret name and key @@ -154,48 +192,49 @@ spec: type: object type: object brokerClientTrustCertsFilePath: - description: BrokerClientTrustCertsFilePath Path for the trusted TLS - certificate file for outgoing connection to a server (broker) + description: |- + BrokerClientTrustCertsFilePath is the file path to the trusted TLS certificate + for outgoing connections to Pulsar brokers. This is used for TLS verification. type: string brokerServiceSecureURL: - description: BrokerServiceSecureURL is the broker service url for - secure connection. + description: |- + BrokerServiceSecureURL is the TLS-enabled URL for secure connections to Pulsar brokers. + Use this for encrypted communications with the Pulsar cluster. pattern: ^pulsar\+ssl://.+$ type: string brokerServiceURL: - description: BrokerServiceURL is the broker service url of the pulsar - cluster + description: |- + BrokerServiceURL is the non-TLS URL for connecting to Pulsar brokers. + Use this for non-secure connections to the Pulsar cluster. pattern: ^pulsar?://.+$ type: string clusterName: description: |- - ClusterName indicates the local cluster name of the pulsar cluster. It should - set when enabling the Geo Replication + ClusterName specifies the name of the local Pulsar cluster. + When setting up Geo-Replication between Pulsar instances, this should be enabled to identify the cluster. type: string type: object status: - description: PulsarConnectionStatus defines the observed state of PulsarConnection + description: |- + PulsarConnectionStatus defines the observed state of PulsarConnection. + It provides information about the current status of the Pulsar connection. properties: conditions: - description: Represents the observations of a connection's current - state. + description: |- + Conditions represent the latest available observations of the connection's current state. + It follows the Kubernetes conventions for condition types and status. + The "Ready" condition type is typically used to indicate the overall status. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -260,10 +299,14 @@ spec: description: |- ObservedGeneration is the most recent generation observed for this resource. It corresponds to the metadata generation, which is updated on mutation by the API Server. + This field is used to track whether the controller has processed the latest changes. format: int64 type: integer secretKeyHash: - description: SecretKeyHash is the hash of the secret ref + description: |- + SecretKeyHash is the hash of the secret reference used for authentication. + This is used to detect changes in the secret without exposing sensitive information. + The controller should update this hash when the secret changes. type: string type: object type: object @@ -271,3 +314,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarfunctions.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarfunctions.yaml index 0b63ecf..1395acb 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarfunctions.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarfunctions.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarfunctions.resource.streamnative.io spec: group: resource.streamnative.io @@ -197,9 +198,10 @@ spec: type: object lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + PulsarResourceLifeCyclePolicy defines the behavior for managing Pulsar resources + when the corresponding custom resource (CR) is deleted from the Kubernetes cluster. + This policy allows users to control whether Pulsar resources should be retained or + removed from the Pulsar cluster after the CR is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion @@ -380,22 +382,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -468,3 +464,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsargeoreplications.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsargeoreplications.yaml index 03c7d2d..fb66893 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsargeoreplications.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsargeoreplications.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsargeoreplications.resource.streamnative.io spec: group: resource.streamnative.io @@ -79,9 +80,10 @@ spec: x-kubernetes-map-type: atomic lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + PulsarResourceLifeCyclePolicy defines the behavior for managing Pulsar resources + when the corresponding custom resource (CR) is deleted from the Kubernetes cluster. + This policy allows users to control whether Pulsar resources should be retained or + removed from the Pulsar cluster after the CR is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion @@ -98,22 +100,16 @@ spec: description: Conditions Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -186,3 +182,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarnamespaces.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarnamespaces.yaml index d2bd07f..9b23349 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarnamespaces.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarnamespaces.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarnamespaces.resource.streamnative.io spec: group: resource.streamnative.io @@ -49,7 +50,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: PulsarNamespace is the Schema for the pulsarnamespaces API + description: |- + PulsarNamespace is the Schema for the pulsarnamespaces API + It represents a Pulsar namespace in the Kubernetes cluster and includes both + the desired state (Spec) and the observed state (Status) of the namespace. properties: apiVersion: description: |- @@ -69,36 +73,47 @@ spec: metadata: type: object spec: - description: PulsarNamespaceSpec defines the desired state of PulsarNamespace + description: |- + PulsarNamespaceSpec defines the desired state of a Pulsar namespace. + It corresponds to the configuration options available in Pulsar's namespace admin API. properties: backlogQuotaLimitSize: anyOf: - type: integer - type: string + description: |- + BacklogQuotaLimitSize specifies the size limit for message backlog. + When the limit is reached, older messages will be removed or handled according to the retention policy. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true backlogQuotaLimitTime: description: |- - Backlog - Should set at least one of them if setting backlog + BacklogQuotaLimitTime specifies the time limit for message backlog. + Messages older than this limit will be removed or handled according to the retention policy. type: string backlogQuotaRetentionPolicy: + description: |- + BacklogQuotaRetentionPolicy specifies the retention policy for messages when backlog quota is exceeded. + Valid values are "producer_request_hold", "producer_exception", or "consumer_backlog_eviction". type: string backlogQuotaType: description: |- - BacklogQuotaType controls the backlog by setting the type to destination_storage or message_age - destination_storage limits backlog by size (in bytes). message_age limits backlog by time, - that is, message timestamp (broker or publish timestamp) + BacklogQuotaType controls how the backlog quota is enforced. + "destination_storage" limits backlog by size (in bytes), while "message_age" limits by time. enum: - destination_storage - message_age type: string bundles: + description: |- + Bundles specifies the number of bundles to split the namespace into. + This affects how the namespace is distributed across the cluster. format: int32 type: integer connectionRef: - description: ConnectionRef is the reference to the PulsarConnection - resource + description: |- + ConnectionRef is the reference to the PulsarConnection resource + used to connect to the Pulsar cluster for this namespace. properties: name: description: |- @@ -109,8 +124,12 @@ spec: type: object x-kubernetes-map-type: atomic geoReplicationRefs: - description: GeoReplicationRefs is the reference list to the PulsarGeoReplication - resource + description: |- + GeoReplicationRefs is a list of references to PulsarGeoReplication resources, + used to configure geo-replication for this namespace. + This is **ONLY** used when you are using PulsarGeoReplication for setting up geo-replication + between two Pulsar instances. + Please use `ReplicationClusters` instead if you are replicating clusters within the same Pulsar instance. items: description: |- LocalObjectReference contains enough information to let you locate the @@ -127,32 +146,56 @@ spec: type: array lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + LifecyclePolicy determines whether to keep or delete the Pulsar namespace + when the Kubernetes resource is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion type: string maxConsumersPerSubscription: + description: MaxConsumersPerSubscription sets the maximum number of + consumers allowed on a single subscription in the namespace. format: int32 type: integer maxConsumersPerTopic: + description: MaxConsumersPerTopic sets the maximum number of consumers + allowed on a single topic in the namespace. format: int32 type: integer maxProducersPerTopic: - description: Tenant Policy Setting + description: MaxProducersPerTopic sets the maximum number of producers + allowed on a single topic in the namespace. format: int32 type: integer messageTTL: - description: MessageTTL indicates the message ttl for the namespace + description: |- + MessageTTL specifies the Time to Live (TTL) for messages in the namespace. + Messages older than this TTL will be automatically marked as consumed. type: string name: - description: Name is the namespace name + description: Name is the fully qualified namespace name in the format + "tenant/namespace". + type: string + offloadThresholdSize: + anyOf: + - type: integer + - type: string + description: |- + OffloadThresholdSize specifies the size limit for message offloading. + When the limit is reached, older messages will be offloaded to the tiered storage. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + offloadThresholdTime: + description: |- + OffloadThresholdTime specifies the time limit for message offloading. + Messages older than this limit will be offloaded to the tiered storage. type: string replicationClusters: - description: ReplicationClusters is the list of clusters to which - the namespace is replicated + description: |- + ReplicationClusters is the list of clusters to which the namespace is replicated + This is **ONLY** used if you are replicating clusters within the same Pulsar instance. + Please use `GeoReplicationRefs` instead if you are setting up geo-replication + between two Pulsar instances. items: type: string type: array @@ -160,12 +203,15 @@ spec: anyOf: - type: integer - type: string + description: |- + RetentionSize specifies the maximum size of backlog retained in the namespace. + Should be set in conjunction with RetentionTime for effective retention policy. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true retentionTime: description: |- - Retention - Should set at least one of them if setting retention + RetentionTime specifies the minimum time to retain messages in the namespace. + Should be set in conjunction with RetentionSize for effective retention policy. Retention Quota must exceed configured backlog quota for namespace type: string required: @@ -176,25 +222,21 @@ spec: description: PulsarNamespaceStatus defines the observed state of PulsarNamespace properties: conditions: - description: Represents the observations of a connection's current - state. + description: |- + Conditions represent the latest available observations of the namespace's current state. + It follows the Kubernetes conventions for condition types and status. + The "Ready" condition type is typically used to indicate the overall status of the namespace. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -256,13 +298,15 @@ spec: - type x-kubernetes-list-type: map geoReplicationEnabled: - description: GeoReplicationEnabled indicates whether geo-replication + description: |- + GeoReplicationEnabled indicates whether geo-replication between two Pulsar instances (via PulsarGeoReplication) is enabled for the namespace type: boolean observedGeneration: description: |- ObservedGeneration is the most recent generation observed for this resource. It corresponds to the metadata generation, which is updated on mutation by the API Server. + This field is used to track whether the controller has processed the latest changes. format: int64 type: integer type: object @@ -271,3 +315,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpackages.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpackages.yaml index eb3b62b..c82c119 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpackages.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpackages.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarpackages.resource.streamnative.io spec: group: resource.streamnative.io @@ -94,9 +95,10 @@ spec: type: string lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + PulsarResourceLifeCyclePolicy defines the behavior for managing Pulsar resources + when the corresponding custom resource (CR) is deleted from the Kubernetes cluster. + This policy allows users to control whether Pulsar resources should be retained or + removed from the Pulsar cluster after the CR is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion @@ -120,22 +122,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -208,3 +204,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpermissions.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpermissions.yaml index 2ab0707..18b29d6 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpermissions.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarpermissions.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarpermissions.resource.streamnative.io spec: group: resource.streamnative.io @@ -58,7 +59,9 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: PulsarPermission is the Schema for the pulsarpermissions API + description: |- + PulsarPermission is the Schema for the pulsarpermissions API. + It represents a set of permissions granted to specific roles for a Pulsar resource (namespace or topic). properties: apiVersion: description: |- @@ -78,18 +81,21 @@ spec: metadata: type: object spec: - description: PulsarPermissionSpec defines the desired state of PulsarPermission + description: |- + PulsarPermissionSpec defines the desired state of PulsarPermission. + It specifies the configuration for granting permissions to Pulsar resources. properties: actions: description: |- - Actions contains a list of action to grant. - the options include produce,consume,functions + Actions is a list of permissions to grant. + Valid options include "produce", "consume", and "functions". items: type: string type: array connectionRef: - description: ConnectionRef is the reference to the PulsarConnection - resource + description: |- + ConnectionRef is the reference to the PulsarConnection resource + used to connect to the Pulsar cluster for this permission. properties: name: description: |- @@ -101,24 +107,25 @@ spec: x-kubernetes-map-type: atomic lifecyclePolicy: description: |- - LifecyclePolicy is the policy that how to deal with pulsar resource when - PulsarPermission is deleted + LifecyclePolicy determines how to handle the Pulsar permissions + when the PulsarPermission resource is deleted. type: string resourceName: - description: ResourceName name of the target resource which will be - granted the permssions + description: |- + ResourceName is the name of the target resource (namespace or topic) + to which the permissions will be granted. type: string resourceType: - description: ResourceType indicates the resource type, the options - include namespace and topic + description: ResourceType indicates whether the permission is for + a namespace or a topic. enum: - namespace - topic type: string roles: description: |- - Roles contains a list of role which will be granted the same permissions - for the same target + Roles is a list of role names that will be granted the specified permissions + for the target resource. items: type: string type: array @@ -129,28 +136,26 @@ spec: - roles type: object status: - description: PulsarPermissionStatus defines the observed state of PulsarPermission + description: |- + PulsarPermissionStatus defines the observed state of PulsarPermission. + It provides information about the current status of the Pulsar permission configuration. properties: conditions: - description: Represents the observations of a connection's current - state. + description: |- + Conditions represent the latest available observations of the PulsarPermission's current state. + It follows the Kubernetes conventions for condition types and status. + The "Ready" condition type is typically used to indicate the overall status of the permission configuration. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -215,6 +220,7 @@ spec: description: |- ObservedGeneration is the most recent generation observed for this resource. It corresponds to the metadata generation, which is updated on mutation by the API Server. + This field is used to track whether the controller has processed the latest changes. format: int64 type: integer type: object @@ -223,3 +229,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsinks.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsinks.yaml index e5cffe7..2babfbc 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsinks.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsinks.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarsinks.resource.streamnative.io spec: group: resource.streamnative.io @@ -161,9 +162,10 @@ spec: type: array lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + PulsarResourceLifeCyclePolicy defines the behavior for managing Pulsar resources + when the corresponding custom resource (CR) is deleted from the Kubernetes cluster. + This policy allows users to control whether Pulsar resources should be retained or + removed from the Pulsar cluster after the CR is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion @@ -287,22 +289,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -375,3 +371,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsources.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsources.yaml index 73a3594..8ddc653 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsources.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarsources.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarsources.resource.streamnative.io spec: group: resource.streamnative.io @@ -112,9 +113,10 @@ spec: x-kubernetes-preserve-unknown-fields: true lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + PulsarResourceLifeCyclePolicy defines the behavior for managing Pulsar resources + when the corresponding custom resource (CR) is deleted from the Kubernetes cluster. + This policy allows users to control whether Pulsar resources should be retained or + removed from the Pulsar cluster after the CR is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion @@ -216,22 +218,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -304,3 +300,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartenants.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartenants.yaml index d4d83ba..772e689 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartenants.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartenants.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsartenants.resource.streamnative.io spec: group: resource.streamnative.io @@ -69,19 +70,30 @@ spec: metadata: type: object spec: - description: PulsarTenantSpec defines the desired state of PulsarTenant + description: |- + PulsarTenantSpec defines the desired state of PulsarTenant. + It corresponds to the configuration options available in Pulsar's tenant admin API. properties: adminRoles: + description: |- + AdminRoles is a list of roles that have administrative privileges for this tenant. + These roles can perform actions like creating namespaces, topics, and managing permissions. items: type: string type: array allowedClusters: + description: |- + AllowedClusters is a list of clusters that this tenant is allowed to access. + This field is optional and can be used to restrict the clusters a tenant can connect to. + Please use `GeoReplicationRefs` instead if you are setting up geo-replication + between multiple Pulsar instances. items: type: string type: array connectionRef: - description: ConnectionRef is the reference to the PulsarConnection - resource + description: |- + ConnectionRef is the reference to the PulsarConnection resource + used to connect to the Pulsar cluster for this tenant. properties: name: description: |- @@ -92,8 +104,13 @@ spec: type: object x-kubernetes-map-type: atomic geoReplicationRefs: - description: GeoReplicationRefs is the reference list to the PulsarGeoReplication - resource + description: |- + GeoReplicationRefs is a list of references to PulsarGeoReplication resources, + used to configure geo-replication for this tenant across multiple Pulsar instances. + This is **ONLY** used when you are using PulsarGeoReplication for setting up geo-replication + between multiple Pulsar instances. + Please use `AllowedClusters` instead if you are allowing a tenant to be available within + specific clusters in a same Pulsar instance. items: description: |- LocalObjectReference contains enough information to let you locate the @@ -110,43 +127,43 @@ spec: type: array lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + LifecyclePolicy determines whether to keep or delete the Pulsar tenant + when the Kubernetes resource is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion type: string name: - description: Name is the tenant name + description: |- + Name is the tenant name. + This field is required and must be unique within the Pulsar cluster. type: string required: - connectionRef - name type: object status: - description: PulsarTenantStatus defines the observed state of PulsarTenant + description: |- + PulsarTenantStatus defines the observed state of PulsarTenant. + It contains information about the current state of the Pulsar tenant. properties: conditions: - description: Represents the observations of a connection's current - state. + description: |- + Conditions represent the latest available observations of the PulsarTenant's current state. + It follows the Kubernetes conventions for condition types and status. + The "Ready" condition type is typically used to indicate the overall status of the tenant. + Other condition types may be used to provide more detailed status information. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -211,6 +228,7 @@ spec: description: |- ObservedGeneration is the most recent generation observed for this resource. It corresponds to the metadata generation, which is updated on mutation by the API Server. + This field is used to track whether the controller has processed the latest changes. format: int64 type: integer type: object @@ -219,3 +237,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartopics.yaml b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartopics.yaml index c86fc99..14f2a93 100644 --- a/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartopics.yaml +++ b/charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsartopics.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsartopics.resource.streamnative.io spec: group: resource.streamnative.io @@ -52,7 +53,10 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: PulsarTopic is the Schema for the pulsartopics API + description: |- + PulsarTopic is the Schema for the pulsartopics API + It represents a Pulsar topic in the Kubernetes cluster and includes both + the desired state (Spec) and the observed state (Status) of the topic. properties: apiVersion: description: |- @@ -72,24 +76,33 @@ spec: metadata: type: object spec: - description: PulsarTopicSpec defines the desired state of PulsarTopic + description: |- + PulsarTopicSpec defines the desired state of PulsarTopic. + It corresponds to the configuration options available in Pulsar's topic admin API. properties: backlogQuotaLimitSize: anyOf: - type: integer - type: string + description: |- + BacklogQuotaLimitSize specifies the size limit for message backlog. + When the limit is reached, older messages will be removed or handled according to the retention policy. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true backlogQuotaLimitTime: description: |- - Backlog - Should set at least one of them if setting backlog + BacklogQuotaLimitTime specifies the time limit for message backlog. + Messages older than this limit will be removed or handled according to the retention policy. type: string backlogQuotaRetentionPolicy: + description: |- + BacklogQuotaRetentionPolicy specifies the retention policy for messages when backlog quota is exceeded. + Valid values are "producer_request_hold", "producer_exception", or "consumer_backlog_eviction". type: string connectionRef: - description: ConnectionRef is the reference to the PulsarConnection - resource + description: |- + ConnectionRef is the reference to the PulsarConnection resource + used to connect to the Pulsar cluster for this topic. properties: name: description: |- @@ -100,8 +113,11 @@ spec: type: object x-kubernetes-map-type: atomic geoReplicationRefs: - description: GeoReplicationRefs is the reference list to the PulsarGeoReplication - resource + description: |- + GeoReplicationRefs is a list of references to PulsarGeoReplication resources, + used to configure geo-replication for this topic across multiple Pulsar instances. + This is **ONLY** used when you are using PulsarGeoReplication for setting up geo-replication + between two Pulsar instances. items: description: |- LocalObjectReference contains enough information to let you locate the @@ -118,68 +134,103 @@ spec: type: array lifecyclePolicy: description: |- - PulsarResourceLifeCyclePolicy indicates whether it will keep or delete the resource - in pulsar cluster after resource is deleted by controller - KeepAfterDeletion or CleanUpAfterDeletion + LifecyclePolicy determines whether to keep or delete the Pulsar topic + when the Kubernetes resource is deleted. enum: - CleanUpAfterDeletion - KeepAfterDeletion type: string maxConsumers: + description: MaxConsumers sets the maximum number of consumers allowed + on the topic. format: int32 type: integer maxProducers: - description: Topic Policy Setting + description: MaxProducers sets the maximum number of producers allowed + on the topic. format: int32 type: integer maxUnAckedMessagesPerConsumer: - description: Max unacked messages + description: |- + MaxUnAckedMessagesPerConsumer sets the maximum number of unacknowledged + messages allowed for a consumer before it's blocked from receiving more messages. format: int32 type: integer maxUnAckedMessagesPerSubscription: + description: |- + MaxUnAckedMessagesPerSubscription sets the maximum number of unacknowledged + messages allowed for a subscription before it's blocked from receiving more messages. format: int32 type: integer messageTTL: - description: MessageTTL indicates the message ttl for the topic + description: |- + MessageTTL specifies the Time to Live (TTL) for messages on the topic. + Messages older than this TTL will be automatically marked as deleted. type: string name: description: Name is the topic name type: string partitions: default: 0 + description: |- + Partitions specifies the number of partitions for a partitioned topic. + Set to 0 for a non-partitioned topic. format: int32 type: integer persistent: default: true + description: |- + Persistent determines if the topic is persistent (true) or non-persistent (false). + Defaults to true if not specified. type: boolean + replicationClusters: + description: |- + ReplicationClusters is the list of clusters to which the topic is replicated + This is **ONLY** used if you are replicating clusters within the same Pulsar instance. + Please use `GeoReplicationRefs` instead if you are setting up geo-replication + between two Pulsar instances. + items: + type: string + type: array retentionSize: anyOf: - type: integer - type: string + description: |- + RetentionSize specifies the maximum size of backlog retained on the topic. + Should be set in conjunction with RetentionTime for effective retention policy. + Retention Quota must exceed configured backlog quota for topic pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true retentionTime: description: |- - Retention - Should set at least one of them if setting retention + RetentionTime specifies the minimum time to retain messages on the topic. + Should be set in conjunction with RetentionSize for effective retention policy. Retention Quota must exceed configured backlog quota for topic type: string schemaInfo: - description: |- - SchemaInfo defines the Pulsar Schema. - It is stored and enforced on a per-topic basis and cannot be stored at the namespace or tenant level. + description: SchemaInfo defines the schema for the topic, if any. properties: properties: additionalProperties: type: string - description: Properties is a user defined properties as a string/string - map + description: |- + Properties is a map of user-defined properties associated with the schema. + These can be used to store additional metadata about the schema. type: object schema: - description: Schema is schema data + description: |- + Schema contains the actual schema definition. + For AVRO and JSON schemas, this should be a JSON string of the schema definition. + For PROTOBUF schemas, this should be the protobuf definition string. + For BYTES or NONE schemas, this field can be empty. type: string type: - description: Type determines how to interpret the schema data + description: |- + Type determines how to interpret the schema data. + Valid values include: "AVRO", "JSON", "PROTOBUF", "PROTOBUF_NATIVE", "KEY_VALUE", "BYTES", or "NONE". + For KEY_VALUE schemas, use the format "KEY_VALUE(KeyType,ValueType)" where KeyType and ValueType + are one of the other schema types. type: string type: object required: @@ -190,25 +241,22 @@ spec: description: PulsarTopicStatus defines the observed state of PulsarTopic properties: conditions: - description: Represents the observations of a connection's current - state. + description: |- + Conditions represent the latest available observations of the PulsarTopic's current state. + It follows the Kubernetes conventions for condition types and status. + The "Ready" condition type indicates the overall status of the topic. + The "PolicyReady" condition type indicates whether the topic policies have been successfully applied. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -270,12 +318,15 @@ spec: - type x-kubernetes-list-type: map geoReplicationEnabled: - description: GeoReplicationEnabled + description: |- + GeoReplicationEnabled indicates whether geo-replication is enabled for this topic. + This is set to true when GeoReplicationRefs are configured in the spec and successfully applied. type: boolean observedGeneration: description: |- ObservedGeneration is the most recent generation observed for this resource. It corresponds to the metadata generation, which is updated on mutation by the API Server. + This field is used to track whether the controller has processed the latest changes. format: int64 type: integer type: object @@ -284,3 +335,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/charts/pulsar-resources-operator/templates/deployment.yaml b/charts/pulsar-resources-operator/templates/deployment.yaml index 4a1f287..952405c 100644 --- a/charts/pulsar-resources-operator/templates/deployment.yaml +++ b/charts/pulsar-resources-operator/templates/deployment.yaml @@ -48,6 +48,8 @@ spec: - --health-probe-bind-address=:8081 - --metrics-bind-address=127.0.0.1:8080 - --leader-elect + - --resync-period={{ .Values.features.resyncPeriod | default 10 }} + - --retry-count={{ .Values.features.retryCount | default 5 }} command: - /manager {{- if .Values.features.alwaysUpdatePulsarResource }} diff --git a/charts/pulsar-resources-operator/tests/deployment_test.yaml b/charts/pulsar-resources-operator/tests/deployment_test.yaml index 39d83aa..ac438b6 100644 --- a/charts/pulsar-resources-operator/tests/deployment_test.yaml +++ b/charts/pulsar-resources-operator/tests/deployment_test.yaml @@ -26,9 +26,6 @@ tests: - matchRegex: path: metadata.name pattern: -pulsar-resources-operator$ - - equal: - path: spec.template.spec.containers[0].image - value: docker.io/streamnative/pulsar-resources-operator:v0.5.7 - equal: path: spec.template.spec.containers[0].imagePullPolicy value: IfNotPresent @@ -42,11 +39,11 @@ tests: - it: should update the image version successfully set: - image.manager.tag: v0.5.7 + image.manager.tag: v0.6.0 asserts: - equal: path: spec.template.spec.containers[0].image - value: docker.io/streamnative/pulsar-resources-operator:v0.5.7 + value: docker.io/streamnative/pulsar-resources-operator:v0.6.0 - it: should update the replicas successfully set: diff --git a/charts/pulsar-resources-operator/values.yaml b/charts/pulsar-resources-operator/values.yaml index 47a8498..b555d6f 100644 --- a/charts/pulsar-resources-operator/values.yaml +++ b/charts/pulsar-resources-operator/values.yaml @@ -43,6 +43,10 @@ imagePullSecrets: [] features: # Enable to force always sync k8s resource status to pulsar. alwaysUpdatePulsarResource: false + # resyncPeriod determines the minimum frequency at which watched resources are reconciled. The unit is hour, default value is 10 hours. + resyncPeriod: 10 + # The number of retries in case of error. + retryCount: 5 # -- It will override the value of label `app.kubernetes.io/name` on pod nameOverride: "" diff --git a/config/crd/bases/resource.streamnative.io_pulsarconnections.yaml b/config/crd/bases/resource.streamnative.io_pulsarconnections.yaml index ba16256..08fabb5 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarconnections.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarconnections.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarconnections.resource.streamnative.io spec: group: resource.streamnative.io @@ -224,22 +225,16 @@ spec: It follows the Kubernetes conventions for condition types and status. The "Ready" condition type is typically used to indicate the overall status. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -319,3 +314,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsarfunctions.yaml b/config/crd/bases/resource.streamnative.io_pulsarfunctions.yaml index d7f2bb8..1395acb 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarfunctions.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarfunctions.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarfunctions.resource.streamnative.io spec: group: resource.streamnative.io @@ -381,22 +382,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -469,3 +464,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsargeoreplications.yaml b/config/crd/bases/resource.streamnative.io_pulsargeoreplications.yaml index 4870e67..fb66893 100644 --- a/config/crd/bases/resource.streamnative.io_pulsargeoreplications.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsargeoreplications.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsargeoreplications.resource.streamnative.io spec: group: resource.streamnative.io @@ -99,22 +100,16 @@ spec: description: Conditions Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -187,3 +182,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsarnamespaces.yaml b/config/crd/bases/resource.streamnative.io_pulsarnamespaces.yaml index f8aef44..9b23349 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarnamespaces.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarnamespaces.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarnamespaces.resource.streamnative.io spec: group: resource.streamnative.io @@ -175,6 +176,20 @@ spec: description: Name is the fully qualified namespace name in the format "tenant/namespace". type: string + offloadThresholdSize: + anyOf: + - type: integer + - type: string + description: |- + OffloadThresholdSize specifies the size limit for message offloading. + When the limit is reached, older messages will be offloaded to the tiered storage. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + offloadThresholdTime: + description: |- + OffloadThresholdTime specifies the time limit for message offloading. + Messages older than this limit will be offloaded to the tiered storage. + type: string replicationClusters: description: |- ReplicationClusters is the list of clusters to which the namespace is replicated @@ -212,22 +227,16 @@ spec: It follows the Kubernetes conventions for condition types and status. The "Ready" condition type is typically used to indicate the overall status of the namespace. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -306,3 +315,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsarpackages.yaml b/config/crd/bases/resource.streamnative.io_pulsarpackages.yaml index 0539160..c82c119 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarpackages.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarpackages.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarpackages.resource.streamnative.io spec: group: resource.streamnative.io @@ -121,22 +122,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -209,3 +204,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsarpermissions.yaml b/config/crd/bases/resource.streamnative.io_pulsarpermissions.yaml index 8505f07..18b29d6 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarpermissions.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarpermissions.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarpermissions.resource.streamnative.io spec: group: resource.streamnative.io @@ -145,22 +146,16 @@ spec: It follows the Kubernetes conventions for condition types and status. The "Ready" condition type is typically used to indicate the overall status of the permission configuration. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -234,3 +229,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsarsinks.yaml b/config/crd/bases/resource.streamnative.io_pulsarsinks.yaml index bbb0ef5..2babfbc 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarsinks.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarsinks.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarsinks.resource.streamnative.io spec: group: resource.streamnative.io @@ -288,22 +289,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -376,3 +371,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsarsources.yaml b/config/crd/bases/resource.streamnative.io_pulsarsources.yaml index c3deca9..8ddc653 100644 --- a/config/crd/bases/resource.streamnative.io_pulsarsources.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsarsources.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsarsources.resource.streamnative.io spec: group: resource.streamnative.io @@ -217,22 +218,16 @@ spec: description: Represents the observations of a connection's current state. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -305,3 +300,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsartenants.yaml b/config/crd/bases/resource.streamnative.io_pulsartenants.yaml index a098576..772e689 100644 --- a/config/crd/bases/resource.streamnative.io_pulsartenants.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsartenants.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsartenants.resource.streamnative.io spec: group: resource.streamnative.io @@ -153,22 +154,16 @@ spec: The "Ready" condition type is typically used to indicate the overall status of the tenant. Other condition types may be used to provide more detailed status information. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -242,3 +237,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file diff --git a/config/crd/bases/resource.streamnative.io_pulsartopics.yaml b/config/crd/bases/resource.streamnative.io_pulsartopics.yaml index b205f16..14f2a93 100644 --- a/config/crd/bases/resource.streamnative.io_pulsartopics.yaml +++ b/config/crd/bases/resource.streamnative.io_pulsartopics.yaml @@ -18,6 +18,7 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 + creationTimestamp: null name: pulsartopics.resource.streamnative.io spec: group: resource.streamnative.io @@ -246,22 +247,16 @@ spec: The "Ready" condition type indicates the overall status of the topic. The "PolicyReady" condition type indicates whether the topic policies have been successfully applied. items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: description: |- @@ -340,3 +335,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null \ No newline at end of file