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