elcarro-oracle-operator

module
v0.5.0-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2023 License: Apache-2.0

README

El Carro: The Oracle Operator for Kubernetes

Go Report Card

Run Oracle on Kubernetes with El Carro

El Carro is a new project that offers a way to run Oracle databases in Kubernetes as a portable, open source, community driven, no vendor lock-in container orchestration system. El Carro provides a powerful declarative API for comprehensive and consistent configuration and deployment as well as for real-time operations and monitoring.

High Level Overview

El Carro helps you with the deployment and management of Oracle database software in Kubernetes. You must have appropriate licensing rights to allow you to use it with El Carro (BYOL).

With the current release, you download the El Carro installation bundle, stage the Oracle installation software, create a containerized database image (with or without a seed database), and then create an Instance (known as CDB in Oracle parlance) and add one or more Databases (known as PDBs).

After the El Carro Instance and Database(s) are created, you can take snapshot-based or RMAN-based backups and get basic monitoring and logging information. Additional database services will be added in future releases.

License Notice

You can use El Carro to automatically provision and manage Oracle Database Express Edition (XE) or Oracle Database Enterprise Edition (12c and 19c). In each case, it is your responsibility to ensure that you have appropriate licenses to use any such Oracle software with El Carro.

Please also note that each El Carro “database” will create a pluggable database, which may require licensing of the Oracle Multitenant option.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Quickstart

We recommend starting with the quickstart first, but as you become more familiar with El Carro, consider trying more advanced features by following the user guides linked below.

If you have a valid license for Oracle 12c EE or 19c EE and would like to get your Oracle database up and running on Kubernetes, you can follow the quickstart guide for Oracle 12c or the quickstart guide for Oracle 19c.

As an alternative to Oracle 12c EE or 19c EE, you can use Oracle 18c XE which is free to use by following the quickstart guide for Oracle 18c XE instead.

If you prefer to run El Carro locally on your personal computer, you can follow the user guide for Oracle on minikube or the user guide for Oracle on kind.

Preparation

To prepare the El Carro download and deployment, follow this guide.

Provisioning

El Carro helps you to easily create, scale, and delete Oracle databases.

Firstly, you need to create a containerized database image.

You can optionally create a default Config to set namespace-wide defaults for configuring your databases, following this guide.

Then you can create Instances (known as CDBs in Oracle parlance), following this guide. Afterward, create Databases (known as PDBs) and users following this guide.

Backup and Recovery

El Carro provides both storage snapshot based backup/restore and Oracle native RMAN based backup/restore features to support your database backup and recovery strategy.

After the El Carro Instance and Database(s) are created, you can create storage snapshot based backups, following this guide.

You can also create Oracle native RMAN based backups, following this guide.

To restore from a backup, follow this guide.

Data Import & Export

El Carro provides data import/export features based on Oracle Data Pump.

To import data to your El Carro database, follow this guide.

To export data from your El Carro database, follow this guide.

What's More?

There are more features supported by El Carro and more to be added soon! For more information, check logging, monitoring, connectivity, UI, etc.

Contributing

You're very welcome to contribute to the El Carro Project!

We've put together a set of contributing and development guidelines that you can review in this guide.

Support

To report a bug or log a feature request, please open a GitHub issue and follow the guidelines for submitting a bug.

For general questions or community support, we welcome you to join the El Carro community mailing list and ask your question there.

Directories

Path Synopsis
common
pkg/ns
Package ns provides a way to map entities from one namespace into another.
Package ns provides a way to map entities from one namespace into another.
pkg/utils
Package utils features auxiliary functions for the Anthos DB Operator compliant resources.
Package utils features auxiliary functions for the Anthos DB Operator compliant resources.
api/v1alpha1
Package v1alpha1 contains API Schema definitions for the Oracle v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the Oracle v1alpha1 API group.
cmd/dbdaemon
Database Daemon listens on consts.DomainSocketFile domain socket file (or optionally on a specified TCP port) and accepts requests from other data plane agents running in containers.
Database Daemon listens on consts.DomainSocketFile domain socket file (or optionally on a specified TCP port) and accepts requests from other data plane agents running in containers.
cmd/dbdaemon_client
A client program to interactively test Database Daemon functionality by simulating one of the calls issued from the Agent.
A client program to interactively test Database Daemon functionality by simulating one of the calls issued from the Agent.
cmd/logging
contains a script to tail log files
contains a script to tail log files
pkg/agents/backup
Package backup provides physical database backup utility functions intended to be called from a Config Agent gRPC server.
Package backup provides physical database backup utility functions intended to be called from a Config Agent gRPC server.
pkg/agents/common
Package common provides general utilities.
Package common provides general utilities.
pkg/agents/consts
Package consts provides common Oracle constants across the entire Data Plane.
Package consts provides common Oracle constants across the entire Data Plane.
pkg/agents/security
Package security contains common methods regarding encryption and passwords.
Package security contains common methods regarding encryption and passwords.
pkg/database/dbdaemon
Package dbdaemon implements a gRPC service for running privileged database ops, e.g.
Package dbdaemon implements a gRPC service for running privileged database ops, e.g.
pkg/database/dbdaemonproxy
Package dbdaemonproxy provides access to the database container.
Package dbdaemonproxy provides access to the database container.
pkg/database/lib/detach
Package detach provides basic blocks for running goroutines with a detached context.
Package detach provides basic blocks for running goroutines with a detached context.
pkg/database/lib/lro
Package lro contains an implementation of https://pkg.go.dev/google.golang.org/genproto/googleapis/longrunning#OperationsServer
Package lro contains an implementation of https://pkg.go.dev/google.golang.org/genproto/googleapis/longrunning#OperationsServer
pkg/util/task
Package task implements tasks struct and its utility methods.
Package task implements tasks struct and its utility methods.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL