-
Notifications
You must be signed in to change notification settings - Fork 50
LREST and LRPDB conceptual issue / enhancement request #170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
About the second item in my opened issue, I would like to give another example: |
Second workaround idea: use an initContainer with kubectl inside, run with a systemaccount that can handle LRPDBs. |
Point one: not a big deal can be implemented in a short run. |
The PDB auto-discovery is a cool and desired thing too. But it is not what I meant actually. My request: remove the attributes "action" and "modifyAction" completely. Let OraOperator find out if things need to be created (like upon first time creation of the resource, then also create or map the PDB behind it if another parameter allows mapping) or updated (like intended PDB state open, close, add another admin user, change parameters). Why: kubernetes deployments are a bit like terraform cloud scripts. They do everything in parallel and the (cloud or kubernetes) environment creates a certain "state" of the managed resources. This intended state is described in the deployment YAMLs (or .tf files) and stored in a database (etcd or terraform state). You should not need to update the same resource multiple times during a single deployment, like pushing out multiple separate "actions" during this rather atomic procedure of deploying something. |
The modify "action" is a legacy which we have to abandon. Unfortunately we cannot do in a short run; please open a git discussion to start the process. |
Basically, I have two requests. One is easy to fix, the other one would require overthinking the principle PDB lifecycle management behaviour in OraOperator.
please add or react on the pdbState attribute when CREATING a PDB. I need PDBs to be OPEN READ/WRITE when created, not just MOUNTED as it is now. I cannot deploy an application or helm chart with two LRPDB yamls dealing with the same PDB, one to create and one to modify it. Since there is no order in which those YAMLs can be run during deployment. I need to workaround this currently by opening the PDB in a script in an initContainer, this needs to connect to the CDB. But my deployment should not need to know about the CDBs credentials and connection because thats why the OraOperator is there ...
The current concept of modifying a PDB state or config by specifying an action of type create, modify, .... breaks the kubernetes way of thinking.
The correct way to got would be that the Operator (OraOperator) needs to find out if a resource is created or altered, and which elements have been altered (e.g. by looking into the versioned fields). So the deployer can simply specify the desired state of the resource and the operator tries to reach that state. The deployer should NOT need to specify the "action" by himself. With this current setup, its hard to deploy or upgrade apps with PDBs inside (see issue 1), and deployment tools like argoCD also complain about the managed resources state being out-of-sync with the GIT repository's state ...
But anyway, I'd be very happy if You could implement issue 1 and just think about issue 2 :)
Best regards!
The text was updated successfully, but these errors were encountered: