diff --git a/mysql.oracle.com/innodbcluster_v2.json b/mysql.oracle.com/innodbcluster_v2.json new file mode 100644 index 00000000..5a4c1936 --- /dev/null +++ b/mysql.oracle.com/innodbcluster_v2.json @@ -0,0 +1,1288 @@ +{ + "properties": { + "metadata": { + "properties": { + "name": { + "maxLength": 40, + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "spec": { + "properties": { + "backupProfiles": { + "description": "Backup profile specifications for the cluster, which can be referenced from backup schedules and one-off backup jobs", + "items": { + "properties": { + "dumpInstance": { + "properties": { + "dumpOptions": { + "description": "A dictionary of key-value pairs passed directly to MySQL Shell's DumpInstance()", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "storage": { + "properties": { + "azure": { + "properties": { + "config": { + "description": "Name of a Secret with Azure BLOB Storage configuration and credentials", + "type": "string" + }, + "containerName": { + "description": "Name of the Azure BLOB Storage container where the dump is stored", + "type": "string" + }, + "prefix": { + "description": "Path in the container where the dump files are stored", + "type": "string" + } + }, + "required": [ + "containerName", + "config" + ], + "type": "object", + "additionalProperties": false + }, + "ociObjectStorage": { + "properties": { + "bucketName": { + "description": "Name of the OCI bucket where backup is stored", + "type": "string" + }, + "credentials": { + "description": "Name of a Secret with data for accessing the bucket", + "type": "string" + }, + "prefix": { + "description": "Path in bucket where backup is stored", + "type": "string" + } + }, + "required": [ + "bucketName", + "credentials" + ], + "type": "object", + "additionalProperties": false + }, + "persistentVolumeClaim": { + "description": "Specification of the PVC to be used. Used 'as is' in pod executing the backup.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "s3": { + "properties": { + "bucketName": { + "description": "Name of the S3 bucket where the dump is stored", + "type": "string" + }, + "config": { + "description": "Name of a Secret with S3 configuration and credentials", + "type": "string" + }, + "endpoint": { + "description": "Override endpoint URL", + "type": "string" + }, + "prefix": { + "description": "Path in the bucket where the dump files are stored", + "type": "string" + }, + "profile": { + "default": "", + "description": "Profile being used in configuration files", + "type": "string" + } + }, + "required": [ + "bucketName", + "config" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "name": { + "description": "Embedded backup profile, referenced as backupProfileName elsewhere", + "type": "string" + }, + "podAnnotations": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podLabels": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "snapshot": { + "properties": { + "storage": { + "properties": { + "azure": { + "properties": { + "config": { + "description": "Name of a Secret with Azure BLOB Storage configuration and credentials", + "type": "string" + }, + "containerName": { + "description": "Name of the Azure BLOB Storage container where the dump is stored", + "type": "string" + }, + "prefix": { + "description": "Path in the container where the dump files are stored", + "type": "string" + } + }, + "required": [ + "containerName", + "config" + ], + "type": "object", + "additionalProperties": false + }, + "ociObjectStorage": { + "properties": { + "bucketName": { + "description": "Bucket name where backup is stored", + "type": "string" + }, + "credentials": { + "description": "Name of a Secret with data for accessing the bucket", + "type": "string" + }, + "prefix": { + "description": "Path in bucket where backup is stored", + "type": "string" + } + }, + "required": [ + "bucketName", + "credentials" + ], + "type": "object", + "additionalProperties": false + }, + "persistentVolumeClaim": { + "description": "Specification of the PVC to be used. Used 'as is' in pod executing the backup.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "s3": { + "properties": { + "bucketName": { + "description": "Name of the S3 bucket where the dump is stored", + "type": "string" + }, + "config": { + "description": "Name of a Secret with S3 configuration and credentials", + "type": "string" + }, + "endpoint": { + "description": "Override endpoint URL", + "type": "string" + }, + "prefix": { + "description": "Path in the bucket where the dump files are stored", + "type": "string" + }, + "profile": { + "default": "", + "description": "Profile being used in configuration files", + "type": "string" + } + }, + "required": [ + "bucketName", + "config" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + }, + "type": "array" + }, + "backupSchedules": { + "description": "Schedules for periodically executed backups", + "items": { + "properties": { + "backupProfile": { + "description": "backupProfile specification if backupProfileName is not specified", + "properties": { + "dumpInstance": { + "properties": { + "dumpOptions": { + "description": "A dictionary of key-value pairs passed directly to MySQL Shell's DumpInstance()", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "storage": { + "properties": { + "azure": { + "properties": { + "config": { + "description": "Name of a Secret with Azure BLOB Storage configuration and credentials", + "type": "string" + }, + "containerName": { + "description": "Name of the Azure BLOB Storage container where the dump is stored", + "type": "string" + }, + "prefix": { + "description": "Path in the container where the dump files are stored", + "type": "string" + } + }, + "required": [ + "containerName", + "config" + ], + "type": "object", + "additionalProperties": false + }, + "ociObjectStorage": { + "properties": { + "bucketName": { + "description": "Name of the OCI Bucket where backup is stored", + "type": "string" + }, + "credentials": { + "description": "Name of a Secret with data for accessing the bucket", + "type": "string" + }, + "prefix": { + "description": "Path in bucket where backup is stored", + "type": "string" + } + }, + "required": [ + "bucketName", + "credentials" + ], + "type": "object", + "additionalProperties": false + }, + "persistentVolumeClaim": { + "description": "Specification of the PVC to be used. Used 'as is' in pod executing the backup.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "s3": { + "properties": { + "bucketName": { + "description": "Name of the S3 bucket where the dump is stored", + "type": "string" + }, + "config": { + "description": "Name of a Secret with S3 configuration and credentials", + "type": "string" + }, + "endpoint": { + "description": "Override endpoint URL", + "type": "string" + }, + "prefix": { + "description": "Path in the bucket where the dump files are stored", + "type": "string" + }, + "profile": { + "default": "", + "description": "Profile being used in configuration files", + "type": "string" + } + }, + "required": [ + "bucketName", + "config" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "podAnnotations": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podLabels": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + }, + "backupProfileName": { + "description": "Name of the backupProfile to be used", + "type": "string" + }, + "deleteBackupData": { + "default": false, + "description": "Whether to delete the backup data in case the MySQLBackup object created by the job is deleted", + "type": "boolean" + }, + "enabled": { + "default": true, + "description": "Whether the schedule is enabled or not", + "type": "boolean" + }, + "name": { + "description": "Name of the backup schedule", + "type": "string" + }, + "schedule": { + "description": "The schedule of the job, syntax as a cron expression", + "type": "string" + }, + "timeZone": { + "description": "Timezone for the backup schedule, example: 'America/New_York'", + "type": "string" + } + }, + "required": [ + "name", + "schedule" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + }, + "type": "array" + }, + "baseServerId": { + "default": 1000, + "description": "Base value for MySQL server_id for instances in the cluster", + "maximum": 4294967195, + "minimum": 0, + "type": "integer" + }, + "datadirVolumeClaimTemplate": { + "description": "Template for a PersistentVolumeClaim, to be used as datadir", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "edition": { + "description": "MySQL Server Edition (community or enterprise)", + "pattern": "^(community|enterprise)$", + "type": "string" + }, + "imagePullPolicy": { + "description": "Defaults to Always, but set to IfNotPresent in deploy-operator.yaml when deploying Operator", + "type": "string" + }, + "imagePullSecrets": { + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "imageRepository": { + "description": "Repository where images are pulled from; defaults to container-registry.oracle.com/mysql", + "type": "string" + }, + "initDB": { + "properties": { + "clone": { + "properties": { + "donorUrl": { + "description": "URL of the cluster to clone from", + "type": "string" + }, + "rootUser": { + "default": "root", + "description": "User name used for cloning", + "type": "string" + }, + "secretKeyRef": { + "properties": { + "name": { + "description": "Secret name with key 'rootPassword' storing the password for the user specified in rootUser", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "donorUrl", + "secretKeyRef" + ], + "type": "object", + "additionalProperties": false + }, + "dump": { + "properties": { + "name": { + "description": "Name of the dump. Not used by the operator, but a descriptive hint for the cluster administrator", + "type": "string" + }, + "options": { + "description": "A dictionary of key-value pairs passed directly to MySQL Shell's loadDump()", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "path": { + "description": "Path to the dump in the PVC. Use when specifying persistentVolumeClaim. Omit for ociObjectStorage, S3, or azure.", + "type": "string" + }, + "storage": { + "properties": { + "azure": { + "properties": { + "config": { + "description": "Name of a Secret with Azure BLOB Storage configuration and credentials", + "type": "string" + }, + "containerName": { + "description": "Name of the Azure BLOB Storage container where the dump is stored", + "type": "string" + }, + "prefix": { + "description": "Path in the container where the dump files are stored", + "type": "string" + } + }, + "required": [ + "containerName", + "prefix", + "config" + ], + "type": "object", + "additionalProperties": false + }, + "ociObjectStorage": { + "properties": { + "bucketName": { + "description": "Name of the OCI bucket where the dump is stored", + "type": "string" + }, + "credentials": { + "description": "Name of a Secret with data for accessing the bucket", + "type": "string" + }, + "prefix": { + "description": "Path in the bucket where the dump files are stored", + "type": "string" + } + }, + "required": [ + "bucketName", + "prefix", + "credentials" + ], + "type": "object", + "additionalProperties": false + }, + "persistentVolumeClaim": { + "description": "Specification of the PVC to be used. Used 'as is' in the cloning pod.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "s3": { + "properties": { + "bucketName": { + "description": "Name of the S3 bucket where the dump is stored", + "type": "string" + }, + "config": { + "description": "Name of a Secret with S3 configuration and credentials", + "type": "string" + }, + "endpoint": { + "description": "Override endpoint URL", + "type": "string" + }, + "prefix": { + "description": "Path in the bucket where the dump files are stored", + "type": "string" + }, + "profile": { + "default": "", + "description": "Profile being used in configuration files", + "type": "string" + } + }, + "required": [ + "bucketName", + "prefix", + "config" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + } + }, + "required": [ + "storage" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + }, + "instances": { + "default": 1, + "description": "Number of MySQL replica instances for the cluster", + "maximum": 9, + "minimum": 1, + "type": "integer" + }, + "keyring": { + "description": "Keyring specification", + "properties": { + "encryptedFile": { + "description": "Keyring 'Encrypted File' specification", + "properties": { + "fileName": { + "default": "mysql_keyring", + "description": "Path to the keyring file name inside the storage volume (will be prefixed by mount path)", + "type": "string" + }, + "password": { + "description": "Name of a secret that contains password for the keyring in the key 'keyring_password'", + "type": "string" + }, + "readOnly": { + "default": false, + "description": "Whether to open the keyring file in read-only mode", + "type": "boolean" + }, + "storage": { + "description": "Specification of the volume to be mounted where the keyring file resides", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "required": [ + "storage", + "password" + ], + "type": "object", + "additionalProperties": false + }, + "file": { + "description": "Keyring 'File' specification", + "properties": { + "fileName": { + "default": "mysql_keyring", + "description": "Path to the keyring file name inside the storage volume (will be prefixed by mount path)", + "type": "string" + }, + "readOnly": { + "default": false, + "description": "Whether to open the keyring file in read-only mode", + "type": "boolean" + }, + "storage": { + "description": "Specification of the volume to be mounted where the keyring file resides", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "required": [ + "storage" + ], + "type": "object", + "additionalProperties": false + }, + "oci": { + "description": "Keyring 'OCI' specification", + "properties": { + "caCertificate": { + "description": "Secret that contains ca.crt field with CA certificate bundle file that the keyring_oci plugin uses for Oracle Cloud Infrastructure certificate verification", + "type": "string" + }, + "compartment": { + "description": "Compartment identifier in the form ocid1.compartment.oc1...", + "pattern": "^ocid1\\.compartment\\.", + "type": "string" + }, + "endpoints": { + "properties": { + "encryption": { + "description": "Encryption endpoint URI like {identifier}-crypto.kms.{region}.oraclecloud.com", + "type": "string" + }, + "management": { + "description": "Management endpoint URI like {identifier}-management.kms.{region}.oraclecloud.com", + "type": "string" + }, + "secrets": { + "description": "Secrets endpoint URI like secrets.vaults.{region}.oci.oraclecloud.com", + "type": "string" + }, + "vaults": { + "description": "Vaults endpoint URI like vaults.{region}.oci.oraclecloud.com", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "keyFingerprint": { + "description": "Private key fingerprint", + "pattern": "([0-9a-f]{2}:){15}[0-9a-f]{2}$", + "type": "string" + }, + "keySecret": { + "description": "A secret that contains the private key under the field 'privatekey'", + "type": "string" + }, + "masterKey": { + "description": "Master key identified in the form ocid1.key.oc1...", + "pattern": "^ocid1\\.key\\.", + "type": "string" + }, + "tenancy": { + "description": "Tenancy identifier in the form ocid1.tenancy.oc1...", + "pattern": "^ocid1\\.tenancy\\.", + "type": "string" + }, + "user": { + "description": "User identifier in the form of ocid1.user.oc1...", + "pattern": "^ocid1\\.user\\.", + "type": "string" + }, + "virtualVault": { + "description": "Vault identifier in the form ocid1.vault.oc1...", + "pattern": "^ocid1\\.vault\\.", + "type": "string" + } + }, + "required": [ + "user", + "keySecret", + "keyFingerprint", + "tenancy" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "logs": { + "properties": { + "collector": { + "oneOf": [ + { + "required": [ + "image", + "fluentd" + ] + } + ], + "properties": { + "containerName": { + "default": "logcollector", + "description": "Name of the collector container sidecar", + "type": "string" + }, + "env": { + "items": { + "description": "Environment variables to be passed to the image. Definition will be directly copied like podSpec fields are", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "type": "array" + }, + "fluentd": { + "description": "Properties of the fluentd log collector", + "oneOf": [ + { + "required": [ + "sinks" + ] + } + ], + "properties": { + "additionalFilterConfiguration": { + "description": "Raw configuration of additional Fluentd filters to be added to the configuration file", + "type": "string" + }, + "errorLog": { + "properties": { + "options": { + "description": "fluentd specific options for the error log", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "tag": { + "default": "", + "description": "Tag for the error log records", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "generalLog": { + "properties": { + "options": { + "description": "fluentd specific options for the general log", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "tag": { + "default": "", + "description": "Tag for the general log records", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "recordAugmentation": { + "properties": { + "annotations": { + "items": { + "properties": { + "annotationName": { + "description": "Name of the pod label that holds the value to be stored under fieldName in the log record", + "type": "string" + }, + "fieldName": { + "description": "Name of the field added to the log record with value from annotationName", + "type": "string" + } + }, + "required": [ + "fieldName", + "annotationName" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "enabled": { + "default": false, + "description": "Whether to enable record augmentation with additional data", + "type": "boolean" + }, + "labels": { + "items": { + "properties": { + "fieldName": { + "description": "Name of the field added to the log record with value from labelName", + "type": "string" + }, + "labelName": { + "description": "Name of the pod label that holds the value to be stored under fieldName in the log record", + "type": "string" + } + }, + "required": [ + "fieldName", + "labelName" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "podFields": { + "items": { + "properties": { + "fieldName": { + "description": "Name of the field added to the log record with value taken from a field with path stored in fieldPath", + "type": "string" + }, + "fieldPath": { + "description": "Value for the field fieldName. The path should be of the same syntax as the one used for mounting environment variables from field reference - valueFrom.fieldRef.fieldPath . The field will be mounted in the pod as a environment variable, prefixed with a prefix and used then added to the log record. Examples for fieldRef are : spec.nodeName, metadata.namespace, status.podIP, etc.", + "type": "string" + } + }, + "required": [ + "fieldName", + "fieldPath" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "resourceFields": { + "items": { + "properties": { + "containerName": { + "type": "string" + }, + "fieldName": { + "description": "Name of the field added to the log record with value taken from a field with path stored in fieldPath", + "type": "string" + }, + "resource": { + "description": "See https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#use-container-fields-as-values-for-environment-variables", + "type": "string" + } + }, + "required": [ + "fieldName", + "containerName", + "resource" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "staticFields": { + "items": { + "properties": { + "fieldName": { + "description": "Name of the field added to the log record with value from fieldValue", + "type": "string" + }, + "fieldValue": { + "description": "Value for the static field with name taken from fieldName", + "type": "string" + } + }, + "required": [ + "fieldName", + "fieldValue" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "sinks": { + "items": { + "properties": { + "name": { + "description": "Name of the sink. Used only for documentation purposes", + "type": "string" + }, + "rawConfig": { + "description": "Raw configuration of the sink", + "type": "string" + } + }, + "required": [ + "name", + "rawConfig" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + }, + "type": "array" + }, + "slowQueryLog": { + "properties": { + "options": { + "description": "fluentd specific options for the slow log", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "tag": { + "default": "", + "description": "Tag for the slow log records", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "image": { + "description": "Name of an image, including registry and repository, to be used for the log collector sidecar. If provided it needs to be an image for the configured collector type.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "error": { + "properties": { + "collect": { + "default": false, + "description": "Whether error logging data should be collected. Implies that the logging should be enabled. If enabled the error log will be switched to JSON format output", + "type": "boolean" + }, + "verbosity": { + "default": 3, + "description": "Log error verbosity. For details, see the MySQL Server --log-error-verbosity documentation.", + "maximum": 3, + "minimum": 1, + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "general": { + "properties": { + "collect": { + "default": false, + "description": "Whether general logging data should be collected. Implies that the logging should be enabled.", + "type": "boolean" + }, + "enabled": { + "default": false, + "description": "Whether general logging should be enabled", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "slowQuery": { + "properties": { + "collect": { + "default": false, + "description": "Whether slow query logging data should be collected. Implies that the logging should be enabled.", + "type": "boolean" + }, + "enabled": { + "default": false, + "description": "Whether slow query logging should be enabled", + "type": "boolean" + }, + "longQueryTime": { + "default": 10, + "description": "Long query time threshold", + "minimum": 0, + "type": "number" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "metrics": { + "description": "Configuration of a Prometheus-style metrics provider", + "properties": { + "enable": { + "default": false, + "description": "Toggle to enable or disable the metrics sidecar", + "type": "boolean" + }, + "image": { + "description": "Name of an image to be used for the metrics sidecar, if provided metrics will be enabled", + "type": "string" + }, + "monitor": { + "default": false, + "description": "Create a ServiceMonitor for Prometheus Operator", + "type": "boolean" + }, + "monitorSpec": { + "default": {}, + "description": "Custom configuration for the ServiceMonitor object", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "options": { + "description": "Options passed to the metrics provider as command line arguments", + "items": { + "type": "string" + }, + "type": "array" + }, + "tlsSecret": { + "description": "Name of a Secret with TLS certificate, key and CA, which will be mounted at /tls into the container an can be used from webConfig", + "type": "string" + }, + "webConfig": { + "description": "Name of a ConfigMap with a web.config file, if this option is provided a command line option --web.config.file is added", + "type": "string" + } + }, + "required": [ + "enable", + "image" + ], + "type": "object", + "additionalProperties": false + }, + "mycnf": { + "description": "Custom configuration additions for my.cnf", + "type": "string" + }, + "podAnnotations": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podLabels": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podSpec": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "readReplicas": { + "items": { + "properties": { + "baseServerId": { + "default": 0, + "description": "Base value for MySQL server_id for instances of the readReplica, if 0 it will be assigned automatically", + "maximum": 4294967195, + "minimum": 0, + "type": "integer" + }, + "datadirVolumeClaimTemplate": { + "description": "Template for a PersistentVolumeClaim, to be used as datadir", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "instances": { + "default": 1, + "description": "Number of MySQL instances for the set of read replica", + "maximum": 999, + "minimum": 1, + "type": "integer" + }, + "mycnf": { + "description": "Custom configuration additions for my.cnf", + "type": "string" + }, + "name": { + "type": "string" + }, + "podAnnotations": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podLabels": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podSpec": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "version": { + "description": "MySQL Server version", + "pattern": "^\\d+\\.\\d+\\.\\d+(-.+)?", + "type": "string" + } + }, + "required": [ + "name", + "baseServerId" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "router": { + "description": "MySQL Router specification", + "properties": { + "bootstrapOptions": { + "description": "Command line options passed to MySQL Router while bootstrapping", + "items": { + "type": "string" + }, + "type": "array" + }, + "instances": { + "default": 1, + "description": "Number of MySQL Router instances to deploy", + "minimum": 0, + "type": "integer" + }, + "options": { + "description": "Command line options passed to MySQL Router while running", + "items": { + "type": "string" + }, + "type": "array" + }, + "podAnnotations": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podLabels": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podSpec": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "routingOptions": { + "description": "Set routing options for the cluster", + "properties": { + "invalidated_cluster_policy": { + "enum": [ + "drop_all", + "accept_ro" + ], + "type": "string" + }, + "read_only_targets": { + "enum": [ + "all", + "read_replicas", + "secondaries" + ], + "type": "string" + }, + "stats_updates_frequency": { + "default": 0, + "minimum": 0, + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "tlsSecretName": { + "description": "Name of a TLS type Secret containing MySQL Router certificate and private key used for SSL", + "type": "string" + }, + "version": { + "description": "Override MySQL Router version", + "pattern": "^\\d+\\.\\d+\\.\\d+(-.+)?", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "secretName": { + "description": "Name of a generic type Secret containing root/default account password", + "type": "string" + }, + "service": { + "description": "Configuration of the Service used by applications connecting to the InnoDB Cluster", + "properties": { + "annotations": { + "description": "Custom annotations for the Service", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "defaultPort": { + "default": "mysql-rw", + "description": "Target for the Service's default (3306) port. If mysql-rw traffic will go to the primary and allow read and write operations, with mysql-ro traffic goes to the replica and allows only read operations, with mysql-rw-split the router's read-write-splitting will be targeted", + "enum": [ + "mysql-rw", + "mysql-ro", + "mysql-rw-split" + ], + "type": "string" + }, + "labels": { + "description": "Custom labels for the Service", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "type": { + "default": "ClusterIP", + "enum": [ + "ClusterIP", + "NodePort", + "LoadBalancer" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "serviceAccountName": { + "type": "string" + }, + "tlsCASecretName": { + "description": "Name of a generic type Secret containing CA (ca.pem) and optional CRL (crl.pem) for SSL", + "type": "string" + }, + "tlsSecretName": { + "description": "Name of a TLS type Secret containing Server certificate and private key for SSL", + "type": "string" + }, + "tlsUseSelfSigned": { + "default": false, + "description": "Enables use of self-signed TLS certificates, reducing or disabling TLS based security verifications", + "type": "boolean" + }, + "version": { + "description": "MySQL Server version", + "pattern": "^\\d+\\.\\d+\\.\\d+(-.+)?", + "type": "string" + } + }, + "required": [ + "secretName" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "required": [ + "spec" + ], + "type": "object" +} diff --git a/mysql.oracle.com/mysqlbackup_v2.json b/mysql.oracle.com/mysqlbackup_v2.json new file mode 100644 index 00000000..a9e19d03 --- /dev/null +++ b/mysql.oracle.com/mysqlbackup_v2.json @@ -0,0 +1,187 @@ +{ + "properties": { + "spec": { + "properties": { + "addTimestampToBackupDirectory": { + "default": true, + "type": "boolean" + }, + "backupProfile": { + "description": "backupProfile specification if backupProfileName is not specified", + "properties": { + "dumpInstance": { + "properties": { + "dumpOptions": { + "description": "A dictionary of key-value pairs passed directly to MySQL Shell's DumpInstance()", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "storage": { + "properties": { + "azure": { + "properties": { + "config": { + "description": "Name of a Secret with Azure BLOB Storage configuration and credentials", + "type": "string" + }, + "containerName": { + "description": "Name of the Azure BLOB Storage container where the dump is stored", + "type": "string" + }, + "prefix": { + "description": "Path in the container where the dump files are stored", + "type": "string" + } + }, + "required": [ + "containerName", + "config" + ], + "type": "object", + "additionalProperties": false + }, + "ociObjectStorage": { + "properties": { + "bucketName": { + "description": "Name of the OCI bucket where backup is stored", + "type": "string" + }, + "credentials": { + "description": "Name of a Secret with data for accessing the bucket", + "type": "string" + }, + "prefix": { + "description": "Path in bucket where backup is stored", + "type": "string" + } + }, + "required": [ + "bucketName", + "credentials" + ], + "type": "object", + "additionalProperties": false + }, + "persistentVolumeClaim": { + "description": "Specification of the PVC to be used. Used 'as is' in pod executing the backup.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "s3": { + "properties": { + "bucketName": { + "description": "Name of the S3 bucket where the dump is stored", + "type": "string" + }, + "config": { + "description": "Name of a Secret with S3 configuration and credentials", + "type": "string" + }, + "endpoint": { + "description": "Override endpoint URL", + "type": "string" + }, + "prefix": { + "description": "Path in the bucket where the dump files are stored", + "type": "string" + }, + "profile": { + "default": "", + "description": "Profile being used in configuration files", + "type": "string" + } + }, + "required": [ + "bucketName", + "config" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "podAnnotations": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "podLabels": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true, + "additionalProperties": false + }, + "backupProfileName": { + "type": "string" + }, + "clusterName": { + "type": "string" + }, + "deleteBackupData": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "clusterName" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "bucket": { + "type": "string" + }, + "completionTime": { + "type": "string" + }, + "container": { + "type": "string" + }, + "elapsedTime": { + "type": "string" + }, + "message": { + "type": "string" + }, + "method": { + "type": "string" + }, + "ociTenancy": { + "type": "string" + }, + "output": { + "type": "string" + }, + "size": { + "type": "string" + }, + "source": { + "type": "string" + }, + "spaceAvailable": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +}