Comments (7)
did you use openstack-k8s-operators/install_yamls#156 ? Because it sets the deployStrategy to true: https://github.com/fao89/install_yamls/blob/rmedpmplay/scripts/gen-edpm-kustomize.sh#L51-L53
Ahh yes. Then my second point is not an issue. I guess the first point is still valid though.
from dataplane-operator.
did you use openstack-k8s-operators/install_yamls#156 ?
Because it sets the deployStrategy to true: https://github.com/fao89/install_yamls/blob/rmedpmplay/scripts/gen-edpm-kustomize.sh#L51-L53
from dataplane-operator.
The DataPlane DeployStrategy.deploy won't propagate to the node, only the role. The role does a batched deploy with all the nodes in the inventory, so deploy is not set individually on each node.
from dataplane-operator.
so deploy is not set individually on each node.
that still feels weird if lookig at the Node.Spec it has deploy=false but the Node gets deployed.
from dataplane-operator.
so deploy is not set individually on each node.
that still feels weird if lookig at the Node.Spec it has deploy=false but the Node gets deployed.
We do need to update the conditions on the Node to indicate it's deploying/deployed. That's not done yet.
The "deploy" bool means "start an ansible execution with the inventory for this resource". So, we could rename it someway to make it clearer, or separate it into different properties (nodeDeploy, roleDeploy). Then we could set roleDeploy on the node to indicate a role deploy was requested, but really that is what the conditions are for.
from dataplane-operator.
We do need to update the conditions on the Node to indicate it's deploying/deployed. That's not done yet.
ack that will help.
The "deploy" bool means "start an ansible execution with the inventory for this resource". So, we could rename it someway to make it clearer, or separate it into different properties (nodeDeploy, roleDeploy). Then we could set roleDeploy on the node to indicate a role deploy was requested, but really that is what the conditions are for.
Yeah we need some better naming here. In my understanding the Node.Spec describe the expected state of the resource. So if Node.Spec.DeployStrategy.Deploy == false that means this node expected not to be deployed.
from dataplane-operator.
Ideally, I would like to remove this entirely as part of:
#217
My idea would be that when a OpenStackDataPlane
object is created, the user would have the expectation that it WOULD deploy at that stage.
Once the successful deployment has completed, then we assert the annotation on each of the OpenStackDataPlane
objects.
User wishes to redeploy, they simply remove the annotation from the user owned OpenStackDataPlane
. We remove it from the Controller managed objects and reassert the state.
Few things pending with this:
- It's entirely conceivable that a user would like to assert the state in their environment without actually changing anything. Think for example that someone has ssh'd into a node, made some manual changes to
nova.conf
and broken things. Now they want to re-run the execution. Even though from a k8s perspective, nothing has changed about the object. We still need to provide some mechanism to re-execute the jobs. This is where I think the deployIdentifier comes in. Essentially:
- User removes annotation;
- We infer this to mean that they wish to re-run Ansible tasks. So we generate a new, random
deployIdentifier
. - We set the
deployIdentifer
in thestatus
of the user managed object, and we set it in thespec
of the Controller managed objects which means that the k8s object has changed and now we can reconcile the change.
- We need to make sure any logic in our operator that depends on a status condition is rock solid and as simple as we can possibly make it to ensure that we can't get stuck in some indefinite state.
Still a bit of testing and brainstorming to go. But feel free to share any thoughts on:
https://issues.redhat.com/browse/OSP-25708
And the associated Google doc.
from dataplane-operator.
Related Issues (11)
- role controller panics when the secret is not found
- When OpenStackDataPlane is deleted the child OpenStackDataPlaneRole and OpenStackDatalPlaneNode CRs are not deleted. HOT 2
- As a developer, I need functional tests HOT 1
- Dependency Dashboard
- Dataplane status is wrongly set to ready when initialized
- Implement validation webhook call forwarding to OpenStackBaremetalSetSpec HOT 1
- Implement validation webhook call forwarding to IpSet HOT 1
- dataplane operator loops on role reconcile due to self update of deploy stragey field HOT 1
- the ssh private key secret shoudl be of type 'kubernetes.io/ssh-auth'
- Action Required: Fix Renovate Configuration
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dataplane-operator.