Skip to content

Commit

Permalink
operator pulsar-resources-operator (0.6.5)
Browse files Browse the repository at this point in the history
  • Loading branch information
streamnativebot authored Dec 5, 2024
1 parent fbd88ed commit 54b6b97
Show file tree
Hide file tree
Showing 18 changed files with 3,990 additions and 0 deletions.
21 changes: 21 additions & 0 deletions operators/pulsar-resources-operator/0.6.5/bundle.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM scratch

# Core bundle labels.
LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
LABEL operators.operatorframework.io.bundle.package.v1=pulsar-resources-operator
LABEL operators.operatorframework.io.bundle.channels.v1=alpha,beta,stable
LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.31.0
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3

# Labels for testing.
LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/

# Copy files to locations specified by labels.
COPY bundle/manifests /manifests/
COPY bundle/metadata /metadata/
COPY bundle/tests/scorecard /tests/scorecard/
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
control-plane: controller-manager
name: pulsar-resources-operator-controller-manager-metrics-service
spec:
ports:
- name: https
port: 8443
protocol: TCP
targetPort: https
selector:
control-plane: controller-manager
status:
loadBalancer: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
apiVersion: v1
data:
controller_manager_config.yaml: |
# Copyright 2024 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: controller-runtime.sigs.k8s.io/v1alpha1
kind: ControllerManagerConfig
health:
healthProbeBindAddress: :8081
metrics:
bindAddress: 127.0.0.1:8080
webhook:
port: 9443
leaderElection:
leaderElect: true
resourceName: ed4866ca.streamnative.io
kind: ConfigMap
metadata:
name: pulsar-resources-operator-manager-config
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: pulsar-resources-operator-metrics-reader
rules:
- nonResourceURLs:
- /metrics
verbs:
- get

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,307 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
creationTimestamp: null
name: pulsarconnections.resource.streamnative.io
spec:
group: resource.streamnative.io
names:
categories:
- pulsar
- pulsarres
kind: PulsarConnection
listKind: PulsarConnectionList
plural: pulsarconnections
shortNames:
- pconn
singular: pulsarconnection
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.adminServiceURL
name: ADMIN_SERVICE_URL
type: string
- jsonPath: .spec.adminServiceSecureURL
name: ADMIN_SERVICE_SECURE_URL
priority: 1
type: string
- jsonPath: .spec.brokerServiceURL
name: BROKER_SERVICE_URL
type: string
- jsonPath: .spec.brokerServiceSecureURL
name: BROKER_SERVICE_SECURE_URL
priority: 1
type: string
- jsonPath: .metadata.generation
name: GENERATION
priority: 1
type: string
- jsonPath: .status.observedGeneration
name: OBSERVED_GENERATION
priority: 1
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: READY
type: string
name: v1alpha1
schema:
openAPIV3Schema:
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: |-
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: |-
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://<admin-service-host>:<port>"
- Set BrokerServiceURL to "pulsar://<broker-service-host>:<port>"
For TLS-enabled Pulsar clusters:
- Set AdminServiceSecureURL to "https://<admin-service-host>:<port>"
- Set BrokerServiceSecureURL to "pulsar+ssl://<broker-service-host>:<port>"
- Optionally set BrokerClientTrustCertsFilePath if using custom CA certificates
properties:
adminServiceSecureURL:
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 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 the authentication configuration for connecting to the Pulsar cluster.
It supports both token-based and OAuth2-based authentication methods.
properties:
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: |-
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
key
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
value:
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
- clientID
- issuerEndpoint
- key
type: object
token:
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
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
value:
type: string
type: object
type: object
brokerClientTrustCertsFilePath:
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 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 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 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.
It provides information about the current status of the Pulsar connection.
properties:
conditions:
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.\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
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
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
secretKeyHash:
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
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: null
storedVersions: null
Loading

0 comments on commit 54b6b97

Please sign in to comment.