Skip to content

Commit d088af3

Browse files
committed
[BACKPORT 2025.1.2][PLAT-18355] Add common labels to YBA generated objects for the universe
Summary: [PLAT-18355] Add common labels to YBA generated objects for the universe Original commit: fe80a16 / D48481 Test Plan: phabricator itest local manual test Reviewers: dshubin, vkumar, anabaria Reviewed By: anabaria Subscribers: yugaware Differential Revision: https://phorge.dev.yugabyte.com/D48861
1 parent 152ab00 commit d088af3

1 file changed

Lines changed: 51 additions & 3 deletions

File tree

managed/src/main/java/com/yugabyte/yw/common/ShellKubernetesManager.java

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1372,7 +1372,9 @@ private void createPodDisruptionBudgetPolicy(
13721372
cluster.uuid);
13731373
return;
13741374
}
1375-
String pdbPolicyYaml = generatePDBPolicyYaml(universe, cluster, serverType);
1375+
// Get helm overrides to extract commonLabels
1376+
Map<String, Object> commonLabels = extractCommonLabelsFromHelmOverrides(cluster);
1377+
String pdbPolicyYaml = generatePDBPolicyYaml(universe, cluster, serverType, commonLabels);
13761378
PlacementInfo pi = cluster.placementInfo;
13771379
boolean isReadOnlyCluster = cluster.clusterType == ClusterType.ASYNC;
13781380
KubernetesPlacement placement = new KubernetesPlacement(pi, isReadOnlyCluster);
@@ -1402,7 +1404,10 @@ private void createPodDisruptionBudgetPolicy(
14021404
}
14031405

14041406
private String generatePDBPolicyYaml(
1405-
Universe universe, UniverseDefinitionTaskParams.Cluster cluster, ServerType serverType) {
1407+
Universe universe,
1408+
UniverseDefinitionTaskParams.Cluster cluster,
1409+
ServerType serverType,
1410+
Map<String, Object> commonLabels) {
14061411
Map<String, Object> policy = new HashMap<String, Object>();
14071412
policy.put("apiVersion", "policy/v1");
14081413
policy.put("kind", "PodDisruptionBudget");
@@ -1412,7 +1417,13 @@ private String generatePDBPolicyYaml(
14121417
universe.getName(),
14131418
cluster.clusterType.equals(ClusterType.PRIMARY) ? "primary" : "replica",
14141419
serverType.name().toLowerCase());
1415-
policy.put("metadata", ImmutableMap.of("name", policyName));
1420+
Map<String, Object> metadata = new HashMap<>();
1421+
metadata.put("name", policyName);
1422+
// Add commonLabels to metadata if present
1423+
if (commonLabels != null && !commonLabels.isEmpty()) {
1424+
metadata.put("labels", commonLabels);
1425+
}
1426+
policy.put("metadata", metadata);
14161427
policy.put("spec", createPDBSpec(cluster, universe, serverType));
14171428
Yaml yaml = new Yaml();
14181429
try {
@@ -1474,6 +1485,43 @@ private Optional<Object> createPDBMatchExpressions(
14741485
}
14751486
}
14761487

1488+
/**
1489+
* Extracts commonLabels from helm overrides. Similar to generateHelmOverride() in
1490+
* KubernetesCommandExecutor, this checks merged overrides which include provider, universe, and
1491+
* AZ-level overrides. Returns the first non-empty commonLabels found.
1492+
*
1493+
* @param cluster The cluster to extract commonLabels from
1494+
* @return Map of commonLabels, or empty map if not found
1495+
*/
1496+
@SuppressWarnings("unchecked")
1497+
private Map<String, Object> extractCommonLabelsFromHelmOverrides(
1498+
UniverseDefinitionTaskParams.Cluster cluster) {
1499+
try {
1500+
// Get final overrides which merges provider, universe, and AZ overrides
1501+
// This follows the same precedence as generateHelmOverride() in KubernetesCommandExecutor:
1502+
// provider overrides -> universe overrides -> AZ overrides
1503+
Map<UUID, Map<String, Object>> finalOverrides =
1504+
KubernetesUtil.getFinalOverrides(
1505+
cluster, cluster.userIntent.universeOverrides, cluster.userIntent.azOverrides);
1506+
1507+
// Check merged overrides (which include provider, universe, and AZ overrides)
1508+
// The merged overrides follow the same precedence as generateHelmOverride()
1509+
if (finalOverrides != null && !finalOverrides.isEmpty()) {
1510+
for (Map<String, Object> mergedOverrides : finalOverrides.values()) {
1511+
if (mergedOverrides != null && mergedOverrides.containsKey("commonLabels")) {
1512+
Object commonLabelsObj = mergedOverrides.get("commonLabels");
1513+
if (commonLabelsObj instanceof Map) {
1514+
return (Map<String, Object>) commonLabelsObj;
1515+
}
1516+
}
1517+
}
1518+
}
1519+
} catch (Exception e) {
1520+
log.warn("Error extracting commonLabels from helm overrides: {}", e.getMessage());
1521+
}
1522+
return new HashMap<>();
1523+
}
1524+
14771525
public void checkOpentelemetryOperatorRunning() {
14781526
List<String> commandList =
14791527
ImmutableList.of("kubectl", "api-resources", "--api-group=opentelemetry.io");

0 commit comments

Comments
 (0)