Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
# Copyright 2025 StreamNative
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: apikeys.resource.streamnative.io
spec:
group: resource.streamnative.io
names:
categories:
- streamnative
- all
kind: APIKey
listKind: APIKeyList
plural: apikeys
singular: apikey
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: AGE
type: date
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: READY
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: APIKey is the Schema for the APIKeys API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: APIKeySpec defines the desired state of APIKey
properties:
apiServerRef:
description: APIServerRef is the reference to the StreamNativeCloudConnection
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string
type: object
x-kubernetes-map-type: atomic
description:
description: Description is a user defined description of the key
type: string
encryptionKey:
description: EncryptionKey contains the public key used to encrypt
the token
properties:
pem:
description: PEM is the public key in PEM format
type: string
type: object
x-kubernetes-map-type: atomic
expirationTime:
description: |-
ExpirationTime is a timestamp that defines when this API key will expire
This can only be set on initial creation and not updated later
format: date-time
type: string
exportPlaintextToken:
description: ExportPlaintextToken indicates whether the token should
be exported in plaintext
type: boolean
instanceName:
description: InstanceName is the name of the instance this API key
is for
type: string
revoke:
description: Revoke indicates whether this API key should be revoked
type: boolean
serviceAccountName:
description: ServiceAccountName is the name of the service account
this API key is for
type: string
required:
- apiServerRef
type: object
status:
description: APIKeyStatus defines the observed state of APIKey
properties:
conditions:
description: Conditions represent the latest available observations
of an object's state
items:
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: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: |-
type of condition in CamelCase or in foo.example.com/CamelCase.
---
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
useful (see .node.status.conditions), the ability to deconflict is important.
The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
encryptedToken:
description: EncryptedToken is the encrypted security token issued
for the key
properties:
jwe:
description: |-
JWE is the token as a JSON Web Encryption (JWE) message
For RSA public keys, the key encryption algorithm is RSA-OAEP, and the content encryption algorithm is AES GCM
type: string
type: object
x-kubernetes-map-type: atomic
expiresAt:
description: ExpiresAt is a timestamp of when the key expires
format: date-time
type: string
issuedAt:
description: IssuedAt is a timestamp of when the key was issued
format: date-time
type: string
keyId:
description: KeyID is a generated field that is a uid for the token
type: string
observedGeneration:
description: ObservedGeneration is the last observed generation
format: int64
type: integer
revokedAt:
description: RevokedAt is a timestamp of when the key was revoked,
it triggers revocation action
format: date-time
type: string
token:
description: Token is the plaintext security token issued for the
key
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
Original file line number Diff line number Diff line change
Expand Up @@ -224,15 +224,18 @@ spec:
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
tlsAllowInsecureConnection:
description: TLSAllowInsecureConnection indicates whether to allow
insecure connection to the broker.
type: boolean
tlsEnableHostnameVerification:
description: TLSEnableHostnameVerification indicates whether to verify the hostname of the broker.
description: |-
TLSEnableHostnameVerification indicates whether to verify the hostname of the broker.
Only used when using secure urls.
type: boolean
tlsAllowInsecureConnection:
description: TLSAllowInsecureConnection indicates whether to allow insecure connection to the broker.
type: boolean
tlsTrustCertsFilePath:
description: TLSTrustCertsFilePath Path for the TLS certificate used to validate the broker endpoint when using TLS.
description: TLSTrustCertsFilePath Path for the TLS certificate used
to validate the broker endpoint when using TLS.
type: string
type: object
status:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,54 @@ spec:
spec:
description: PulsarGeoReplicationSpec defines the desired state of PulsarGeoReplication
properties:
clusterParamsOverride:
description: |-
ClusterParamsOverride allows overriding specific cluster parameters when setting up
geo-replication. This is useful when the destination cluster requires different
configuration than what's defined in the DestinationConnectionRef.
properties:
authentication:
description: |-
Authentication overrides the authentication configuration for the cluster.
When this field is set, the secret update check will be skipped for this geo-replication.
properties:
authParameters:
description: |-
AuthParameters contains the authentication parameters as a string.
Format depends on the AuthPlugin:
- For Token: "token:your-token-here"
- For Token: "file://your-token-file-path-on-brokers"
- For OAuth2: JSON string with client credentials
type: string
authPlugin:
description: |-
AuthPlugin specifies the authentication plugin class name
Common values: "org.apache.pulsar.client.impl.auth.AuthenticationToken",
"org.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2"
type: string
type: object
brokerClientTrustCertsFilePath:
description: |-
BrokerClientTrustCertsFilePath overrides the file path to the trusted TLS certificate
for outgoing connections to Pulsar brokers
type: string
brokerServiceSecureURL:
description: BrokerServiceSecureURL overrides the TLS-enabled
URL for secure connections to Pulsar brokers
type: string
brokerServiceURL:
description: BrokerServiceURL overrides the non-TLS URL for connecting
to Pulsar brokers
type: string
serviceSecureURL:
description: ServiceSecureURL overrides the HTTPS URL for secure
connections to the Pulsar admin service
type: string
serviceURL:
description: ServiceURL overrides the HTTP(S) URL for the Pulsar
cluster's admin service
type: string
type: object
connectionRef:
description: ConnectionRef is the reference to the source PulsarConnection
properties:
Expand Down
Loading