oracle / oracle-database-operator

The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.
Universal Permissive License v1.0
141 stars 45 forks source link

K8s service clash when name is identical (SIDB/ORDS) #56

Closed gotsysdba closed 1 year ago

gotsysdba commented 1 year ago

Hello, Given the following abbrv. manifest (note that order was determined by kustomize):

apiVersion: database.oracle.com/v1alpha1
kind: OracleRestDataService
metadata:
  name: myproj
  namespace: oracle-database-operator-system
spec:
  databaseRef: myproj
---
apiVersion: database.oracle.com/v1alpha1
kind: SingleInstanceDatabase
  name: myproj
  namespace: oracle-database-operator-system

When applied, the cluster-wide service for the database is not created because the ORDS one, of the same name, gets in first:

NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         
service/myproj          NodePort    10.108.1.151     <none>        8443:32279/TCP                  
service/myproj          NodePort    10.108.217.120   <none>        5500:31293/TCP,1521:32571/TCP

First impressions looks like everything is working fine (both SIDB and ORDS pods are in a running/ready state). However, ORDS does fail to install as it cannot connect to the database due to the missing ClusterIP service, but this is only determined by examining the logs. Other services cannot connect to the database, except through the -ext service. No errors are raised during apply.

Resolved by ensuring names were unique (by appending -db/-ords). Result:

NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      
service/myproj-db       ClusterIP   10.100.48.43    <none>        1521/TCP                     
service/myproj-db-ext   NodePort    10.109.9.224    <none>        5500:31574/TCP,1521:30682/TCP
service/myproj-ords     NodePort    10.100.53.16    <none>        8443:31610/TCP
vatsrahul commented 1 year ago

This is addressed in 1.0.0