Automated Manifest Update (#2259)

This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow.

Reviewed-on: #2259
Co-authored-by: gitea-bot <gitea-bot@alexlebens.net>
Co-committed-by: gitea-bot <gitea-bot@alexlebens.net>
This commit was merged in pull request #2259.
This commit is contained in:
2025-12-04 21:47:46 +00:00
committed by Alex Lebens
parent d008c08479
commit 7a96d06727
2100 changed files with 365994 additions and 380674 deletions

View File

@@ -0,0 +1,36 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: mariadb-operator-cert-controller
rules:
- apiGroups:
- admissionregistration.k8s.io
resources:
- validatingwebhookconfigurations
- mutatingwebhookconfigurations
verbs:
- get
- list
- update
- patch
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- list
- patch
- watch
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
- endpointslices/restricted
verbs:
- get
- list
- watch

View File

@@ -0,0 +1,13 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac-user.yaml
# the mariadb-edit ClusterRole allows editing k8s.mariadb.com resources
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: mariadb-operator-edit
labels:
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rules:
- apiGroups: ["k8s.mariadb.com"]
resources: ["*"]
verbs: ["create", "update", "patch", "delete"]

View File

@@ -0,0 +1,13 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac-user.yaml
# the mariadb-view ClusterRole allows viewing all k8s.mariadb.com resources
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: mariadb-operator-view
labels:
rbac.authorization.k8s.io/aggregate-to-view: "true"
rules:
- apiGroups: ["k8s.mariadb.com"]
resources: ["*"]
verbs: ["get", "list", "watch"]

View File

@@ -0,0 +1,234 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: mariadb-operator
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- delete
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- events
- secrets
- serviceaccounts
- services
verbs:
- create
- list
- patch
- watch
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- create
- delete
- deletecollection
- list
- patch
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- delete
- get
- list
- watch
- patch
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- apiGroups:
- apps
resources:
- deployments
verbs:
- create
- list
- patch
- watch
- apiGroups:
- apps
resources:
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- watch
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
- apiGroups:
- batch
resources:
- cronjobs
verbs:
- create
- list
- patch
- watch
- apiGroups:
- batch
resources:
- jobs
verbs:
- create
- delete
- get
- list
- patch
- watch
- apiGroups:
- cert-manager.io
resources:
- certificates
verbs:
- create
- list
- patch
- watch
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
- endpointslices/restricted
verbs:
- create
- get
- list
- patch
- watch
- apiGroups:
- k8s.mariadb.com
resources:
- backups
- connections
- databases
- grants
- mariadbs
- externalmariadbs
- maxscales
- physicalbackups
- restores
- sqljobs
- users
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- k8s.mariadb.com
resources:
- backups/finalizers
- connections/finalizers
- databases/finalizers
- grants/finalizers
- mariadbs/finalizers
- externalmariadbs/finalizers
- maxscales/finalizers
- physicalbackups/finalizers
- restores/finalizers
- sqljobs/finalizers
- users/finalizers
verbs:
- update
- apiGroups:
- k8s.mariadb.com
resources:
- backups/status
- connections/status
- databases/status
- grants/status
- mariadbs/status
- externalmariadbs/status
- maxscales/status
- physicalbackups/status
- restores/status
- sqljobs/status
- users/status
verbs:
- get
- patch
- update
- apiGroups:
- k8s.mariadb.com
resources:
- maxscale
verbs:
- create
- list
- patch
- watch
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- create
- list
- patch
- watch
- apiGroups:
- policy
resources:
- poddisruptionbudgets
verbs:
- create
- list
- patch
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
- rolebindings
- roles
verbs:
- create
- list
- patch
- watch
- apiGroups:
- snapshot.storage.k8s.io
resources:
- volumesnapshots
verbs:
- create
- delete
- get
- list
- patch
- watch

View File

@@ -0,0 +1,14 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: mariadb-operator-cert-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: mariadb-operator-cert-controller
subjects:
- kind: ServiceAccount
name: mariadb-operator-cert-controller-cert-controller
namespace: mariadb-operator

View File

@@ -0,0 +1,14 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: mariadb-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: mariadb-operator
subjects:
- kind: ServiceAccount
name: mariadb-operator
namespace: mariadb-operator

View File

@@ -0,0 +1,14 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: mariadb-operator:auth-delegator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: mariadb-operator
namespace: mariadb-operator

View File

@@ -0,0 +1,16 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/configmap.yaml
apiVersion: v1
data:
MARIADB_OPERATOR_IMAGE: "docker-registry3.mariadb.com/mariadb-operator/mariadb-operator:25.10.2"
MARIADB_GALERA_LIB_PATH: "/usr/lib/galera/libgalera_smm.so"
MARIADB_DEFAULT_VERSION: "11.8"
RELATED_IMAGE_MARIADB: "docker-registry1.mariadb.com/library/mariadb:11.8.2"
RELATED_IMAGE_MARIADB_NAME: "docker-registry1.mariadb.com/library/mariadb"
RELATED_IMAGE_MAXSCALE: "docker-registry2.mariadb.com/mariadb/maxscale:23.08.5"
RELATED_IMAGE_EXPORTER: "prom/mysqld-exporter:v0.15.1"
RELATED_IMAGE_EXPORTER_MAXSCALE: "docker-registry2.mariadb.com/mariadb/maxscale-prometheus-exporter-ubi:v0.0.1"
kind: ConfigMap
metadata:
creationTimestamp: null
name: mariadb-operator-env

View File

@@ -0,0 +1,247 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: connections.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: Connection
listKind: ConnectionList
plural: connections
shortNames:
- cmdb
singular: connection
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
- jsonPath: .spec.secretName
name: Secret
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: Connection is the Schema for the connections API. It is used to configure connection strings for the applications connecting to MariaDB.
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: ConnectionSpec defines the desired state of Connection
properties:
database:
description: Database to use when configuring the Connection.
type: string
healthCheck:
description: HealthCheck to be used in the Connection.
properties:
interval:
description: Interval used to perform health checks.
type: string
retryInterval:
description: RetryInterval is the interval used to perform health check retries.
type: string
type: object
host:
description: Host to connect to. If not provided, it defaults to the MariaDB host or to the MaxScale host.
type: string
mariaDbRef:
description: MariaDBRef is a reference to the MariaDB to connect to. Either MariaDBRef or MaxScaleRef must be provided.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
maxScaleRef:
description: MaxScaleRef is a reference to the MaxScale to connect to. Either MariaDBRef or MaxScaleRef must be provided.
properties:
name:
type: string
namespace:
type: string
type: object
params:
additionalProperties:
type: string
description: Params to be used in the Connection.
type: object
passwordSecretKeyRef:
description: |-
PasswordSecretKeyRef is a reference to the password to use for configuring the Connection.
Either passwordSecretKeyRef or tlsClientCertSecretRef must be provided as client credentials.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
port:
description: Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.
format: int32
type: integer
secretName:
description: SecretName to be used in the Connection.
type: string
secretTemplate:
description: SecretTemplate to be used in the Connection.
properties:
databaseKey:
description: DatabaseKey to be used in the Secret.
type: string
format:
description: Format to be used in the Secret.
type: string
hostKey:
description: HostKey to be used in the Secret.
type: string
key:
description: Key to be used in the Secret.
type: string
metadata:
description: Metadata to be added to the Secret object.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
passwordKey:
description: PasswordKey to be used in the Secret.
type: string
portKey:
description: PortKey to be used in the Secret.
type: string
usernameKey:
description: UsernameKey to be used in the Secret.
type: string
type: object
serviceName:
description: ServiceName to be used in the Connection.
type: string
tlsClientCertSecretRef:
description: |-
TLSClientCertSecretRef is a reference to a Kubernetes TLS Secret used as authentication when checking the connection health.
Either passwordSecretKeyRef or tlsClientCertSecretRef must be provided as client credentials.
If not provided, the client certificate provided by the referred MariaDB is used if TLS is enabled.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the client certificate.
properties:
name:
default: ""
type: string
type: object
username:
description: Username to use for configuring the Connection.
type: string
required:
- username
type: object
status:
description: ConnectionStatus defines the observed state of Connection
properties:
conditions:
description: Conditions for the Connection object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,173 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: databases.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: Database
listKind: DatabaseList
plural: databases
shortNames:
- dmdb
singular: database
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
- jsonPath: .spec.characterSet
name: CharSet
type: string
- jsonPath: .spec.collate
name: Collate
type: string
- jsonPath: .spec.mariaDbRef.name
name: MariaDB
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .spec.name
name: Name
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: Database is the Schema for the databases API. It is used to define a logical database as if you were running a 'CREATE DATABASE' statement.
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: DatabaseSpec defines the desired state of Database
properties:
characterSet:
default: utf8
description: CharacterSet to use in the Database.
type: string
cleanupPolicy:
description: CleanupPolicy defines the behavior for cleaning up a SQL resource.
enum:
- Skip
- Delete
type: string
collate:
default: utf8_general_ci
description: Collate to use in the Database.
type: string
mariaDbRef:
description: MariaDBRef is a reference to a MariaDB object.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
name:
description: Name overrides the default Database name provided by metadata.name.
maxLength: 80
type: string
requeueInterval:
description: RequeueInterval is used to perform requeue reconciliations.
type: string
retryInterval:
description: RetryInterval is the interval used to perform retries.
type: string
required:
- mariaDbRef
type: object
status:
description: DatabaseStatus defines the observed state of Database
properties:
conditions:
description: Conditions for the Database object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,357 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: externalmariadbs.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: ExternalMariaDB
listKind: ExternalMariaDBList
plural: externalmariadbs
shortNames:
- emdb
singular: externalmariadb
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: ExternalMariaDB is the Schema for the external MariaDBs API. It is used to define external MariaDB server.
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: ExternalMariaDBSpec defines the desired state of an External MariaDB
properties:
connection:
description: Connection defines a template to configure a Connection for the external MariaDB.
properties:
healthCheck:
description: HealthCheck to be used in the Connection.
properties:
interval:
description: Interval used to perform health checks.
type: string
retryInterval:
description: RetryInterval is the interval used to perform health check retries.
type: string
type: object
params:
additionalProperties:
type: string
description: Params to be used in the Connection.
type: object
port:
description: Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.
format: int32
type: integer
secretName:
description: SecretName to be used in the Connection.
type: string
secretTemplate:
description: SecretTemplate to be used in the Connection.
properties:
databaseKey:
description: DatabaseKey to be used in the Secret.
type: string
format:
description: Format to be used in the Secret.
type: string
hostKey:
description: HostKey to be used in the Secret.
type: string
key:
description: Key to be used in the Secret.
type: string
metadata:
description: Metadata to be added to the Secret object.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
passwordKey:
description: PasswordKey to be used in the Secret.
type: string
portKey:
description: PortKey to be used in the Secret.
type: string
usernameKey:
description: UsernameKey to be used in the Secret.
type: string
type: object
serviceName:
description: ServiceName to be used in the Connection.
type: string
type: object
host:
description: Hostname of the external MariaDB.
type: string
image:
description: |-
Image name to be used to perform operations on the external MariaDB, for example, for taking backups.
The supported format is `<image>:<tag>`. Only MariaDB official images are supported.
If not provided, the MariaDB image version be inferred by the operator in runtime. The default MariaDB image will be used in this case,
type: string
imagePullPolicy:
description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
- Always
- Never
- IfNotPresent
type: string
imagePullSecrets:
description: ImagePullSecrets is the list of pull Secrets to be used to pull the image.
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
type: array
inheritMetadata:
description: InheritMetadata defines the metadata to be inherited by children resources.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
passwordSecretKeyRef:
description: PasswordSecretKeyRef is a reference to the password to connect to the external MariaDB.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
port:
default: 3306
description: Port of the external MariaDB.
format: int32
type: integer
tls:
description: TLS defines the PKI to be used with the external MariaDB.
properties:
clientCASecretRef:
description: |-
ClientCASecretRef is a reference to a Secret containing the client certificate authority keypair. It is used to establish trust and issue client certificates.
One of:
- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
- Secret containing only the 'ca.crt' in order to establish trust. In this case, either clientCertSecretRef or clientCertIssuerRef fields must be provided.
If not provided, a self-signed CA will be provisioned to issue the client certificate.
properties:
name:
default: ""
type: string
type: object
clientCertIssuerRef:
description: |-
ClientCertIssuerRef is a reference to a cert-manager issuer object used to issue the client certificate. cert-manager must be installed previously in the cluster.
It is mutually exclusive with clientCertSecretRef.
By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via clientCASecretRef.
properties:
group:
description: Group of the resource being referred to.
type: string
kind:
description: Kind of the resource being referred to.
type: string
name:
description: Name of the resource being referred to.
type: string
required:
- name
type: object
clientCertSecretRef:
description: |-
ClientCertSecretRef is a reference to a TLS Secret containing the client certificate.
It is mutually exclusive with clientCertIssuerRef.
properties:
name:
default: ""
type: string
type: object
enabled:
description: |-
Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MariaDB instance.
It is enabled by default.
type: boolean
galeraSSTEnabled:
description: |-
GaleraSSTEnabled determines whether Galera SST connections should use TLS.
It disabled by default.
type: boolean
required:
description: |-
Required specifies whether TLS must be enforced for all connections.
User TLS requirements take precedence over this.
It disabled by default.
type: boolean
serverCASecretRef:
description: |-
ServerCASecretRef is a reference to a Secret containing the server certificate authority keypair. It is used to establish trust and issue server certificates.
One of:
- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
- Secret containing only the 'ca.crt' in order to establish trust. In this case, either serverCertSecretRef or serverCertIssuerRef must be provided.
If not provided, a self-signed CA will be provisioned to issue the server certificate.
properties:
name:
default: ""
type: string
type: object
serverCertIssuerRef:
description: |-
ServerCertIssuerRef is a reference to a cert-manager issuer object used to issue the server certificate. cert-manager must be installed previously in the cluster.
It is mutually exclusive with serverCertSecretRef.
By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via serverCASecretRef.
properties:
group:
description: Group of the resource being referred to.
type: string
kind:
description: Kind of the resource being referred to.
type: string
name:
description: Name of the resource being referred to.
type: string
required:
- name
type: object
serverCertSecretRef:
description: |-
ServerCertSecretRef is a reference to a TLS Secret containing the server certificate.
It is mutually exclusive with serverCertIssuerRef.
properties:
name:
default: ""
type: string
type: object
type: object
username:
description: Username is the username to connect to the external MariaDB.
type: string
required:
- host
- username
type: object
status:
description: ExternalMariaDBStatus defines the observed state of MariaDB
properties:
conditions:
description: Conditions for the ExternalMariadb object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
isGaleraEnabled:
description: IsGaleraEnabled indicates that the external MariaDb has Galera enabled.
type: boolean
version:
description: Version of the external MariaDB server.
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,197 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: grants.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: Grant
listKind: GrantList
plural: grants
shortNames:
- gmdb
singular: grant
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
- jsonPath: .spec.database
name: Database
type: string
- jsonPath: .spec.table
name: Table
type: string
- jsonPath: .spec.username
name: Username
type: string
- jsonPath: .spec.grantOption
name: GrantOpt
type: string
- jsonPath: .spec.mariaDbRef.name
name: MariaDB
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: Grant is the Schema for the grants API. It is used to define grants as if you were running a 'GRANT' statement.
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: GrantSpec defines the desired state of Grant
properties:
cleanupPolicy:
description: CleanupPolicy defines the behavior for cleaning up a SQL resource.
enum:
- Skip
- Delete
type: string
database:
default: '*'
description: Database to use in the Grant.
type: string
grantOption:
default: false
description: GrantOption to use in the Grant.
type: boolean
host:
description: Host to use in the Grant. It can be localhost, an IP or '%'.
type: string
mariaDbRef:
description: MariaDBRef is a reference to a MariaDB object.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
privileges:
description: Privileges to use in the Grant.
items:
type: string
minItems: 1
type: array
requeueInterval:
description: RequeueInterval is used to perform requeue reconciliations.
type: string
retryInterval:
description: RetryInterval is the interval used to perform retries.
type: string
table:
default: '*'
description: Table to use in the Grant.
type: string
username:
description: Username to use in the Grant.
type: string
required:
- mariaDbRef
- privileges
- username
type: object
status:
description: GrantStatus defines the observed state of Grant
properties:
conditions:
description: Conditions for the Grant object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
currentPrivileges:
description: |-
CurrentPrivileges is the list of current privileges used in the Grant.
It allows to detect the divergence from the desired privileges.
items:
type: string
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,872 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: physicalbackups.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: PhysicalBackup
listKind: PhysicalBackupList
plural: physicalbackups
shortNames:
- pbmdb
singular: physicalbackup
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Complete")].status
name: Complete
type: string
- jsonPath: .status.conditions[?(@.type=="Complete")].message
name: Status
type: string
- jsonPath: .spec.mariaDbRef.name
name: MariaDB
type: string
- jsonPath: .status.lastScheduleTime
name: Last Scheduled
type: date
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: PhysicalBackup is the Schema for the physicalbackups API. It is used to define physical backup jobs and its storage.
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: PhysicalBackupSpec defines the desired state of PhysicalBackup.
properties:
args:
description: Args to be used in the Container.
items:
type: string
type: array
backoffLimit:
description: BackoffLimit defines the maximum number of attempts to successfully take a PhysicalBackup.
format: int32
type: integer
compression:
description: Compression algorithm to be used in the Backup.
enum:
- none
- bzip2
- gzip
type: string
imagePullSecrets:
description: ImagePullSecrets is the list of pull Secrets to be used to pull the image.
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
type: array
inheritMetadata:
description: InheritMetadata defines the metadata to be inherited by children resources.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
mariaDbRef:
description: MariaDBRef is a reference to a MariaDB object.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
maxRetention:
description: |-
MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job.
It defaults to 30 days.
type: string
podAffinity:
description: |-
PodAffinity indicates whether the Jobs should run in the same Node as the MariaDB Pods to be able to attach the PVC.
It defaults to true.
type: boolean
podMetadata:
description: PodMetadata defines extra metadata for the Pod.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
podSecurityContext:
description: SecurityContext holds pod-level security attributes and common container settings.
properties:
appArmorProfile:
description: AppArmorProfile defines a pod or container's AppArmor settings.
properties:
localhostProfile:
description: |-
localhostProfile indicates a profile loaded on the node that should be used.
The profile must be preconfigured on the node to work.
Must match the loaded name of the profile.
Must be set if and only if type is "Localhost".
type: string
type:
description: |-
type indicates which kind of AppArmor profile will be applied.
Valid options are:
Localhost - a profile pre-loaded on the node.
RuntimeDefault - the container runtime's default profile.
Unconfined - no AppArmor enforcement.
type: string
required:
- type
type: object
fsGroup:
format: int64
type: integer
fsGroupChangePolicy:
description: |-
PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume
when volume is mounted.
type: string
runAsGroup:
format: int64
type: integer
runAsNonRoot:
type: boolean
runAsUser:
format: int64
type: integer
seLinuxOptions:
description: SELinuxOptions are the labels to be applied to the container
properties:
level:
description: Level is SELinux level label that applies to the container.
type: string
role:
description: Role is a SELinux role label that applies to the container.
type: string
type:
description: Type is a SELinux type label that applies to the container.
type: string
user:
description: User is a SELinux user label that applies to the container.
type: string
type: object
seccompProfile:
description: |-
SeccompProfile defines a pod/container's seccomp profile settings.
Only one profile source may be set.
properties:
localhostProfile:
description: |-
localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must be set if type is "Localhost". Must NOT be set for any other type.
type: string
type:
description: |-
type indicates which kind of seccomp profile will be applied.
Valid options are:
Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
type: string
required:
- type
type: object
supplementalGroups:
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
type: object
priorityClassName:
description: PriorityClassName to be used in the Pod.
type: string
resources:
description: Resources describes the compute resource requirements.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: ResourceList is a set of (resource name, quantity) pairs.
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: ResourceList is a set of (resource name, quantity) pairs.
type: object
type: object
restartPolicy:
default: OnFailure
description: RestartPolicy to be added to the PhysicalBackup Pod.
enum:
- Always
- OnFailure
- Never
type: string
schedule:
description: Schedule defines when the PhysicalBackup will be taken.
properties:
cron:
description: Cron is a cron expression that defines the schedule.
type: string
immediate:
description: Immediate indicates whether the first backup should be taken immediately after creating the PhysicalBackup.
type: boolean
suspend:
default: false
description: Suspend defines whether the schedule is active or not.
type: boolean
type: object
securityContext:
description: SecurityContext holds security configuration that will be applied to a container.
properties:
allowPrivilegeEscalation:
type: boolean
capabilities:
description: Adds and removes POSIX capabilities from running containers.
properties:
add:
description: Added capabilities
items:
description: Capability represent POSIX capabilities type
type: string
type: array
x-kubernetes-list-type: atomic
drop:
description: Removed capabilities
items:
description: Capability represent POSIX capabilities type
type: string
type: array
x-kubernetes-list-type: atomic
type: object
privileged:
type: boolean
readOnlyRootFilesystem:
type: boolean
runAsGroup:
format: int64
type: integer
runAsNonRoot:
type: boolean
runAsUser:
format: int64
type: integer
type: object
serviceAccountName:
description: ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
type: string
stagingStorage:
description: |-
StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.
It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the PhysicalBackup Job is scheduled.
The staging area gets cleaned up after each backup is completed, consider this for sizing it appropriately.
properties:
persistentVolumeClaim:
description: PersistentVolumeClaim is a Kubernetes PVC specification.
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
resources:
description: VolumeResourceRequirements describes the storage resource requirements for a volume.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
selector:
description: |-
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
type: object
volume:
description: Volume is a Kubernetes volume specification.
properties:
csi:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#csivolumesource-v1-core.'
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
required:
- driver
type: object
emptyDir:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#emptydirvolumesource-v1-core.'
properties:
medium:
description: StorageMedium defines ways that storage can be allocated to a volume.
type: string
sizeLimit:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
hostPath:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#hostpathvolumesource-v1-core'
properties:
path:
type: string
type:
type: string
required:
- path
type: object
nfs:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nfsvolumesource-v1-core.'
properties:
path:
type: string
readOnly:
type: boolean
server:
type: string
required:
- path
- server
type: object
persistentVolumeClaim:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#persistentvolumeclaimvolumesource-v1-core.'
properties:
claimName:
type: string
readOnly:
type: boolean
required:
- claimName
type: object
type: object
type: object
storage:
description: Storage defines the final storage for backups.
properties:
persistentVolumeClaim:
description: PersistentVolumeClaim is a Kubernetes PVC specification.
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
resources:
description: VolumeResourceRequirements describes the storage resource requirements for a volume.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
selector:
description: |-
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
type: object
s3:
description: S3 defines the configuration to store backups in a S3 compatible storage.
properties:
accessKeyIdSecretKeyRef:
description: AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
bucket:
description: Bucket is the name Name of the bucket to store backups.
type: string
endpoint:
description: Endpoint is the S3 API endpoint without scheme.
type: string
prefix:
description: 'Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash ''/'' is added if not provided.'
type: string
region:
description: Region is the S3 region name to use.
type: string
secretAccessKeySecretKeyRef:
description: AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
sessionTokenSecretKeyRef:
description: SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
tls:
description: TLS provides the configuration required to establish TLS connections with S3.
properties:
caSecretKeyRef:
description: |-
CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3.
By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
enabled:
description: Enabled is a flag to enable TLS.
type: boolean
type: object
required:
- bucket
- endpoint
type: object
volume:
description: Volume is a Kubernetes volume specification.
properties:
csi:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#csivolumesource-v1-core.'
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
required:
- driver
type: object
emptyDir:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#emptydirvolumesource-v1-core.'
properties:
medium:
description: StorageMedium defines ways that storage can be allocated to a volume.
type: string
sizeLimit:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
hostPath:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#hostpathvolumesource-v1-core'
properties:
path:
type: string
type:
type: string
required:
- path
type: object
nfs:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nfsvolumesource-v1-core.'
properties:
path:
type: string
readOnly:
type: boolean
server:
type: string
required:
- path
- server
type: object
persistentVolumeClaim:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#persistentvolumeclaimvolumesource-v1-core.'
properties:
claimName:
type: string
readOnly:
type: boolean
required:
- claimName
type: object
type: object
volumeSnapshot:
description: VolumeSnapshot is a Kubernetes VolumeSnapshot specification.
properties:
metadata:
description: Metadata is extra metadata to the added to the VolumeSnapshot objects.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
volumeSnapshotClassName:
description: VolumeSnapshotClassName is the VolumeSnapshot class to be used to take snapshots.
type: string
required:
- volumeSnapshotClassName
type: object
type: object
successfulJobsHistoryLimit:
description: SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed. It defaults to 5.
format: int32
minimum: 0
type: integer
timeout:
description: |-
Timeout defines the maximum duration of a PhysicalBackup job or snapshot.
If this duration is exceeded, the job or snapshot is considered expired and is deleted by the operator.
A new job or snapshot will then be created according to the schedule.
It defaults to 1 hour.
type: string
tolerations:
description: Tolerations to be used in the Pod.
items:
description: |-
The pod this Toleration is attached to tolerates any taint that matches
the triple <key,value,effect> using the matching operator <operator>.
properties:
effect:
description: |-
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: |-
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
type: string
operator:
description: |-
Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
type: string
tolerationSeconds:
description: |-
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
description: |-
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
type: string
type: object
type: array
required:
- mariaDbRef
- storage
type: object
status:
description: PhysicalBackupStatus defines the observed state of PhysicalBackup.
properties:
conditions:
description: Conditions for the PhysicalBackup object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
lastScheduleCheckTime:
description: LastScheduleCheckTime is the last time that the schedule was checked.
format: date-time
type: string
lastScheduleTime:
description: LastScheduleTime is the last time that a backup was scheduled.
format: date-time
type: string
nextScheduleTime:
description: NextScheduleTime is the next time that a backup will be scheduled.
format: date-time
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,950 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: restores.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: Restore
listKind: RestoreList
plural: restores
shortNames:
- rmdb
singular: restore
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Complete")].status
name: Complete
type: string
- jsonPath: .status.conditions[?(@.type=="Complete")].message
name: Status
type: string
- jsonPath: .spec.mariaDbRef.name
name: MariaDB
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: Restore is the Schema for the restores API. It is used to define restore jobs and its restoration source.
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: RestoreSpec defines the desired state of restore
properties:
affinity:
description: Affinity to be used in the Pod.
properties:
antiAffinityEnabled:
description: |-
AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA.
Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.
type: boolean
nodeAffinity:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeaffinity-v1-core'
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#preferredschedulingterm-v1-core'
properties:
preference:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorterm-v1-core'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
weight:
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselector-v1-core'
properties:
nodeSelectorTerms:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorterm-v1-core'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: array
x-kubernetes-list-type: atomic
required:
- nodeSelectorTerms
type: object
type: object
podAntiAffinity:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podantiaffinity-v1-core.'
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#weightedpodaffinityterm-v1-core.'
properties:
podAffinityTerm:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podaffinityterm-v1-core.'
properties:
labelSelector:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselector-v1-meta'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselectorrequirement-v1-meta'
properties:
key:
type: string
operator:
description: A label selector operator is the set of operators that can be used in a selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
topologyKey:
type: string
required:
- topologyKey
type: object
weight:
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podaffinityterm-v1-core.'
properties:
labelSelector:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselector-v1-meta'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselectorrequirement-v1-meta'
properties:
key:
type: string
operator:
description: A label selector operator is the set of operators that can be used in a selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: object
args:
description: Args to be used in the Container.
items:
type: string
type: array
backoffLimit:
default: 5
description: BackoffLimit defines the maximum number of attempts to successfully perform a Backup.
format: int32
type: integer
backupRef:
description: BackupRef is a reference to a Backup object. It has priority over S3 and Volume.
properties:
name:
default: ""
type: string
type: object
database:
description: |-
Database defines the logical database to be restored. If not provided, all databases available in the backup are restored.
IMPORTANT: The database must previously exist.
type: string
imagePullSecrets:
description: ImagePullSecrets is the list of pull Secrets to be used to pull the image.
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
type: array
inheritMetadata:
description: InheritMetadata defines the metadata to be inherited by children resources.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
logLevel:
default: info
description: LogLevel to be used n the Backup Job. It defaults to 'info'.
type: string
mariaDbRef:
description: MariaDBRef is a reference to a MariaDB object.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
nodeSelector:
additionalProperties:
type: string
description: NodeSelector to be used in the Pod.
type: object
podMetadata:
description: PodMetadata defines extra metadata for the Pod.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
podSecurityContext:
description: SecurityContext holds pod-level security attributes and common container settings.
properties:
appArmorProfile:
description: AppArmorProfile defines a pod or container's AppArmor settings.
properties:
localhostProfile:
description: |-
localhostProfile indicates a profile loaded on the node that should be used.
The profile must be preconfigured on the node to work.
Must match the loaded name of the profile.
Must be set if and only if type is "Localhost".
type: string
type:
description: |-
type indicates which kind of AppArmor profile will be applied.
Valid options are:
Localhost - a profile pre-loaded on the node.
RuntimeDefault - the container runtime's default profile.
Unconfined - no AppArmor enforcement.
type: string
required:
- type
type: object
fsGroup:
format: int64
type: integer
fsGroupChangePolicy:
description: |-
PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume
when volume is mounted.
type: string
runAsGroup:
format: int64
type: integer
runAsNonRoot:
type: boolean
runAsUser:
format: int64
type: integer
seLinuxOptions:
description: SELinuxOptions are the labels to be applied to the container
properties:
level:
description: Level is SELinux level label that applies to the container.
type: string
role:
description: Role is a SELinux role label that applies to the container.
type: string
type:
description: Type is a SELinux type label that applies to the container.
type: string
user:
description: User is a SELinux user label that applies to the container.
type: string
type: object
seccompProfile:
description: |-
SeccompProfile defines a pod/container's seccomp profile settings.
Only one profile source may be set.
properties:
localhostProfile:
description: |-
localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must be set if type is "Localhost". Must NOT be set for any other type.
type: string
type:
description: |-
type indicates which kind of seccomp profile will be applied.
Valid options are:
Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
type: string
required:
- type
type: object
supplementalGroups:
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
type: object
priorityClassName:
description: PriorityClassName to be used in the Pod.
type: string
resources:
description: Resources describes the compute resource requirements.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: ResourceList is a set of (resource name, quantity) pairs.
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: ResourceList is a set of (resource name, quantity) pairs.
type: object
type: object
restartPolicy:
default: OnFailure
description: RestartPolicy to be added to the Backup Job.
enum:
- Always
- OnFailure
- Never
type: string
s3:
description: S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.
properties:
accessKeyIdSecretKeyRef:
description: AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
bucket:
description: Bucket is the name Name of the bucket to store backups.
type: string
endpoint:
description: Endpoint is the S3 API endpoint without scheme.
type: string
prefix:
description: 'Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash ''/'' is added if not provided.'
type: string
region:
description: Region is the S3 region name to use.
type: string
secretAccessKeySecretKeyRef:
description: AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
sessionTokenSecretKeyRef:
description: SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
tls:
description: TLS provides the configuration required to establish TLS connections with S3.
properties:
caSecretKeyRef:
description: |-
CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3.
By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
enabled:
description: Enabled is a flag to enable TLS.
type: boolean
type: object
required:
- bucket
- endpoint
type: object
securityContext:
description: SecurityContext holds security configuration that will be applied to a container.
properties:
allowPrivilegeEscalation:
type: boolean
capabilities:
description: Adds and removes POSIX capabilities from running containers.
properties:
add:
description: Added capabilities
items:
description: Capability represent POSIX capabilities type
type: string
type: array
x-kubernetes-list-type: atomic
drop:
description: Removed capabilities
items:
description: Capability represent POSIX capabilities type
type: string
type: array
x-kubernetes-list-type: atomic
type: object
privileged:
type: boolean
readOnlyRootFilesystem:
type: boolean
runAsGroup:
format: int64
type: integer
runAsNonRoot:
type: boolean
runAsUser:
format: int64
type: integer
type: object
serviceAccountName:
description: ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
type: string
stagingStorage:
description: |-
StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.
It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Restore Job is scheduled.
properties:
persistentVolumeClaim:
description: PersistentVolumeClaim is a Kubernetes PVC specification.
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
resources:
description: VolumeResourceRequirements describes the storage resource requirements for a volume.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
selector:
description: |-
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector applies to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
type: object
volume:
description: Volume is a Kubernetes volume specification.
properties:
csi:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#csivolumesource-v1-core.'
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
required:
- driver
type: object
emptyDir:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#emptydirvolumesource-v1-core.'
properties:
medium:
description: StorageMedium defines ways that storage can be allocated to a volume.
type: string
sizeLimit:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
hostPath:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#hostpathvolumesource-v1-core'
properties:
path:
type: string
type:
type: string
required:
- path
type: object
nfs:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nfsvolumesource-v1-core.'
properties:
path:
type: string
readOnly:
type: boolean
server:
type: string
required:
- path
- server
type: object
persistentVolumeClaim:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#persistentvolumeclaimvolumesource-v1-core.'
properties:
claimName:
type: string
readOnly:
type: boolean
required:
- claimName
type: object
type: object
type: object
targetRecoveryTime:
description: |-
TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.
It is used to determine the closest restoration source in time.
format: date-time
type: string
tolerations:
description: Tolerations to be used in the Pod.
items:
description: |-
The pod this Toleration is attached to tolerates any taint that matches
the triple <key,value,effect> using the matching operator <operator>.
properties:
effect:
description: |-
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: |-
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
type: string
operator:
description: |-
Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
type: string
tolerationSeconds:
description: |-
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
description: |-
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
type: string
type: object
type: array
volume:
description: Volume is a Kubernetes Volume object that contains a backup.
properties:
csi:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#csivolumesource-v1-core.'
properties:
driver:
type: string
fsType:
type: string
nodePublishSecretRef:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
readOnly:
type: boolean
volumeAttributes:
additionalProperties:
type: string
type: object
required:
- driver
type: object
emptyDir:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#emptydirvolumesource-v1-core.'
properties:
medium:
description: StorageMedium defines ways that storage can be allocated to a volume.
type: string
sizeLimit:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
hostPath:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#hostpathvolumesource-v1-core'
properties:
path:
type: string
type:
type: string
required:
- path
type: object
nfs:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nfsvolumesource-v1-core.'
properties:
path:
type: string
readOnly:
type: boolean
server:
type: string
required:
- path
- server
type: object
persistentVolumeClaim:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#persistentvolumeclaimvolumesource-v1-core.'
properties:
claimName:
type: string
readOnly:
type: boolean
required:
- claimName
type: object
type: object
required:
- mariaDbRef
type: object
status:
description: RestoreStatus defines the observed state of restore
properties:
conditions:
description: Conditions for the Restore object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,705 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: sqljobs.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: SqlJob
listKind: SqlJobList
plural: sqljobs
shortNames:
- smdb
singular: sqljob
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Complete")].status
name: Complete
type: string
- jsonPath: .status.conditions[?(@.type=="Complete")].message
name: Status
type: string
- jsonPath: .spec.mariaDbRef.name
name: MariaDB
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: SqlJob is the Schema for the sqljobs API. It is used to run sql scripts as jobs.
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: SqlJobSpec defines the desired state of SqlJob
properties:
affinity:
description: Affinity to be used in the Pod.
properties:
antiAffinityEnabled:
description: |-
AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA.
Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.
type: boolean
nodeAffinity:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeaffinity-v1-core'
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#preferredschedulingterm-v1-core'
properties:
preference:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorterm-v1-core'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
weight:
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselector-v1-core'
properties:
nodeSelectorTerms:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorterm-v1-core'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#nodeselectorrequirement-v1-core'
properties:
key:
type: string
operator:
description: |-
A node selector operator is the set of operators that can be used in
a node selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: array
x-kubernetes-list-type: atomic
required:
- nodeSelectorTerms
type: object
type: object
podAntiAffinity:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podantiaffinity-v1-core.'
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#weightedpodaffinityterm-v1-core.'
properties:
podAffinityTerm:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podaffinityterm-v1-core.'
properties:
labelSelector:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselector-v1-meta'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselectorrequirement-v1-meta'
properties:
key:
type: string
operator:
description: A label selector operator is the set of operators that can be used in a selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
topologyKey:
type: string
required:
- topologyKey
type: object
weight:
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podaffinityterm-v1-core.'
properties:
labelSelector:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselector-v1-meta'
properties:
matchExpressions:
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#labelselectorrequirement-v1-meta'
properties:
key:
type: string
operator:
description: A label selector operator is the set of operators that can be used in a selector requirement.
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: object
args:
description: Args to be used in the Container.
items:
type: string
type: array
backoffLimit:
default: 5
description: BackoffLimit defines the maximum number of attempts to successfully execute a SqlJob.
format: int32
type: integer
database:
description: Username to be used when executing the SqlJob.
type: string
dependsOn:
description: DependsOn defines dependencies with other SqlJob objectecs.
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
type: array
failedJobsHistoryLimit:
description: FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.
format: int32
minimum: 0
type: integer
imagePullSecrets:
description: ImagePullSecrets is the list of pull Secrets to be used to pull the image.
items:
description: 'Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#localobjectreference-v1-core.'
properties:
name:
default: ""
type: string
type: object
type: array
inheritMetadata:
description: InheritMetadata defines the metadata to be inherited by children resources.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
mariaDbRef:
description: MariaDBRef is a reference to a MariaDB object.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
nodeSelector:
additionalProperties:
type: string
description: NodeSelector to be used in the Pod.
type: object
passwordSecretKeyRef:
description: UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
podMetadata:
description: PodMetadata defines extra metadata for the Pod.
properties:
annotations:
additionalProperties:
type: string
description: Annotations to be added to children resources.
type: object
labels:
additionalProperties:
type: string
description: Labels to be added to children resources.
type: object
type: object
podSecurityContext:
description: SecurityContext holds pod-level security attributes and common container settings.
properties:
appArmorProfile:
description: AppArmorProfile defines a pod or container's AppArmor settings.
properties:
localhostProfile:
description: |-
localhostProfile indicates a profile loaded on the node that should be used.
The profile must be preconfigured on the node to work.
Must match the loaded name of the profile.
Must be set if and only if type is "Localhost".
type: string
type:
description: |-
type indicates which kind of AppArmor profile will be applied.
Valid options are:
Localhost - a profile pre-loaded on the node.
RuntimeDefault - the container runtime's default profile.
Unconfined - no AppArmor enforcement.
type: string
required:
- type
type: object
fsGroup:
format: int64
type: integer
fsGroupChangePolicy:
description: |-
PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume
when volume is mounted.
type: string
runAsGroup:
format: int64
type: integer
runAsNonRoot:
type: boolean
runAsUser:
format: int64
type: integer
seLinuxOptions:
description: SELinuxOptions are the labels to be applied to the container
properties:
level:
description: Level is SELinux level label that applies to the container.
type: string
role:
description: Role is a SELinux role label that applies to the container.
type: string
type:
description: Type is a SELinux type label that applies to the container.
type: string
user:
description: User is a SELinux user label that applies to the container.
type: string
type: object
seccompProfile:
description: |-
SeccompProfile defines a pod/container's seccomp profile settings.
Only one profile source may be set.
properties:
localhostProfile:
description: |-
localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must be set if type is "Localhost". Must NOT be set for any other type.
type: string
type:
description: |-
type indicates which kind of seccomp profile will be applied.
Valid options are:
Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
type: string
required:
- type
type: object
supplementalGroups:
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
type: object
priorityClassName:
description: PriorityClassName to be used in the Pod.
type: string
resources:
description: Resources describes the compute resource requirements.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: ResourceList is a set of (resource name, quantity) pairs.
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: ResourceList is a set of (resource name, quantity) pairs.
type: object
type: object
restartPolicy:
default: OnFailure
description: RestartPolicy to be added to the SqlJob Pod.
enum:
- Always
- OnFailure
- Never
type: string
schedule:
description: Schedule defines when the SqlJob will be executed.
properties:
cron:
description: Cron is a cron expression that defines the schedule.
type: string
suspend:
default: false
description: Suspend defines whether the schedule is active or not.
type: boolean
required:
- cron
type: object
securityContext:
description: SecurityContext holds security configuration that will be applied to a container.
properties:
allowPrivilegeEscalation:
type: boolean
capabilities:
description: Adds and removes POSIX capabilities from running containers.
properties:
add:
description: Added capabilities
items:
description: Capability represent POSIX capabilities type
type: string
type: array
x-kubernetes-list-type: atomic
drop:
description: Removed capabilities
items:
description: Capability represent POSIX capabilities type
type: string
type: array
x-kubernetes-list-type: atomic
type: object
privileged:
type: boolean
readOnlyRootFilesystem:
type: boolean
runAsGroup:
format: int64
type: integer
runAsNonRoot:
type: boolean
runAsUser:
format: int64
type: integer
type: object
serviceAccountName:
description: ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
type: string
sql:
description: Sql is the script to be executed by the SqlJob.
type: string
sqlConfigMapKeyRef:
description: |-
SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script.
It is defaulted to a ConfigMap with the contents of the Sql field.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
successfulJobsHistoryLimit:
description: SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed.
format: int32
minimum: 0
type: integer
timeZone:
description: TimeZone defines the timezone associated with the cron expression.
type: string
tlsCASecretRef:
description: |-
TLSCACertSecretRef is a reference toa CA Secret used to establish trust when executing the SqlJob.
If not provided, the CA bundle provided by the referred MariaDB is used.
properties:
name:
default: ""
type: string
type: object
tlsClientCertSecretRef:
description: |-
TLSClientCertSecretRef is a reference to a Kubernetes TLS Secret used as authentication when executing the SqlJob.
If not provided, the client certificate provided by the referred MariaDB is used.
properties:
name:
default: ""
type: string
type: object
tolerations:
description: Tolerations to be used in the Pod.
items:
description: |-
The pod this Toleration is attached to tolerates any taint that matches
the triple <key,value,effect> using the matching operator <operator>.
properties:
effect:
description: |-
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: |-
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
type: string
operator:
description: |-
Operator represents a key's relationship to the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
type: string
tolerationSeconds:
description: |-
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
description: |-
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
type: string
type: object
type: array
username:
description: Username to be impersonated when executing the SqlJob.
type: string
required:
- mariaDbRef
- passwordSecretKeyRef
- username
type: object
status:
description: SqlJobStatus defines the observed state of SqlJob
properties:
conditions:
description: Conditions for the SqlJob object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,245 @@
---
# Source: mariadb-operator/charts/mariadb-operator-crds/templates/crds.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
name: users.k8s.mariadb.com
spec:
group: k8s.mariadb.com
names:
kind: User
listKind: UserList
plural: users
shortNames:
- umdb
singular: user
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=="Ready")].status
name: Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
- jsonPath: .spec.maxUserConnections
name: MaxConns
type: string
- jsonPath: .spec.mariaDbRef.name
name: MariaDB
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: User is the Schema for the users API. It is used to define grants as if you were running a 'CREATE USER' statement.
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: UserSpec defines the desired state of User
properties:
cleanupPolicy:
description: CleanupPolicy defines the behavior for cleaning up a SQL resource.
enum:
- Skip
- Delete
type: string
host:
description: Host related to the User.
maxLength: 255
type: string
mariaDbRef:
description: MariaDBRef is a reference to a MariaDB object.
properties:
kind:
description: Kind of the referent.
type: string
name:
type: string
namespace:
type: string
waitForIt:
default: true
description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready.
type: boolean
type: object
maxUserConnections:
default: 10
description: MaxUserConnections defines the maximum number of simultaneous connections that the User can establish.
format: int32
type: integer
name:
description: Name overrides the default name provided by metadata.name.
maxLength: 80
type: string
passwordHashSecretKeyRef:
description: |-
PasswordHashSecretKeyRef is a reference to the password hash to be used by the User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
passwordPlugin:
description: PasswordPlugin is a reference to the password plugin and arguments to be used by the User.
properties:
pluginArgSecretKeyRef:
description: |-
PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin arguments.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
pluginNameSecretKeyRef:
description: |-
PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
passwordSecretKeyRef:
description: |-
PasswordSecretKeyRef is a reference to the password to be used by the User.
If not provided, the account will be locked and the password will expire.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
properties:
key:
type: string
name:
default: ""
type: string
required:
- key
type: object
x-kubernetes-map-type: atomic
requeueInterval:
description: RequeueInterval is used to perform requeue reconciliations.
type: string
require:
description: 'Require specifies TLS requirements for the user to connect. See: https://mariadb.com/kb/en/securing-connections-for-client-and-server/#requiring-tls.'
properties:
issuer:
description: Issuer indicates that the TLS certificate provided by the user must be issued by a specific issuer.
type: string
ssl:
description: SSL indicates that the user must connect via TLS.
type: boolean
subject:
description: Subject indicates that the TLS certificate provided by the user must have a specific subject.
type: string
x509:
description: X509 indicates that the user must provide a valid x509 certificate to connect.
type: boolean
type: object
retryInterval:
description: RetryInterval is the interval used to perform retries.
type: string
required:
- mariaDbRef
type: object
status:
description: UserStatus defines the observed state of User
properties:
conditions:
description: Conditions for the User object.
items:
description: Condition contains details for one aspect of the current state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,60 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb-operator-cert-controller
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
template:
metadata:
labels:
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
spec:
serviceAccountName: mariadb-operator-cert-controller-cert-controller
automountServiceAccountToken: true
containers:
- image: "docker-registry3.mariadb.com/mariadb-operator/mariadb-operator:25.10.2"
imagePullPolicy: IfNotPresent
name: cert-controller
args:
- cert-controller
- --ca-secret-name=mariadb-operator-webhook-ca
- --ca-secret-namespace=mariadb-operator
- --ca-lifetime=26280h
- --cert-secret-name=mariadb-operator-webhook-cert
- --cert-secret-namespace=mariadb-operator
- --cert-lifetime=2160h
- --renew-before-percentage=33
- --service-name=mariadb-operator-webhook
- --service-namespace=mariadb-operator
- --requeue-duration=5m
- --metrics-addr=:8080
- --health-addr=:8081
- --log-level=INFO
ports:
- containerPort: 8080
protocol: TCP
name: metrics
- containerPort: 8081
protocol: TCP
name: health
env:
- name: CLUSTER_NAME
value: cluster.local
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 20
periodSeconds: 5

View File

@@ -0,0 +1,71 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/webhook/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb-operator-webhook
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
template:
metadata:
labels:
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
spec:
serviceAccountName: mariadb-operator-webhook
automountServiceAccountToken: true
hostNetwork: false
containers:
- image: "docker-registry3.mariadb.com/mariadb-operator/mariadb-operator:25.10.2"
imagePullPolicy: IfNotPresent
name: webhook
args:
- webhook
- --ca-cert-path=/tmp/k8s-webhook-server/certificate-authority/tls.crt
- --cert-dir=/tmp/k8s-webhook-server/serving-certs
- --dns-name=mariadb-operator-webhook.mariadb-operator.svc
- --port=9443
- --metrics-addr=:8080
- --health-addr=:8081
- --log-level=INFO
ports:
- containerPort: 9443
protocol: TCP
name: https
- containerPort: 8080
protocol: TCP
name: metrics
- containerPort: 8081
protocol: TCP
name: health
volumeMounts:
- mountPath: /tmp/k8s-webhook-server/certificate-authority
name: ca
readOnly: true
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 20
periodSeconds: 5
volumes:
- name: ca
secret:
defaultMode: 420
secretName: mariadb-operator-webhook-ca
- name: cert
secret:
defaultMode: 420
secretName: mariadb-operator-webhook-cert

