Uploaded image for project: 'Ansible Automation Platform RFEs'
  1. Ansible Automation Platform RFEs
  2. AAPRFE-2514

AAP Operator support for adding 'additional_labels' across all Components

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False

      1. What is the nature and description of the request?

      Customers require the ability to set and manage additional custom persistent Pod labels across all AAP component Pods (Controller, EDA, Hub, etc.) via the main AnsibleAutomationPlatform Operator CRD (the standard main Operator that in turn will create all the other underlying AAP objects, like the Automation Controller, EDA, Hub, etc.)

      In certain Customer situations, the labelling of OpenShift objects managed by the AAP operator is desired (e.g. for owner identification purposes)

      Customers who are using the main AnsibleAutomationPlatform Operator to deploy all AAP Objects are currently unable to apply additional custom Labels.

      Currently, additional Labels can only be applied at the specific Component Operator CRD level (AutomationController & EDA... note: AutomationHub is not supported)

      Example:

      Set custom additional Labels directly to all Controller owned Pods by directly setting within the associated AutomationController operator CRD by adding the additional  custom Labels into the CRD metadata; and assigning the Labels within the CRD spec section within the additional_labels field:

      apiVersion: automationcontroller.ansible.com/v1beta1
      kind: AutomationController
      metadata:
        name: controller
        labels:
          kubernetes.io/my-logging: enabled
      spec:
        additional_labels:
          - kubernetes.io/my-logging

      All Controller Pods are successfully labelled.

      This is documented for the AWX Operator:
      https://ansible.readthedocs.io/projects/awx-operator/en/latest/user-guide/advanced-configuration/labeling-operator-managed-objects.html?h=metadata#labeling-operator-managed-objects

      Note: This direct component operator CRD approach also works for EDA; }}however {{{}AutomationHub is not supported)

       

      However managing AAP component level additional Labels is not currently supported when using just the main *AnsibleAutomationPlatform Operator CRD.*   

      Example:

      Try to set custom additional Labels directly to all Controller owned Pods by setting the Labels within the CRD spec, under the controller section within the additional_labels field:

      apiVersion: aap.ansible.com/v1alpha1
      kind: AnsibleAutomationPlatform
      metadata:
        name: my-aap
      spec:
        controller:
          additional_labels:
            - kubernetes.io/my-logging

      Controller Pods are not labelled.

      Controller CRD is updated with the desired {{additional_fields }}values, however there is no means to set the required additional metadata values which define the additional label values. **

       

      2. Why does the customer need this? (List the business requirements here)

      In certain Customer situations, additional custom labelling of OpenShift objects managed by the AAP operator is desired (e.g. for owner identification purposes)

      A specific use case for an existing Customer is that internal Log Collectors require custom labels to be applied to Pods for their log aggregation identification. 

      This Customer is using the main `AnsibleAutomationPlatform` Operator to deploy all AAP Objects, however this Operator does not support this.

       

      3. How would you like to achieve this? (List the functional requirements here)

      Add the ability to set both the required "metadata" and "additional_labels" values for each defined Component section within the main AutomationController operator CRD, and for these values to be propagated to each component's child objects.

      Possibly could be achieved by adding a new supported component level "additional_labels_metadata" field to compliment the existing supported "additional_labels" ? ?

      apiVersion: aap.ansible.com/v1alpha1
      kind: AnsibleAutomationPlatform
      metadata:
        name: my-aap
      spec:
        controller:
          additional_labels_metadata:
            - kubernetes.io/my-logging: enabled
          additional_labels:
            - kubernetes.io/my-logging

      This is only a suggested potential solution, and I appreciate Engineering will decide on the best design & approach; however this suggestion hopefully helps to highlight the problem the feature is intended to solve.

              dysilva Dylan Silva
              rh-ee-dhobbs David Hobbs
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: