Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-7650

Combine the openstack-ansibleee-operator logic with Dataplane Operator

XMLWordPrintable

    • Combine AnsibleEE logic with Dataplane controller
    • 5
    • False
    • Hide

      None

      Show
      None
    • False
    • Not Selected
    • Proposed
    • Committed
    • To Do
    • Proposed
    • Proposed
    • 0% To Do, 14% In Progress, 86% Done
    • Hide
      .OpenStackAnsibleEE custom resource replaced with functionality in openstack-operator

      Enhancement:
      The OpenStackAnsibleEE custom resource has been removed along with the openstack-ansibleee-operator. This functionality has been integrated into the openstack-operator to allow the direct creation of Kubernetes jobs without the unnecessary abstraction provided by the additional operator and associated custom resource.

      Reason:
      The additional abstraction was unnecessary. This change reduces the amount of code that we need to maintain, along with reducing the number of CRD's and operators running in the cluster.

      Result:
      Users can expect that there will no longer be any OpenStackAnsibleEE resources created when they deploy dataplane nodes. Instead, they will just see Kubernetes Jobs.

      Existing OpenStackAnsibleEE resources will remain in the cluster for posterity, or if users no longer require them for historical reference, they can be deleted. Documentation is provided to cleanup unnecessary resources and operators.
      Show
      .OpenStackAnsibleEE custom resource replaced with functionality in openstack-operator Enhancement: The OpenStackAnsibleEE custom resource has been removed along with the openstack-ansibleee-operator. This functionality has been integrated into the openstack-operator to allow the direct creation of Kubernetes jobs without the unnecessary abstraction provided by the additional operator and associated custom resource. Reason: The additional abstraction was unnecessary. This change reduces the amount of code that we need to maintain, along with reducing the number of CRD's and operators running in the cluster. Result: Users can expect that there will no longer be any OpenStackAnsibleEE resources created when they deploy dataplane nodes. Instead, they will just see Kubernetes Jobs. Existing OpenStackAnsibleEE resources will remain in the cluster for posterity, or if users no longer require them for historical reference, they can be deleted. Documentation is provided to cleanup unnecessary resources and operators.
    • 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.

              rhn-support-bshephar Brendan Shephard
              rhn-support-bshephar Brendan Shephard
              rhos-dfg-df
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: