You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+95-14Lines changed: 95 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -4,31 +4,48 @@
4
4
5
5
As part of Oracle's resolution to make Oracle Database Kubernetes native (that is, observable and operable by Kubernetes), Oracle released _Oracle Database Operator for Kubernetes_ (`OraOperator` or the operator). OraOperator extends the Kubernetes API with custom resources and controllers for automating Oracle Database lifecycle management.
6
6
7
-
In this v1.0.0 production release, `OraOperator` supports the following database configurations and infrastructure:
7
+
In this v1.1.0 production release, `OraOperator` supports the following database configurations and infrastructure:
* SIDB: Provision, clone, patch (in-place/out-of-place), update database initialization parameters, update database configuration (Flashback, archiving), Oracle Enterprise Manager (EM) Express (a basic observability console), Oracle REST Data Service (ORDS) to support REST based SQL, PDB management, SQL Developer Web, and Application Express (Apex)
28
43
* SHARDED: Provision/deploy sharded databases and the shard topology, Add a new shard, Delete an existing shard
29
44
* Oracle Multitenant Database: Bind to a CDB, Create a PDB, Plug a PDB, Unplug a PDB, Delete a PDB, Clone a PDB, Open/Close a PDB
30
45
* Oracle Base Database Cloud Service (BDBCS): provision, bind, scale shape Up/Down, Scale Storage Up, Terminate and Update License
31
46
* Oracle Data Guard: Provision a Standby for the SIDB resource, Create a Data Guard Configuration, Perform a Switchover, Patch Primary and Standby databases in Data Guard Configuration
OraOperator supports the following two modes of deployment:
81
+
##### 1. Cluster Scoped Deployment
82
+
83
+
This is the default mode, in which OraOperator is deployed to operate in a cluster, and to monitor all the namespaces in the cluster.
84
+
85
+
- Grant the `serviceaccount:oracle-database-operator-system:default` cluster wide access for the resources by applying [cluster-role-binding.yaml](./rbac/cluster-role-binding.yaml)
86
+
87
+
```sh
88
+
kubectl apply -f rbac/cluster-role-binding.yaml
89
+
```
90
+
91
+
- Next, apply the [oracle-database-operator.yaml](./oracle-database-operator.yaml) to deploy the Operator
92
+
93
+
```sh
94
+
kubectl apply -f oracle-database-operator.yaml
95
+
```
96
+
97
+
##### 2. Namespace Scoped Deployment
62
98
63
-
To install the operator in the cluster quickly, you can use a single [oracle-database-operator.yaml](https://github.com/oracle/oracle-database-operator/blob/main/oracle-database-operator.yaml) file.
99
+
In this mode, OraOperator can be deployed to operate in a namespace, and to monitor one or many namespaces.
64
100
65
-
Run the following command
101
+
- Grant `serviceaccount:oracle-database-operator-system:default` service account with resource access in the required namespaces. For example, to monitor only the default namespace, apply the [default-ns-role-binding.yaml](./rbac/default-ns-role-binding.yaml)
To watch additional namespaces, create different role binding files for each namespace, using [default-ns-role-binding.yaml](./rbac/default-ns-role-binding.yaml) as a template, and changing the `metadata.name` and `metadata.namespace` fields
107
+
108
+
- Next, edit the [oracle-database-operator.yaml](./oracle-database-operator.yaml) to add the required namespaces under `WATCH_NAMESPACE`. Use comma-delimited values for multiple namespaces.
109
+
110
+
```sh
111
+
- name: WATCH_NAMESPACE
112
+
value: "default"
113
+
```
114
+
- Finally, apply the edited [oracle-database-operator.yaml](./oracle-database-operator.yaml) to deploy the Operator
115
+
116
+
```sh
117
+
kubectl apply -f oracle-database-operator.yaml
118
+
```
119
+
120
+
121
+
*### ClusterRole and ClusterRoleBinding for NodePort services
122
+
123
+
To expose services on each node's IP and port (the NodePort) apply the [node-rbac.yaml](./rbac/node-rbac.yaml). Note that this step is not required for LoadBalancer services.
After you have completed the preceding prerequisite changes, you can install the operator. To install the operator in the cluster quickly, you can apply the modified `oracle-database-operator.yaml` file from the preceding step.
132
+
133
+
Run the following command
134
+
135
+
```sh
136
+
kubectl apply -f oracle-database-operator.yaml
137
+
```
138
+
71
139
Ensure that the operator pods are up and running. For high availability, Operator pod replicas are set to a default of 3. You can scale this setting up or down.
72
140
73
141
```sh
@@ -86,9 +154,9 @@ You should see that the operator is up and running, along with the shipped contr
86
154
87
155
For more details, see [Oracle Database Operator Installation Instructions](./docs/installation/OPERATOR_INSTALLATION_README.md).
88
156
89
-
## Getting Started
157
+
## Getting Started with the Operator (Quickstart)
90
158
91
-
The quickstarts are designed for specific database configurations:
159
+
The following quickstarts are designed for specific database configurations:
YAML file templates are available under [`/config/samples`](./config/samples/). You can copy and edit these template files to configure them for your use cases.
101
173
102
174
## Uninstall the Operator
103
175
104
176
To uninstall the operator, the final step consists of deciding whether you want to delete the custom resource definitions (CRDs) and Kubernetes APIServices introduced into the cluster by the operator. Choose one of the following options:
105
177
106
-
*### Deleting the CRDs and APIServices
178
+
* ### Delete the CRDs and APIServices
107
179
108
180
To delete all the CRD instances deployed to cluster by the operator, run the following commands, where <namespace> is the namespace of the cluster object:
109
181
@@ -119,8 +191,17 @@ YAML file templates are available under [`/config/samples`](./config/samples/).
After all CRD instances are deleted, it is safe to remove the CRDs, APIServices and operator deployment. To remove these files, use the following command:
125
206
126
207
```sh
@@ -129,7 +210,7 @@ YAML file templates are available under [`/config/samples`](./config/samples/).
129
210
130
211
Note: If the CRD instances are not deleted, and the operator is deleted by using the preceding command, then operator deployment and instance objects (pods, services, PVCs, and so on) are deleted. However, if that happens, then the CRD deletion stops responding. This is because the CRD instances have properties that prevent their deletion, and that can only be removed by the operator pod, which is deleted when the APIServices are deleted.
131
212
132
-
## Docs of the supported Oracle Database configurations
213
+
## Documentation for the supported Oracle Database configurations
* [Components of Dedicated Autonomous Database](https://docs.oracle.com/en-us/iaas/autonomous-database/doc/components.html)
@@ -143,7 +224,7 @@ See [Contributing to this Repository](./CONTRIBUTING.md)
143
224
144
225
## Support
145
226
146
-
You can submit a GitHub issue, and/or you file an [Oracle Support service](https://support.oracle.com/portal/) request, using this product ID: 14430.
227
+
You can submit a GitHub issue, oir submit an issue and then file an [Oracle Support service](https://support.oracle.com/portal/) request. To file an issue or a service request, use the following product ID: 14430.
147
228
148
229
## Security
149
230
@@ -168,5 +249,5 @@ See [Reporting security vulnerabilities](./SECURITY.md)
168
249
169
250
## License
170
251
171
-
Copyright (c) 2022, 2023 Oracle and/or its affiliates.
252
+
Copyright (c) 2022, 2024 Oracle and/or its affiliates.
172
253
Released under the Universal Permissive License v1.0 as shown at [https://oss.oracle.com/licenses/upl/](https://oss.oracle.com/licenses/upl/)
0 commit comments