-
Feature Request
-
Resolution: Unresolved
-
Undefined
-
None
-
2.5, 2.6
-
False
-
-
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.