View File

@@ -0,0 +1,55 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb-operator
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
replicas: 3
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
template:
metadata:
labels:
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
spec:
serviceAccountName: mariadb-operator
automountServiceAccountToken: true
terminationGracePeriodSeconds: 10
containers:
- image: "docker-registry3.mariadb.com/mariadb-operator/mariadb-operator:25.10.2"
imagePullPolicy: IfNotPresent
name: controller
args:
- --metrics-addr=:8080
- --log-level=INFO
- --leader-elect
ports:
- containerPort: 8080
protocol: TCP
name: metrics
envFrom:
- configMapRef:
name: mariadb-operator-env
env:
- name: CLUSTER_NAME
value: cluster.local
- name: MARIADB_OPERATOR_NAME
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
- name: MARIADB_OPERATOR_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MARIADB_OPERATOR_SA_PATH
value: /var/run/secrets/kubernetes.io/serviceaccount/token

View File

@@ -0,0 +1,18 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/pdb.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: mariadb-operator
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator

View File

@@ -0,0 +1,26 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: mariadb-operator-cert-controller
rules:
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch

View File

@@ -0,0 +1,38 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: mariadb-operator
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch

View File

@@ -0,0 +1,14 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: mariadb-operator-cert-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: mariadb-operator-cert-controller
subjects:
- kind: ServiceAccount
name: mariadb-operator-cert-controller-cert-controller
namespace: mariadb-operator

