oracle/operator.yaml (4,256 lines of code) (raw):

apiVersion: v1 kind: Namespace metadata: labels: control-plane: controller-manager name: operator-system --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: backups.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: Backup listKind: BackupList plural: backups singular: backup scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.instance name: Instance Name type: string - jsonPath: .spec.type name: Backup Type type: string - jsonPath: .spec.subType name: Backup SubType type: string - jsonPath: .spec.dop name: DOP type: integer - jsonPath: .spec.backupset name: BS/IC type: boolean - jsonPath: .spec.gcsPath name: GCS Path type: string - jsonPath: .status.phase name: Phase type: string - jsonPath: .status.backupid name: Backup ID type: string - jsonPath: .status.backuptime name: Backup Time type: string - jsonPath: .status.startTime name: Start Time type: string - jsonPath: .status.duration name: Duration type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: ReadyStatus priority: 1 type: string - jsonPath: .status.conditions[?(@.type=="Ready")].reason name: ReadyReason priority: 1 type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: ReadyMessage priority: 1 type: string name: v1alpha1 schema: openAPIV3Schema: description: Backup is the Schema for the backups API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: BackupSpec defines the desired state of Backup. properties: backupItems: description: For a Physical backup this slice can be used to indicate what PDBs, schemas, tablespaces or tables to back up. items: type: string type: array backupset: description: For a Physical backup the choices are Backupset and Image Copies. Backupset is the default, but if Image Copies are required, flip this flag to false. type: boolean checkLogical: description: For a Physical backup, optionally turn on an additional "check logical" option. The default is off. type: boolean compressed: description: For a Physical backup, optionally turn on compression, by flipping this flag to true. The default is false. type: boolean dop: description: For a Physical backup, optionally indicate a degree of parallelism also known as DOP. format: int32 maximum: 100 minimum: 1 type: integer filesperset: description: For a Physical backup, optionally specify filesperset. The default depends on a type of backup, generally 64. format: int32 type: integer gcsDir: description: Similar to GcsPath but specify a Gcs directory. The backup sets of physical backup will be transferred to this GcsDir under a folder named .backup.Spec.Name. This field is usually set in .backupSchedule.Spec.backSpec to specify a GcsDir which all scheduled backups will be uploaded to. A user is to ensure proper write access to the bucket from within the Oracle Operator. pattern: ^gs:\/\/.+$ type: string gcsPath: description: If set up ahead of time, the backup sets of a physical backup can be optionally transferred to a GCS bucket. A user is to ensure proper write access to the bucket from within the Oracle Operator. pattern: ^gs:\/\/.+$ type: string instance: description: Instance is a name of an instance to take a backup for. type: string keepDataOnDeletion: description: KeepDataOnDeletion defines whether to keep backup data when backup resource is removed. The default value is false. type: boolean level: description: For a Physical backup, optionally specify an incremental level. The default is 0 (the whole database). format: int32 type: integer localPath: description: For a Physical backup, optionally specify a local backup dir. If omitted, /u03/app/oracle/rman is assumed. type: string mode: description: Mode specifies how this backup will be managed by the operator. if it is not set, the operator tries to create a backup based on the specifications. if it is set to VerifyExists, the operator verifies the existence of a backup. enum: - VerifyExists type: string sectionSize: anyOf: - type: integer - type: string description: For a Physical backup, optionally specify a section size in various units (K M G). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true subType: description: 'Backup sub-type, which is only relevant for a Physical backup type (e.g. RMAN). If omitted, the default of Instance(Level) is assumed. Supported options at this point are: Instance or Database level backups.' enum: - Instance - Database - Tablespace - Datafile type: string timeLimitMinutes: description: For a Physical backup, optionally specify the time threshold. If a threshold is reached, the backup request would time out and error out. The threshold is expressed in minutes. Don't include the unit (minutes), just the integer. format: int32 type: integer type: description: 'Type describes a type of a backup to take. Immutable. Available options are: - Snapshot: storage level disk snapshot. - Physical: database engine specific backup that relies on a redo stream / continuous archiving (WAL) and may allow a PITR. Examples include pg_backup, pgBackRest, mysqlbackup. A Physical backup may be file based or database block based (e.g. Oracle RMAN). - Logical: database engine specific backup that relies on running SQL statements, e.g. mysqldump, pg_dump, expdp. If not specified, the default of Snapshot is assumed.' enum: - Snapshot - Physical - Logical type: string volumeSnapshotClass: description: VolumeSnapshotClass points to a particular CSI driver and is used for taking a volume snapshot. If requested here at the Backup level, this setting overrides the platform default as well as the default set via the Config (global user preferences). type: string type: object status: description: BackupStatus defines the observed state of Backup. properties: backupid: type: string backuptime: type: string conditions: description: Conditions represents the latest available observations of the backup's current state. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map duration: type: string gcsPath: type: string phase: description: Phase is a summary of current state of the Backup. type: string startTime: format: date-time type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: backupschedules.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: BackupSchedule listKind: BackupScheduleList plural: backupschedules singular: backupschedule scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: BackupSchedule is the Schema for the backupschedules API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: backupLabels: additionalProperties: type: string description: BackupLabels define the desired labels that scheduled backups will be created with. type: object backupRetentionPolicy: description: BackupRetentionPolicy is the policy used to trigger automatic deletion of backups produced from this BackupSchedule. properties: backupRetention: description: BackupRetention is the number of successful backups to keep around. The default is 7. A value of 0 means "do not delete backups based on count". Max of 512 allows for ~21 days of hourly backups or ~1.4 years of daily backups. format: int32 maximum: 512 minimum: 0 type: integer type: object backupSpec: description: BackupSpec defines the Backup that will be created on the provided schedule. properties: backupItems: description: For a Physical backup this slice can be used to indicate what PDBs, schemas, tablespaces or tables to back up. items: type: string type: array backupset: description: For a Physical backup the choices are Backupset and Image Copies. Backupset is the default, but if Image Copies are required, flip this flag to false. type: boolean checkLogical: description: For a Physical backup, optionally turn on an additional "check logical" option. The default is off. type: boolean compressed: description: For a Physical backup, optionally turn on compression, by flipping this flag to true. The default is false. type: boolean dop: description: For a Physical backup, optionally indicate a degree of parallelism also known as DOP. format: int32 maximum: 100 minimum: 1 type: integer filesperset: description: For a Physical backup, optionally specify filesperset. The default depends on a type of backup, generally 64. format: int32 type: integer gcsDir: description: Similar to GcsPath but specify a Gcs directory. The backup sets of physical backup will be transferred to this GcsDir under a folder named .backup.Spec.Name. This field is usually set in .backupSchedule.Spec.backSpec to specify a GcsDir which all scheduled backups will be uploaded to. A user is to ensure proper write access to the bucket from within the Oracle Operator. pattern: ^gs:\/\/.+$ type: string gcsPath: description: If set up ahead of time, the backup sets of a physical backup can be optionally transferred to a GCS bucket. A user is to ensure proper write access to the bucket from within the Oracle Operator. pattern: ^gs:\/\/.+$ type: string instance: description: Instance is a name of an instance to take a backup for. type: string keepDataOnDeletion: description: KeepDataOnDeletion defines whether to keep backup data when backup resource is removed. The default value is false. type: boolean level: description: For a Physical backup, optionally specify an incremental level. The default is 0 (the whole database). format: int32 type: integer localPath: description: For a Physical backup, optionally specify a local backup dir. If omitted, /u03/app/oracle/rman is assumed. type: string mode: description: Mode specifies how this backup will be managed by the operator. if it is not set, the operator tries to create a backup based on the specifications. if it is set to VerifyExists, the operator verifies the existence of a backup. enum: - VerifyExists type: string sectionSize: anyOf: - type: integer - type: string description: For a Physical backup, optionally specify a section size in various units (K M G). pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true subType: description: 'Backup sub-type, which is only relevant for a Physical backup type (e.g. RMAN). If omitted, the default of Instance(Level) is assumed. Supported options at this point are: Instance or Database level backups.' enum: - Instance - Database - Tablespace - Datafile type: string timeLimitMinutes: description: For a Physical backup, optionally specify the time threshold. If a threshold is reached, the backup request would time out and error out. The threshold is expressed in minutes. Don't include the unit (minutes), just the integer. format: int32 type: integer type: description: 'Type describes a type of a backup to take. Immutable. Available options are: - Snapshot: storage level disk snapshot. - Physical: database engine specific backup that relies on a redo stream / continuous archiving (WAL) and may allow a PITR. Examples include pg_backup, pgBackRest, mysqlbackup. A Physical backup may be file based or database block based (e.g. Oracle RMAN). - Logical: database engine specific backup that relies on running SQL statements, e.g. mysqldump, pg_dump, expdp. If not specified, the default of Snapshot is assumed.' enum: - Snapshot - Physical - Logical type: string volumeSnapshotClass: description: VolumeSnapshotClass points to a particular CSI driver and is used for taking a volume snapshot. If requested here at the Backup level, this setting overrides the platform default as well as the default set via the Config (global user preferences). type: string type: object schedule: description: Schedule is a cron-style expression of the schedule on which Backup will be created. For allowed syntax, see en.wikipedia.org/wiki/Cron and godoc.org/github.com/robfig/cron. type: string startingDeadlineSeconds: description: StartingDeadlineSeconds is an optional deadline in seconds for starting the backup creation if it misses scheduled time for any reason. The default is 30 seconds. format: int64 type: integer suspend: description: Suspend tells the controller to suspend operations - both creation of new Backup and retention actions. This will not have any effect on backups currently in progress. Default is false. type: boolean required: - backupSpec - schedule type: object status: description: BackupScheduleStatus defines the observed state of BackupSchedule. properties: backupHistory: description: BackupHistory stores the records for up to 7 of the latest backups. items: description: BackupHistoryRecord is a historical record of a Backup. properties: backupName: description: BackupName is the name of the Backup that gets created. nullable: true type: string creationTime: description: CreationTime is the time that the Backup gets created. format: date-time nullable: true type: string phase: description: Phase tells the state of the Backup. type: string required: - backupName - creationTime type: object type: array backupTotal: description: BackupTotal stores the total number of current existing backups created by this backupSchedule. format: int32 type: integer conditions: description: Conditions of the BackupSchedule. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array lastBackupTime: description: LastBackupTime is the time the last Backup was created for this BackupSchedule. format: date-time nullable: true type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: configs.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: Config listKind: ConfigList plural: configs singular: config scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.platform name: Platform type: string - jsonPath: .spec.diskSizes name: Disk Sizes type: string - jsonPath: .spec.storageClass name: Storage Class type: string - jsonPath: .spec.volumeSnapshotClass name: Volume Snapshot Class type: string name: v1alpha1 schema: openAPIV3Schema: description: Config is the Schema for the configs API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: ConfigSpec defines the desired state of Config. properties: disks: description: 'Disks slice describes at minimum two disks: data and log (archive log), and optionally a backup disk.' items: description: DiskSpec defines the desired state of a disk. (the structure is deliberately designed to be flexible, as a slice, so that if we change a disk layout for different hosting platforms, the model can be also adjusted to reflect that). properties: accessModes: description: AccessModes contains the desired access modes the volume should have. items: type: string type: array annotations: additionalProperties: type: string description: A map of string keys and values to be stored in the annotations of the PVC. These can be read and write by external tools through Kubernetes. type: object name: description: Name of a disk. type: string selector: description: A label query over volumes to consider for binding. 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 required: - key - operator type: object type: array 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 size: anyOf: - type: integer - type: string description: 'Disk size. If not specified, the defaults are: DataDisk:"100Gi", LogDisk:"150Gi",BackupDisk:"100Gi"' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true storageClass: description: StorageClass points to a particular CSI driver and is used for disk provisioning. type: string volumeName: description: VolumeName is the binding reference to the PersistentVolume tied to this disk. type: string required: - name type: object type: array hostAntiAffinityNamespaces: description: HostAntiAffinityNamespaces is an optional list of namespaces that need to be included in anti-affinity by hostname rule. The effect of the rule is forbidding scheduling a database pod in the current namespace on a host that already runs a database pod in any of the listed namespaces. items: type: string type: array images: additionalProperties: type: string description: Service agent and other data plane agent images. This is an optional map that allows a customer to specify agent images different from those chosen/provided by the operator by default. type: object logLevel: additionalProperties: type: string description: Log Levels for the various components. This is an optional map for component -> log level type: object platform: description: 'Deployment platform. Presently supported values are: GCP (default), BareMetal, Minikube and Kind.' enum: - GCP - BareMetal - Minikube - Kind type: string storageClass: description: Storage class to use for dynamic provisioning. This value varies depending on a platform. For GCP (the default), it is "standard-rwo". type: string volumeSnapshotClass: description: Volume Snapshot class to use for storage snapshots. This value varies from platform to platform. For GCP (the default), it is "csi-gce-pd-snapshot-class". type: string type: object status: description: ConfigStatus defines the observed state of Config. type: object type: object served: true storage: true subresources: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: cronanythings.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: CronAnything listKind: CronAnythingList plural: cronanythings singular: cronanything scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: CronAnything is the Schema for the CronAnything API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: CronAnythingSpec defines the desired state of CronAnything. properties: cascadeDelete: description: CascadeDelete tells CronAnything to set up owner references from the created resources to the CronAnything resource. This means that if the CronAnything resource is deleted, all resources created by it will also be deleted. This is an optional field that defaults to false. type: boolean concurrencyPolicy: description: ConcurrencyPolicy specifies how to treat concurrent resources if the resource provides a status path that exposes completion. The default policy if not provided is to allow a new resource to be created even if an active resource already exists. If the resource doesn’t have an active/completed status, the only supported concurrency policy is to allow creating new resources. This field is mutable. If the policy is changed to a more stringent policy while multiple resources are active, it will not delete any existing resources. The exception is if a creation of a new resource is triggered and the policy has been changed to Replace. If multiple resources are active, they will all be deleted and replaced by a new resource. type: string finishableStrategy: description: FinishableStrategy defines how the CronAnything controller an decide if a resource has completed. Some resources will do some work after they have been created and at some point be finished. Jobs are the most common example. If no strategy is defined, it is assumed that the resources never finish. properties: stringField: description: StringField contains the details for how the CronAnything controller can find the string field on the resource needed to decide if the resource has completed. It also lists the values that mean the resource has completed. properties: fieldPath: description: The path to the field on the resource that contains a string value. type: string finishedValues: description: The values of the field that means the resource has completed. items: type: string type: array required: - fieldPath - finishedValues type: object timestampField: description: TimestampField contains the details for how the CronAnything controller can find the timestamp field on the resource in order to decide if the resource has completed. properties: fieldPath: description: The path to the field on the resource that contains the timestamp. type: string required: - fieldPath type: object type: description: Type tells which strategy should be used. type: string required: - type type: object resourceBaseName: description: ResourceBaseName specifies the base name for the resources created by CronAnything, which will be named using the format <ResourceBaseName>-<Timestamp>. This field is optional, and the default is to use the name of the CronAnything resource as the ResourceBaseName. type: string resourceTimestampFormat: description: ResourceTimestampFormat defines the format of the timestamp in the name of Resources created by CronAnything <ResourceBaseName>-<Timestamp>. This field is optional, and the default is to format the timestamp as unix time. If provided, it must be compatible with time.Format in golang. type: string retention: description: Retention defines the retention policy for resources created by CronAnything. If no retention policy is defined, CronAnything will never delete resources, so cleanup must be handled through some other process. properties: historyCountLimit: description: The number of completed resources to keep before deleting them. This only affects finishable resources and the default value is 3. This field is mutable and if it is changed to a number lower than the current number of finished resources, the oldest ones will eventually be deleted until the number of finished resources matches the limit. format: int32 type: integer historyTimeLimitSeconds: description: The time since completion that a resource is kept before deletion. This only affects finishable resources. This does not have any default value and if it is not provided, HistoryCountLimit will be used to prune completed resources. If both HistoryCountLimit and HistoryTimeLimitSeconds are set, it is treated as an OR operation. format: int64 type: integer resourceTimestampStrategy: description: ResourceTimestampStrategy specifies how the CronAnything controller can find the age of a resource. This is needed to support retention. properties: field: description: FieldResourceTimestampStrategy specifies how the CronAnything controller can find the timestamp for the resource from a field. properties: fieldPath: description: The path to the field on the resource that contains the timestamp. type: string required: - fieldPath type: object type: description: Type tells which strategy should be used. type: string required: - type type: object required: - resourceTimestampStrategy type: object schedule: description: Schedule defines a time-based schedule, e.g., a standard cron schedule such as “@every 10m”. This field is mandatory and mutable. If it is changed, resources will simply be created at the new interval from then on. type: string suspend: description: Suspend tells the controller to suspend creation of additional resources. The default value is false. This field is mutable. It will not affect any existing resources, but only affect creation of additional resources. type: boolean template: description: Template is a template of a resource type for which instances are to be created on the given schedule. This field is mandatory and it must contain a valid template for an existing apiVersion and kind in the cluster. It is immutable, so if the template needs to change, the whole CronAnything resource should be replaced. type: object x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true totalResourceLimit: description: TotalResourceLimit specifies the total number of children allowed for a particular CronAnything resource. If this limit is reached, no additional resources will be created. This limit is mostly meant to avoid runaway creation of resources that could bring down the cluster. Both finished and unfinished resources count against this limit. This field is mutable. If it is changed to a lower value than the existing number of resources, none of the existing resources will be deleted as a result, but no additional resources will be created until the number of child resources goes below the limit. The field is optional with a default value of 100. format: int32 type: integer triggerDeadlineSeconds: description: TriggerDeadlineSeconds defines Deadline in seconds for creating the resource if it missed the scheduled time. If no deadline is provided, the resource will be created no matter how far after the scheduled time. If multiple triggers were missed, only the last will be triggered and only one resource will be created. This field is mutable and changing it will affect the creation of new resources from that point in time. format: int64 type: integer required: - schedule - template type: object status: description: CronAnythingStatus defines the observed state of CronAnything. properties: lastScheduleTime: description: LastScheduleTime keeps track of the scheduled time for the last successfully completed creation of a resource. This is used by the controller to determine when the next resource creation should happen. If creation of a resource is delayed for any reason but eventually does happen, this value will still be updated to the time when it was originally scheduled to happen. format: date-time type: string pendingTrigger: description: PendingTrigger keeps track of any triggers that are past their trigger time, but for some reason have not been completed yet. This is typically a result of the create operation failing. properties: result: description: Result tells why this trigger is in the pending state, i.e. what prevented it from completing successfully. type: string scheduleTime: description: ScheduleTime is the time when this trigger was scheduled to be executed. format: date-time type: string required: - result - scheduleTime type: object triggerHistory: description: TriggerHistory keeps track of the status for the last 10 triggers. This allows users of CronAnything to see whether any triggers failed. It is important to know that this only keeps track of whether a trigger was successfully executed (as in creating the given resource), not whether the created resource was itself successful. For this information, any users of CronAnything should observe the resources created. items: description: TriggerHistoryRecord contains information about the result of a trigger. It can either have completed successfully, and if it did not, the record will provide information about what is the cause of the failure. properties: creationTimestamp: description: CreationTimestamp is the time when this record was created. This is thus also the time at which the final result of the trigger was decided. format: date-time type: string result: description: Result contains the outcome of a trigger. It can either be CreateSucceeded, which means the given resource was created as intended, or it can be one of several error messages. type: string scheduleTime: description: ScheduleTime is the time when this trigger was scheduled to be executed. format: date-time type: string required: - creationTimestamp - result - scheduleTime type: object type: array type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: databases.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: categories: - genericdatabases kind: Database listKind: DatabaseList plural: databases shortNames: - gdb singular: database scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.instance name: Instance type: string - jsonPath: .status.usernames name: Users type: string - jsonPath: .status.phase name: Phase type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: DatabaseReadyStatus type: string - jsonPath: .status.conditions[?(@.type=="Ready")].reason name: DatabaseReadyReason type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: DatabaseReadyMessage priority: 1 type: string - jsonPath: .status.conditions[?(@.type=="UserReady")].status name: UserReadyStatus type: string - jsonPath: .status.conditions[?(@.type=="UserReady")].reason name: UserReadyReason type: string - jsonPath: .status.conditions[?(@.type=="UserReady")].message name: UserReadyMessage priority: 1 type: string name: v1alpha1 schema: openAPIV3Schema: description: Database is the Schema for the databases API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: DatabaseSpec defines the desired state of Database. properties: admin_password: description: AdminPassword is the password for the sys admin of the database. maxLength: 30 minLength: 5 type: string adminPasswordGsmSecretRef: description: AdminPasswordGsmSecretRef is a reference to the secret object containing sensitive information to pass to config agent. This field is optional, and may be empty if plaintext password is used. properties: projectId: description: ProjectId identifies the project where the secret resource is. type: string secretId: description: SecretId identifies the secret. type: string version: description: Version is the version of the secret. If "latest" is specified, underlying the latest SecretId is used. type: string type: object instance: description: Name of the instance that the database belongs to. type: string name: description: Name of the database. type: string users: description: Users specifies an optional list of users to be created in this database. items: description: UserSpec defines the desired state of the Database Users. properties: gsmSecretRef: description: A reference to a GSM secret. properties: projectId: description: ProjectId identifies the project where the secret resource is. type: string secretId: description: SecretId identifies the secret. type: string version: description: Version is the version of the secret. If "latest" is specified, underlying the latest SecretId is used. type: string type: object name: description: Name of the User. type: string password: description: Plaintext password. type: string privileges: description: Privileges specifies an optional list of privileges to grant to the user. items: description: PrivilegeSpec defines the desired state of roles and privileges. type: string type: array secretRef: description: A reference to a k8s secret. properties: name: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic type: object type: array type: object status: description: DatabaseStatus defines the observed state of Database. properties: UserResourceVersions: additionalProperties: type: string description: 'UserResourceVersions is a map of username to user resource version (plaintext or GSM). For GSM Resource version, use format: "projects/{ProjectId}/secrets/{SecretId}/versions/{Version}".' type: object conditions: description: Conditions represents the latest available observations of the Database's current state. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map isChangeApplied: description: IsChangeApplied indicates whether database changes have been applied type: string observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. format: int64 type: integer phase: description: Phase is a summary of the current state of the Database. type: string usernames: description: List of user names. items: type: string type: array type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: exports.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: Export listKind: ExportList plural: exports singular: export scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.instance name: Instance Name type: string - jsonPath: .spec.databaseName name: Database Name type: string - jsonPath: .spec.exportObjectType name: Export Object Type type: string - jsonPath: .spec.exportObjects name: Export Objects type: string - jsonPath: .spec.gcsPath name: GCS Path type: string - jsonPath: .spec.gcsLogPath name: GCS Log Path type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: ReadyStatus type: string - jsonPath: .status.conditions[?(@.type=="Ready")].reason name: ReadyReason type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: ReadyMessage priority: 1 type: string name: v1alpha1 schema: openAPIV3Schema: description: Export is the Schema for the exports API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: ExportSpec defines the desired state of Export properties: databaseName: description: DatabaseName is the database resource name within Instance to export from. type: string exportObjectType: description: 'ExportObjectType is the type of objects to export. If omitted, the default of Schemas is assumed. Supported options at this point are: Schemas or Tables.' enum: - Schemas - Tables type: string exportObjects: description: ExportObjects are objects, schemas or tables, exported by DataPump. items: type: string type: array flashbackTime: description: FlashbackTime is an optional time. If this time is set, the SCN that most closely matches the time is found, and this SCN is used to enable the Flashback utility. The export operation is performed with data that is consistent up to this SCN. format: date-time type: string gcsLogPath: description: GcsLogPath is an optional full path in GCS. If set up ahead of time, export logs can be optionally transferred to set GCS bucket. A user is to ensure proper write access to the bucket from within the Oracle Operator. type: string gcsPath: description: GcsPath is a full path in GCS bucket to transfer exported files to. A user is to ensure proper write access to the bucket from within the Oracle Operator. type: string instance: description: Instance is the resource name within namespace to export from. type: string type: description: Type of the Export. If omitted, the default of DataPump is assumed. enum: - DataPump type: string required: - databaseName - instance type: object status: description: ExportStatus defines the observed state of Export. properties: conditions: description: Conditions represents the latest available observations of the export's current state. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: imports.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: Import listKind: ImportList plural: imports singular: import scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.instance name: Instance Name type: string - jsonPath: .spec.databaseName name: Database Name type: string - jsonPath: .spec.gcsPath name: GCS Path type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: ReadyStatus type: string - jsonPath: .status.conditions[?(@.type=="Ready")].reason name: ReadyReason type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: ReadyMessage priority: 1 type: string - jsonPath: .spec.gcsLogPath name: GCS Log Path type: string name: v1alpha1 schema: openAPIV3Schema: description: Import is the Schema for the imports API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: ImportSpec defines the desired state of Import. properties: databaseName: description: DatabaseName is the database resource name within Instance to import into. type: string gcsLogPath: description: GcsLogPath is an optional path in GCS to copy import log to. A user is to ensure proper write access to the bucket from within the Oracle Operator. type: string gcsPath: description: GcsPath is a full path to the input file in GCS containing import data. A user is to ensure proper write access to the bucket from within the Oracle Operator. type: string instance: description: Instance is the resource name within same namespace to import into. type: string options: additionalProperties: type: string description: Options is a map of options and their values for usage with the specified Import Type. Right now this is only supported for passing additional impdp specific options. type: object type: description: Type of the Import. If not specified, the default of DataPump is assumed, which is the only supported option currently. enum: - DataPump type: string type: object status: description: ImportStatus defines the observed state of Import. properties: conditions: description: Conditions represents the latest available observations of the import's current state. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: instances.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: categories: - genericinstances kind: Instance listKind: InstanceList plural: instances shortNames: - ginst singular: instance scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.type name: DB Engine type: string - jsonPath: .spec.version name: Version type: string - jsonPath: .spec.edition name: Edition type: string - jsonPath: .status.endpoint name: Endpoint type: string - jsonPath: .status.url name: URL type: string - jsonPath: .status.databasenames name: DB Names type: string - jsonPath: .status.backupid name: Backup ID type: string - jsonPath: .status.conditions[?(@.type=="Ready")].status name: ReadyStatus type: string - jsonPath: .status.conditions[?(@.type=="Ready")].reason name: ReadyReason type: string - jsonPath: .status.conditions[?(@.type=="Ready")].message name: ReadyMessage priority: 1 type: string - jsonPath: .status.conditions[?(@.type=="DatabaseInstanceReady")].status name: DBReadyStatus type: string - jsonPath: .status.conditions[?(@.type=="DatabaseInstanceReady")].reason name: DBReadyReason type: string - jsonPath: .status.conditions[?(@.type=="DatabaseInstanceReady")].message name: DBReadyMessage priority: 1 type: string - jsonPath: .status.isChangeApplied name: IsChangeApplied priority: 1 type: string name: v1alpha1 schema: openAPIV3Schema: description: Instance is the Schema for the instances API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: InstanceSpec defines the desired state of Instance. properties: adminUser: description: AdminUser represents the admin user specification properties: forceResetPassword: description: ForceResetPassword defines the flag needed to reset admin user password type: boolean requestTime: description: RequestTime is a date-time to avoid triggering of a password reset repeatedly. If at least one password reset operation has occurred, any further reset operation that have RequestTime same or earlier than CreateTime will be ignored. format: date-time type: string type: object cdbName: description: 'CDBName is the intended name of the CDB attribute. If the CDBName is different from the original name (with which the CDB was created) the CDB will be renamed. The CDBName should meet Oracle SID requirements: uppercase, alphanumeric, max 8 characters, and not start with a number.' maxLength: 8 pattern: ^[A-Z][A-Z0-9]*$ type: string characterSet: description: CharacterSet used to create a database (the default is AL32UTF8). type: string cloudProvider: description: CloudProvider is only relevant if the hosting type is Cloud, MultiCloud, Hybrid or Bare Metal. enum: - GCP - AWS - Azure - OCI type: string databaseGID: description: DatabaseGID represents an OS group ID of a user running a database. format: int64 type: integer databasePatchingTimeout: description: Max threshold for database patching. This timeout is used independently for sts patching and OPatch/datapatch execution. type: string databaseResources: description: Resource specification for the database container. If not specified, a default of 4.0Gi memory request will be used to safeguard the db container without crashes due to memory pressure. 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object databaseUID: description: DatabaseUID represents an OS UID of a user running a database. format: int64 type: integer dbDomain: description: DBDomain is an optional attribute to set a database domain. type: string dbLoadBalancerOptions: description: DBNetworkServiceOptions allows to override some details of kubernetes Service created to expose a connection to database. properties: gcp: description: GCP contains Google Cloud specific attributes for the Kubernetes LoadBalancer. properties: loadBalancerIP: description: LoadBalancerIP is a static IP address, see https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address type: string loadBalancerType: description: A LoadBalancer can be internal or external. See https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer enum: - "" - Internal - External type: string type: object type: object dbUniqueName: description: DBUniqueName represents a unique database name that would be set for a database (if not provided, as a default, the [_generic|_<zone name>] will be appended to a DatabaseName). type: string deploymentType: description: DeploymentType reflects a fully managed (DBaaS) vs. semi-managed database. enum: - "" - InCluster - CloudSQL - RDS type: string disks: description: 'Disks slice describes at minimum two disks: data and log (archive log), and optionally a backup disk.' items: description: DiskSpec defines the desired state of a disk. (the structure is deliberately designed to be flexible, as a slice, so that if we change a disk layout for different hosting platforms, the model can be also adjusted to reflect that). properties: accessModes: description: AccessModes contains the desired access modes the volume should have. items: type: string type: array annotations: additionalProperties: type: string description: A map of string keys and values to be stored in the annotations of the PVC. These can be read and write by external tools through Kubernetes. type: object name: description: Name of a disk. type: string selector: description: A label query over volumes to consider for binding. 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 required: - key - operator type: object type: array 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 size: anyOf: - type: integer - type: string description: 'Disk size. If not specified, the defaults are: DataDisk:"100Gi", LogDisk:"150Gi",BackupDisk:"100Gi"' pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true storageClass: description: StorageClass points to a particular CSI driver and is used for disk provisioning. type: string volumeName: description: VolumeName is the binding reference to the PersistentVolume tied to this disk. type: string required: - name type: object type: array edition: description: Edition of a database. type: string enableDnfs: description: EnableDnfs enables configuration of Oracle's dNFS functionality. type: boolean hostingType: description: HostingType conveys whether an Instance is meant to be hosted on a cloud (single or multiple), on-prem, on Bare Metal, etc. It is meant to be used as a filter and aggregation dimension. enum: - "" - Cloud - MultiCloud - Hybrid - BareMetal - OnPrem type: string images: additionalProperties: type: string description: Service agent and other data plane GCR images. This is an optional map that allows a customer to specify GCR images different from those chosen/provided. type: object isStopped: description: IsStopped is true if an instance is stopped, false otherwise type: boolean maintenanceWindow: description: MaintenanceWindow specifies the time windows during which database downtimes are allowed for maintenance. properties: timeRanges: description: Maintenance time ranges. items: description: TimeRange defines a window of time. Both start time and duration are required. properties: duration: description: Duration of the maintenance window type: string start: description: Start time. format: date-time type: string type: object type: array type: object memoryPercent: description: MemoryPercent represents the percentage of memory that should be allocated for Oracle SGA (default is 25%). maximum: 100 minimum: 0 type: integer mode: description: Mode specifies how this instance will be managed by the operator. enum: - ManuallySetUpStandby - Pause type: string parameters: additionalProperties: type: string description: Parameters contains the database flags in the map format type: object podSpec: description: Spec Configurations for pods of an instance properties: affinity: description: Affinity for Instance Pods properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. items: description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). properties: preference: description: A node selector term, associated with the corresponding weight. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object x-kubernetes-map-type: atomic weight: description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. format: int32 type: integer required: - preference - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array matchFields: description: A list of node selector requirements by node's fields. items: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: 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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator type: object type: array type: object x-kubernetes-map-type: atomic type: array required: - nodeSelectorTerms type: object x-kubernetes-map-type: atomic type: object podAffinity: description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: A label query over a set of resources, in this case pods. 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 required: - key - operator type: object type: array 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 namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. 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 required: - key - operator type: object type: array 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. items: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running properties: labelSelector: description: A label query over a set of resources, in this case pods. 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 required: - key - operator type: object type: array 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 namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. 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 required: - key - operator type: object type: array 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string required: - topologyKey type: object type: array type: object podAntiAffinity: description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: description: A label query over a set of resources, in this case pods. 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 required: - key - operator type: object type: array 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 namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. 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 required: - key - operator type: object type: array 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - podAffinityTerm - weight type: object type: array requiredDuringSchedulingIgnoredDuringExecution: description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. items: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running properties: labelSelector: description: A label query over a set of resources, in this case pods. 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 required: - key - operator type: object type: array 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 namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. 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 required: - key - operator type: object type: array 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 namespaces: description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string required: - topologyKey type: object type: array type: object type: object tolerations: description: Tolerations granting control to schedule/not schedule an instance on a node with a corresponding taint 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 type: object replicationSettings: description: ReplicationSettings provides configuration for initializing an instance as a standby for the specified primary instance. These settings can only be used when initializing an instance, adding them to an already created instance is an error. Once a standby is created with these settings you may promote the standby to its own independent instance by removing these settings. DBUniqueName must be set when initializing a standby instance. properties: backupURI: description: BackupURI is the URI to a copy of the primary's RMAN backup. Standby will be created from this backup when provided. Currently only gs:// (GCS) schemes are supported. type: string passwordFileURI: description: PasswordFileURI is the URI to a copy of the primary's password file for establishing an active dataguard connection. Currently only gs:// (GCS) schemes are supported. type: string primaryHost: description: PrimaryHost is the hostname of the primary's listener. type: string primaryPort: description: PrimaryPort is the port of the primary's listener. format: int32 type: integer primaryServiceName: description: PrimaryServiceName is the service name of the primary database on the listener at PrimaryHost:PrimaryPort. type: string primaryUser: description: PrimaryUser specifies the user name and credential to authenticate to the primary database as. properties: gsmSecretRef: description: A reference to a GSM secret. properties: projectId: description: ProjectId identifies the project where the secret resource is. type: string secretId: description: SecretId identifies the secret. type: string version: description: Version is the version of the secret. If "latest" is specified, underlying the latest SecretId is used. type: string type: object name: description: Name of the User. type: string password: description: Plaintext password. type: string secretRef: description: A reference to a k8s secret. properties: name: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic type: object required: - passwordFileURI - primaryHost - primaryPort - primaryServiceName - primaryUser type: object restore: description: Restore and recovery request details. This section should normally be commented out unless an actual restore/recovery is required. properties: backupId: description: Backup ID to restore from. type: string backupRef: description: Backup reference to restore from. properties: name: description: '`name` is the name of the backup.' type: string namespace: description: '`namespace` is the namespace in which the backup object is created.' type: string type: object backupType: description: 'Backup type to restore from. Oracle only supports: Snapshot or Physical.' enum: - Snapshot - Physical type: string dop: description: Similar to a (physical) backup, optionally indicate a degree of parallelism, also known as DOP. format: int32 maximum: 100 minimum: 1 type: integer force: description: To overwrite an existing, up and running instance, an explicit athorization is required. This is safeguard to avoid accidentally destroying a perfectly healthy (status=Ready) instance. enum: - true - false type: boolean pitrRestore: description: Point In Time Recovery restore spec. properties: incarnation: description: Incarnation number to restore to. This is optional, default to current incarnation. type: string pitrRef: description: PITRRef specifies the PITR object from which to read backup data. properties: name: description: '`name` is the name of the PITR.' type: string namespace: description: '`namespace` is the namespace in which the PITR object is created.' type: string type: object scn: description: SCN to restore to. type: string timestamp: description: Timestamp to restore to. format: date-time type: string type: object requestTime: description: Request version as a date-time to avoid accidental triggering of a restore operation when reapplying an older version of a resource file. If at least one restore operation has occurred, any further restore operation that have the same RequestTime or earlier than the last Restore operation will be ignored. format: date-time type: string timeLimitMinutes: description: Restore time limit. Optional field defaulting to three times the backup time limit. Don't include the unit (minutes), just the integer. format: int32 minimum: 0 type: integer required: - requestTime type: object retainDisksAfterInstanceDeletion: description: RetainDisksAfterInstanceDeletion should be set to true if Persistent Volumes and underlying disks should be retained after the Instance is deleted. The Default value is false, meaning disks are deleted with the instance. type: boolean services: additionalProperties: type: boolean description: Services list the optional semi-managed services that the customers can choose from. type: object sourceCidrRanges: description: Source IP CIDR ranges allowed for a client. items: type: string type: array type: description: Type of a database engine. enum: - Oracle type: string version: description: Version of a database. type: string type: object status: description: InstanceStatus defines the observed state of Instance. properties: ActiveImages: additionalProperties: type: string description: ActiveImages stores the stable images used by the active containers. type: object CurrentActiveStateMachine: description: CurrentActiveStateMachine stores the name of the state machine currently active. type: string DnfsEnabled: description: DnfsEnabled stores whether dNFS has already been enabled or not. type: boolean LastFailedImages: additionalProperties: type: string description: LastFailedImages stores the images which failed the last patching workflow.. type: object adminUser: description: AdminUser represents the observed state of the admin user properties: createTime: description: CreateTime is the time admin user is created or last updated format: date-time type: string expireTime: description: ExpireTime is the expire time of the secret that contains admin user password format: date-time type: string secretRef: description: SecretRef is a reference to the secret that contains admin user password properties: name: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic type: object backupid: description: Last backup ID. type: string conditions: description: Conditions represents the latest available observations of the Instance's current state. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map currentDatabaseIncarnation: description: CurrentDatabaseIncarnation stores the current incarnation number type: string currentParameters: additionalProperties: type: string description: CurrentParameters stores the last successfully set instance parameters. type: object currentReplicationSettings: description: CurrentReplicationSettings stores the current replication settings of the standby instance. Standby data replication uses it to promote a standby instance. It will be updated to match with spec.replicationSettings before promotion. It will be removed once data replication is completed. properties: backupURI: description: BackupURI is the URI to a copy of the primary's RMAN backup. Standby will be created from this backup when provided. Currently only gs:// (GCS) schemes are supported. type: string passwordFileURI: description: PasswordFileURI is the URI to a copy of the primary's password file for establishing an active dataguard connection. Currently only gs:// (GCS) schemes are supported. type: string primaryHost: description: PrimaryHost is the hostname of the primary's listener. type: string primaryPort: description: PrimaryPort is the port of the primary's listener. format: int32 type: integer primaryServiceName: description: PrimaryServiceName is the service name of the primary database on the listener at PrimaryHost:PrimaryPort. type: string primaryUser: description: PrimaryUser specifies the user name and credential to authenticate to the primary database as. properties: gsmSecretRef: description: A reference to a GSM secret. properties: projectId: description: ProjectId identifies the project where the secret resource is. type: string secretId: description: SecretId identifies the secret. type: string version: description: Version is the version of the secret. If "latest" is specified, underlying the latest SecretId is used. type: string type: object name: description: Name of the User. type: string password: description: Plaintext password. type: string secretRef: description: A reference to a k8s secret. properties: name: description: name is unique within a namespace to reference a secret resource. type: string namespace: description: namespace defines the space within which the secret name must be unique. type: string type: object x-kubernetes-map-type: atomic type: object required: - passwordFileURI - primaryHost - primaryPort - primaryServiceName - primaryUser type: object dataGuardOutput: description: DataGuardOutput stores the latest Data Guard utility status output. properties: lastUpdateTime: description: LastUpdateTime is the last time the DataGuardOutput updated based on DB Data Guard utility output. format: date-time type: string statusOutput: description: StatusOutput is the output of "show configuration" and "show database <standby DB unique name>". items: type: string type: array required: - lastUpdateTime - statusOutput type: object databasenames: description: List of database names (e.g. PDBs) hosted in the Instance. items: type: string type: array description: description: Description is for a human consumption. E.g. when an Instance is restored from a backup this field is populated with the human readable restore details. type: string endpoint: description: Endpoint is presently expressed in the format of <instanceName>-svc.<ns>. type: string isChangeApplied: description: IsChangeApplied indicates whether instance changes have been applied type: string lastDatabaseIncarnation: description: LastDatabaseIncarnation stores the parent incarnation number type: string lastFailedParameterUpdate: additionalProperties: type: string description: LastFailedParameterUpdate is used to avoid getting into the failed parameter update loop. type: object lastRestoreTime: format: date-time type: string lockedBy: description: LockedByController is a shared lock field granting exclusive access to maintenance operations to only one controller. Empty value means unlocked. Non-empty value contains the name of the owning controller. type: string observedGeneration: description: ObservedGeneration is the latest generation observed by the controller. format: int64 type: integer phase: description: Phase is a summary of current state of the Instance. type: string url: description: URL represents an IP and a port number info needed in order to establish a database connection from outside a cluster. type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: pitrs.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: PITR listKind: PITRList plural: pitrs singular: pitr scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: PITR is the Schema for the PITR API properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: PITRSpec defines the desired state of PITR properties: backupSchedule: description: Schedule is a cron-style expression of the schedule on which Backup will be created for PITR. For allowed syntax, see en.wikipedia.org/wiki/Cron and godoc.org/github.com/robfig/cron. Default to backup every 4 hours. type: string images: additionalProperties: type: string description: Images defines PITR service agent images. This is a required map that allows a customer to specify GCR images. type: object instanceRef: description: InstanceRef references to the instance that the PITR applies to. properties: name: description: '`name` is the name of a database instance.' type: string type: object storageURI: description: StorageURI is the URI to store PITR backups and redo logs. Currently only gs:// (GCS) schemes are supported. type: string required: - images - instanceRef type: object status: description: PITRStatus defines the observed state of PITR properties: availableRecoveryWindowSCN: description: AvailableRecoveryWindowSCN represents the actual PITR recoverable SCN ranges for an instance in the current timeline/incarnation. items: properties: begin: description: Begin SCN. type: string end: description: End SCN. type: string type: object type: array availableRecoveryWindowTime: description: AvailableRecoveryWindowTime represents the actual PITR recoverable time ranges for an instance in the current timeline/incarnation. items: properties: begin: description: Begin time. format: date-time type: string end: description: End time. format: date-time type: string type: object type: array backupTotal: description: BackupTotal stores the total number of current existing backups managed by a PITR. type: integer conditions: description: Conditions represents the latest available observations of the PITR's current state. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: lastTransitionTime: description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: description: message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 type: string observedGeneration: description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map currentDatabaseIncarnation: description: CurrentDatabaseIncarnation stores the current database incarnation number for the PITR enabled instance. type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.9.2 creationTimestamp: null name: releases.oracle.db.anthosapis.com spec: group: oracle.db.anthosapis.com names: kind: Release listKind: ReleaseList plural: releases singular: release scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.version name: Release type: string name: v1alpha1 schema: openAPIV3Schema: description: Release is the Schema for the releases API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: ReleaseSpec defines the desired state of Release. properties: version: type: string required: - version type: object status: description: ReleaseStatus defines the observed state of Release. type: object type: object served: true storage: true subresources: {} --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: operator-leader-election-role namespace: operator-system rules: - apiGroups: - "" resources: - configmaps verbs: - get - list - watch - create - update - patch - delete - apiGroups: - "" resources: - configmaps/status verbs: - get - update - patch - apiGroups: - "" resources: - events verbs: - create --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: creationTimestamp: null name: operator-manager-role rules: - apiGroups: - "" resources: - configmaps verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - events verbs: - create - patch - apiGroups: - "" resources: - persistentvolumeclaims verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - persistentvolumes verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - pods verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - pods/exec verbs: - create - get - list - patch - update - apiGroups: - "" resources: - pods/log verbs: - get - list - apiGroups: - "" resources: - pods/status verbs: - get - patch - update - apiGroups: - apps resources: - deployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - apps resources: - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - apps resources: - statefulsets/status verbs: - get - patch - update - apiGroups: - coordination.k8s.io resources: - leases verbs: - create - get - list - update - apiGroups: - "" resources: - secrets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - "" resources: - services verbs: - create - delete - get - list - patch - watch - apiGroups: - database.oracle.db.anthosapis.com resources: - databases verbs: - create - delete - get - list - patch - update - watch - apiGroups: - database.oracle.db.anthosapis.com resources: - databases/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - backups verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - backups/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - backupschedules verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - backupschedules/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - configs verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - cronanythings verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - cronanythings/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - databases verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - databases/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - exports verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - exports/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - imports verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - imports/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - instances verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - instances/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - pitrs verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - pitrs/status verbs: - get - patch - update - apiGroups: - oracle.db.anthosapis.com resources: - releases verbs: - create - delete - get - list - patch - update - watch - apiGroups: - oracle.db.anthosapis.com resources: - releases/status verbs: - get - patch - update - apiGroups: - snapshot.storage.k8s.io resources: - volumesnapshotclasses verbs: - get - list - watch - apiGroups: - snapshot.storage.k8s.io resources: - volumesnapshots verbs: - create - delete - get - list - patch - update - watch - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: operator-proxy-role rules: - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: operator-leader-election-rolebinding namespace: operator-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: operator-leader-election-role subjects: - kind: ServiceAccount name: default namespace: operator-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: operator-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: operator-manager-role subjects: - kind: ServiceAccount name: default namespace: operator-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: operator-proxy-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: operator-proxy-role subjects: - kind: ServiceAccount name: default namespace: operator-system --- apiVersion: v1 kind: Service metadata: labels: control-plane: controller-manager name: operator-controller-manager-metrics-service namespace: operator-system spec: ports: - name: https port: 8443 targetPort: https selector: control-plane: controller-manager --- apiVersion: apps/v1 kind: Deployment metadata: labels: control-plane: controller-manager name: operator-controller-manager namespace: operator-system spec: replicas: 1 selector: matchLabels: control-plane: controller-manager template: metadata: labels: control-plane: controller-manager spec: containers: - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=10 image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 name: kube-rbac-proxy ports: - containerPort: 8443 name: https securityContext: capabilities: drop: - NET_RAW - args: - --metrics-addr=127.0.0.1:8080 - --enable-leader-election command: - /manager image: gcr.io/elcarro/oracle.db.anthosapis.com/operator:latest imagePullPolicy: Always name: manager resources: limits: cpu: 1 memory: 240Mi requests: cpu: 1 memory: 200Mi securityContext: capabilities: drop: - NET_RAW terminationGracePeriodSeconds: 10