Skip to content

Commit 87389a9

Browse files
committed
release v0.12.0-rc.1
1 parent 7cdb7c0 commit 87389a9

11 files changed

Lines changed: 1042 additions & 8 deletions

charts/pulsar-resources-operator/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ type: application
3030
# This is the chart version. This version number should be incremented each time you make changes
3131
# to the chart and its templates, including the app version.
3232
# Versions are expected to follow Semantic Versioning (https://semver.org/)
33-
version: v0.9.2
33+
version: v0.12.0-rc.1
3434

3535
# This is the version number of the application being deployed. This version number should be
3636
# incremented each time you make changes to the application. Versions are not expected to
3737
# follow Semantic Versioning. They should reflect the version the application is using.
3838
# It is recommended to use it with quotes.
39-
appVersion: "v0.9.2"
39+
appVersion: "v0.12.0-rc.1"
4040

4141
# This is a semver range of compatible Kubernetes versions. Helm will validate the version
4242
# constraints when installing the chart and fail if the cluster runs an unsupported Kubernetes version

charts/pulsar-resources-operator/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Pulsar Resources Operator
22

3-
![Version: v0.9.1](https://img.shields.io/badge/Version-v0.9.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.9.1](https://img.shields.io/badge/AppVersion-v0.9.1-informational?style=flat-square)
3+
![Version: v0.12.0-rc.1](https://img.shields.io/badge/Version-v0.12.0-rc.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.12.0-rc.1](https://img.shields.io/badge/AppVersion-v0.12.0-rc.1-informational?style=flat-square)
44

55
## Installing the Chart
66

Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
# Copyright 2025 StreamNative
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
---
16+
apiVersion: apiextensions.k8s.io/v1
17+
kind: CustomResourceDefinition
18+
metadata:
19+
annotations:
20+
controller-gen.kubebuilder.io/version: v0.15.0
21+
name: apikeys.resource.streamnative.io
22+
spec:
23+
group: resource.streamnative.io
24+
names:
25+
categories:
26+
- streamnative
27+
- all
28+
kind: APIKey
29+
listKind: APIKeyList
30+
plural: apikeys
31+
singular: apikey
32+
scope: Namespaced
33+
versions:
34+
- additionalPrinterColumns:
35+
- jsonPath: .metadata.creationTimestamp
36+
name: AGE
37+
type: date
38+
- jsonPath: .status.conditions[?(@.type=="Ready")].status
39+
name: READY
40+
type: string
41+
name: v1alpha1
42+
schema:
43+
openAPIV3Schema:
44+
description: APIKey is the Schema for the APIKeys API
45+
properties:
46+
apiVersion:
47+
description: |-
48+
APIVersion defines the versioned schema of this representation of an object.
49+
Servers should convert recognized schemas to the latest internal value, and
50+
may reject unrecognized values.
51+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
52+
type: string
53+
kind:
54+
description: |-
55+
Kind is a string value representing the REST resource this object represents.
56+
Servers may infer this from the endpoint the client submits requests to.
57+
Cannot be updated.
58+
In CamelCase.
59+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
60+
type: string
61+
metadata:
62+
type: object
63+
spec:
64+
description: APIKeySpec defines the desired state of APIKey
65+
properties:
66+
apiServerRef:
67+
description: APIServerRef is the reference to the StreamNativeCloudConnection
68+
properties:
69+
name:
70+
default: ""
71+
description: |-
72+
Name of the referent.
73+
This field is effectively required, but due to backwards compatibility is
74+
allowed to be empty. Instances of this type with an empty value here are
75+
almost certainly wrong.
76+
TODO: Add other useful fields. apiVersion, kind, uid?
77+
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
78+
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
79+
type: string
80+
type: object
81+
x-kubernetes-map-type: atomic
82+
description:
83+
description: Description is a user defined description of the key
84+
type: string
85+
encryptionKey:
86+
description: EncryptionKey contains the public key used to encrypt
87+
the token
88+
properties:
89+
pem:
90+
description: PEM is the public key in PEM format
91+
type: string
92+
type: object
93+
x-kubernetes-map-type: atomic
94+
expirationTime:
95+
description: |-
96+
ExpirationTime is a timestamp that defines when this API key will expire
97+
This can only be set on initial creation and not updated later
98+
format: date-time
99+
type: string
100+
exportPlaintextToken:
101+
description: ExportPlaintextToken indicates whether the token should
102+
be exported in plaintext
103+
type: boolean
104+
instanceName:
105+
description: InstanceName is the name of the instance this API key
106+
is for
107+
type: string
108+
revoke:
109+
description: Revoke indicates whether this API key should be revoked
110+
type: boolean
111+
serviceAccountName:
112+
description: ServiceAccountName is the name of the service account
113+
this API key is for
114+
type: string
115+
required:
116+
- apiServerRef
117+
type: object
118+
status:
119+
description: APIKeyStatus defines the observed state of APIKey
120+
properties:
121+
conditions:
122+
description: Conditions represent the latest available observations
123+
of an object's state
124+
items:
125+
description: "Condition contains details for one aspect of the current
126+
state of this API Resource.\n---\nThis struct is intended for
127+
direct use as an array at the field path .status.conditions. For
128+
example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
129+
observations of a foo's current state.\n\t // Known .status.conditions.type
130+
are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
131+
+patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
132+
\ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
133+
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
134+
\ // other fields\n\t}"
135+
properties:
136+
lastTransitionTime:
137+
description: |-
138+
lastTransitionTime is the last time the condition transitioned from one status to another.
139+
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
140+
format: date-time
141+
type: string
142+
message:
143+
description: |-
144+
message is a human readable message indicating details about the transition.
145+
This may be an empty string.
146+
maxLength: 32768
147+
type: string
148+
observedGeneration:
149+
description: |-
150+
observedGeneration represents the .metadata.generation that the condition was set based upon.
151+
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
152+
with respect to the current state of the instance.
153+
format: int64
154+
minimum: 0
155+
type: integer
156+
reason:
157+
description: |-
158+
reason contains a programmatic identifier indicating the reason for the condition's last transition.
159+
Producers of specific condition types may define expected values and meanings for this field,
160+
and whether the values are considered a guaranteed API.
161+
The value should be a CamelCase string.
162+
This field may not be empty.
163+
maxLength: 1024
164+
minLength: 1
165+
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
166+
type: string
167+
status:
168+
description: status of the condition, one of True, False, Unknown.
169+
enum:
170+
- "True"
171+
- "False"
172+
- Unknown
173+
type: string
174+
type:
175+
description: |-
176+
type of condition in CamelCase or in foo.example.com/CamelCase.
177+
---
178+
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
179+
useful (see .node.status.conditions), the ability to deconflict is important.
180+
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
181+
maxLength: 316
182+
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])$
183+
type: string
184+
required:
185+
- lastTransitionTime
186+
- message
187+
- reason
188+
- status
189+
- type
190+
type: object
191+
type: array
192+
encryptedToken:
193+
description: EncryptedToken is the encrypted security token issued
194+
for the key
195+
properties:
196+
jwe:
197+
description: |-
198+
JWE is the token as a JSON Web Encryption (JWE) message
199+
For RSA public keys, the key encryption algorithm is RSA-OAEP, and the content encryption algorithm is AES GCM
200+
type: string
201+
type: object
202+
x-kubernetes-map-type: atomic
203+
expiresAt:
204+
description: ExpiresAt is a timestamp of when the key expires
205+
format: date-time
206+
type: string
207+
issuedAt:
208+
description: IssuedAt is a timestamp of when the key was issued
209+
format: date-time
210+
type: string
211+
keyId:
212+
description: KeyID is a generated field that is a uid for the token
213+
type: string
214+
observedGeneration:
215+
description: ObservedGeneration is the last observed generation
216+
format: int64
217+
type: integer
218+
revokedAt:
219+
description: RevokedAt is a timestamp of when the key was revoked,
220+
it triggers revocation action
221+
format: date-time
222+
type: string
223+
token:
224+
description: Token is the plaintext security token issued for the
225+
key
226+
type: string
227+
type: object
228+
type: object
229+
served: true
230+
storage: true
231+
subresources:
232+
status: {}

charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarconnections.yaml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -224,15 +224,18 @@ spec:
224224
ClusterName specifies the name of the local Pulsar cluster.
225225
When setting up Geo-Replication between Pulsar instances, this should be enabled to identify the cluster.
226226
type: string
227+
tlsAllowInsecureConnection:
228+
description: TLSAllowInsecureConnection indicates whether to allow
229+
insecure connection to the broker.
230+
type: boolean
227231
tlsEnableHostnameVerification:
228-
description: TLSEnableHostnameVerification indicates whether to verify the hostname of the broker.
232+
description: |-
233+
TLSEnableHostnameVerification indicates whether to verify the hostname of the broker.
229234
Only used when using secure urls.
230235
type: boolean
231-
tlsAllowInsecureConnection:
232-
description: TLSAllowInsecureConnection indicates whether to allow insecure connection to the broker.
233-
type: boolean
234236
tlsTrustCertsFilePath:
235-
description: TLSTrustCertsFilePath Path for the TLS certificate used to validate the broker endpoint when using TLS.
237+
description: TLSTrustCertsFilePath Path for the TLS certificate used
238+
to validate the broker endpoint when using TLS.
236239
type: string
237240
type: object
238241
status:

charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsargeoreplications.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,54 @@ spec:
5454
spec:
5555
description: PulsarGeoReplicationSpec defines the desired state of PulsarGeoReplication
5656
properties:
57+
clusterParamsOverride:
58+
description: |-
59+
ClusterParamsOverride allows overriding specific cluster parameters when setting up
60+
geo-replication. This is useful when the destination cluster requires different
61+
configuration than what's defined in the DestinationConnectionRef.
62+
properties:
63+
authentication:
64+
description: |-
65+
Authentication overrides the authentication configuration for the cluster.
66+
When this field is set, the secret update check will be skipped for this geo-replication.
67+
properties:
68+
authParameters:
69+
description: |-
70+
AuthParameters contains the authentication parameters as a string.
71+
Format depends on the AuthPlugin:
72+
- For Token: "token:your-token-here"
73+
- For Token: "file://your-token-file-path-on-brokers"
74+
- For OAuth2: JSON string with client credentials
75+
type: string
76+
authPlugin:
77+
description: |-
78+
AuthPlugin specifies the authentication plugin class name
79+
Common values: "org.apache.pulsar.client.impl.auth.AuthenticationToken",
80+
"org.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2"
81+
type: string
82+
type: object
83+
brokerClientTrustCertsFilePath:
84+
description: |-
85+
BrokerClientTrustCertsFilePath overrides the file path to the trusted TLS certificate
86+
for outgoing connections to Pulsar brokers
87+
type: string
88+
brokerServiceSecureURL:
89+
description: BrokerServiceSecureURL overrides the TLS-enabled
90+
URL for secure connections to Pulsar brokers
91+
type: string
92+
brokerServiceURL:
93+
description: BrokerServiceURL overrides the non-TLS URL for connecting
94+
to Pulsar brokers
95+
type: string
96+
serviceSecureURL:
97+
description: ServiceSecureURL overrides the HTTPS URL for secure
98+
connections to the Pulsar admin service
99+
type: string
100+
serviceURL:
101+
description: ServiceURL overrides the HTTP(S) URL for the Pulsar
102+
cluster's admin service
103+
type: string
104+
type: object
57105
connectionRef:
58106
description: ConnectionRef is the reference to the source PulsarConnection
59107
properties:

charts/pulsar-resources-operator/crds/resource.streamnative.io_pulsarnamespaces.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,50 @@ spec:
238238
Should be set in conjunction with RetentionSize for effective retention policy.
239239
Retention Quota must exceed configured backlog quota for namespace
240240
type: string
241+
schemaCompatibilityStrategy:
242+
description: |-
243+
SchemaCompatibilityStrategy defines the schema compatibility strategy for this namespace.
244+
If not specified, the cluster's default schema compatibility strategy will be used.
245+
This setting controls how schema evolution is handled for topics within this namespace.
246+
enum:
247+
- UNDEFINED
248+
- ALWAYS_INCOMPATIBLE
249+
- ALWAYS_COMPATIBLE
250+
- BACKWARD
251+
- FORWARD
252+
- FULL
253+
- BACKWARD_TRANSITIVE
254+
- FORWARD_TRANSITIVE
255+
- FULL_TRANSITIVE
256+
type: string
257+
schemaValidationEnforced:
258+
description: |-
259+
SchemaValidationEnforced controls whether schema validation is enforced for this namespace.
260+
When enabled, producers must provide a schema when publishing messages.
261+
If not specified, the cluster's default schema validation enforcement setting will be used.
262+
type: boolean
263+
topicAutoCreationConfig:
264+
description: |-
265+
TopicAutoCreationConfig controls whether automatic topic creation is allowed in this namespace
266+
and configures properties of automatically created topics
267+
properties:
268+
allow:
269+
description: Allow specifies whether to allow automatic topic
270+
creation
271+
type: boolean
272+
partitions:
273+
description: Partitions specifies the default number of partitions
274+
for automatically created topics
275+
format: int32
276+
type: integer
277+
type:
278+
description: Type specifies the type of automatically created
279+
topics
280+
enum:
281+
- partitioned
282+
- non-partitioned
283+
type: string
284+
type: object
241285
required:
242286
- connectionRef
243287
- name

0 commit comments

Comments
 (0)