View File

@@ -0,0 +1,14 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: mariadb-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: mariadb-operator
subjects:
- kind: ServiceAccount
name: mariadb-operator
namespace: mariadb-operator

View File

@@ -0,0 +1,20 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/servicemonitor.yaml
apiVersion: v1
kind: Service
metadata:
name: mariadb-operator-cert-controller-metrics
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
ports:
- port: 8080
protocol: TCP
name: metrics
selector:
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator

View File

@@ -0,0 +1,20 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/metrics-servicemonitor.yaml
apiVersion: v1
kind: Service
metadata:
name: mariadb-operator-metrics
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
ports:
- port: 8080
protocol: TCP
name: metrics
selector:
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator

View File

@@ -0,0 +1,20 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/webhook/servicemonitor.yaml
apiVersion: v1
kind: Service
metadata:
name: mariadb-operator-webhook-metrics
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
ports:
- port: 8080
protocol: TCP
name: metrics
selector:
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator

View File

@@ -0,0 +1,20 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/webhook/service.yaml
apiVersion: v1
kind: Service
metadata:
name: mariadb-operator-webhook
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
ports:
- port: 443
protocol: TCP
targetPort: 9443
selector:
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator

View File

@@ -0,0 +1,12 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: mariadb-operator-cert-controller-cert-controller
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm

View File

@@ -0,0 +1,12 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/webhook/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: mariadb-operator-webhook
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm

View File

@@ -0,0 +1,12 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: mariadb-operator
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm

View File

@@ -0,0 +1,24 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/cert-controller/servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: mariadb-operator-cert-controller
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator-cert-controller
app.kubernetes.io/instance: mariadb-operator
namespaceSelector:
matchNames:
- "mariadb-operator"
endpoints:
- port: metrics
interval: 30s
scrapeTimeout: 25s

View File

@@ -0,0 +1,24 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/webhook/servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: mariadb-operator-webhook
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
namespaceSelector:
matchNames:
- "mariadb-operator"
endpoints:
- port: metrics
interval: 30s
scrapeTimeout: 25s

View File

@@ -0,0 +1,24 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/operator/metrics-servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: mariadb-operator
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
spec:
selector:
matchLabels:
app.kubernetes.io/name: mariadb-operator
app.kubernetes.io/instance: mariadb-operator
namespaceSelector:
matchNames:
- "mariadb-operator"
endpoints:
- port: metrics
interval: 30s
scrapeTimeout: 25s

View File

@@ -0,0 +1,215 @@
---
# Source: mariadb-operator/charts/mariadb-operator/templates/webhook/config.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: mariadb-operator-webhook
labels:
helm.sh/chart: mariadb-operator-25.10.2
app.kubernetes.io/name: mariadb-operator-webhook
app.kubernetes.io/instance: mariadb-operator
app.kubernetes.io/version: "25.10.2"
app.kubernetes.io/managed-by: Helm
annotations:
k8s.mariadb.com/webhook: ""
webhooks:
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-backup
failurePolicy: Fail
name: vbackup-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- backups
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-physicalbackup
failurePolicy: Fail
name: vphysicalbackup-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- physicalbackups
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-connection
failurePolicy: Fail
name: vconnection-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- connections
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-database
failurePolicy: Fail
name: vdatabase-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- databases
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-grant
failurePolicy: Fail
name: vgrant-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- grants
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-mariadb
failurePolicy: Fail
name: vmariadb-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- mariadbs
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-maxscale
failurePolicy: Fail
name: vmaxscale-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- maxscales
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-restore
failurePolicy: Fail
name: vrestore-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- restores
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-sqljob
failurePolicy: Fail
name: vsqljob-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- sqljobs
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: mariadb-operator-webhook
namespace: mariadb-operator
path: /validate-k8s-mariadb-com-v1alpha1-user
failurePolicy: Fail
name: vuser-v1alpha1.kb.io
rules:
- apiGroups:
- k8s.mariadb.com
apiVersions:
- v1alpha1
operations:
- CREATE
- UPDATE
resources:
- users
sideEffects: None

File diff suppressed because it is too large Load Diff