-
Epic
-
Resolution: Done
-
Normal
-
None
-
None
-
Combine AnsibleEE logic with Dataplane controller
-
5
-
False
-
-
False
-
Not Selected
-
Proposed
-
Committed
-
To Do
-
Proposed
-
Proposed
-
0% To Do, 14% In Progress, 86% Done
-
-
Enhancement
-
Done
-
Regression Only
-
-
Summary
We currently maintain the openstack-ansibleee-operator to simply create Kubernetes jobs that execute Ansible EE pods. This is fairly heavy for what is essentially just job creation and webhook validation.
To minimise the maintenance burden on the team, we should combine this logic with the dataplane. Additionally, this will reduce the footprint that we occupy in etcd by removing the unnecessary CRD and CR's.
Objective
Move all logic related to creating AEE jobs from the openstack-ansibleee-operator into the dataplane-operator and deprecate openstack-ansibleee-operator.
Method
Take existing logic from the openstack-ansibleee-operator a place in a new lib-common package. Along with a new struct called `AnsibleEEJob` to replace the existing OpenStackAnsibleEE custom resource.
Import the package into the `ansible_execution.go` file.
Initialise the new struct here:
https://github.com/openstack-k8s-operators/openstack-operator/blob/main/pkg/dataplane/util/ansible_execution.go#L68-L76
Instead of `CreateOrPatch` here, we will populate the new struct:
https://github.com/openstack-k8s-operators/openstack-operator/blob/main/pkg/dataplane/util/ansible_execution.go#L78-L227
Pass the AnsibleEEJob struct into the existing openstack-ansibleee functions that were imported into lib-common to have it create the Kubernetes Jobs responsible for executing the AnsibleEE pods.
Outcome
We will have one less operator to maintain, while having a consolidated code path for our dataplane management.
Considerations
Dataplane operator is currently being merged with Openstack Operator. We should be careful to consider this work while it's still in progress. Either wait entirely until it's merged, or ensure we're testing with the build of OpenStack Operator that contains the Dataplane controllers.