Giter VIP home page Giter VIP logo

Comments (7)

gibizer avatar gibizer commented on August 16, 2024 1

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.

fao89 avatar fao89 commented on August 16, 2024

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.

slagle avatar slagle commented on August 16, 2024

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.

gibizer avatar gibizer commented on August 16, 2024

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.

slagle avatar slagle commented on August 16, 2024

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.

gibizer avatar gibizer commented on August 16, 2024

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.

bshephar avatar bshephar commented on August 16, 2024

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:

  1. 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 the status of the user managed object, and we set it in the spec of the Controller managed objects which means that the k8s object has changed and now we can reconcile the change.
  1. 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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.