Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion webui/src/js/utils/k8s-domain-resource-generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,14 @@ define(['models/wkt-project', 'utils/k8s-domain-configmap-generator', 'js-yaml',
}

function getServerPodForCluster(cluster) {
return _getServerPod(getJavaOptionsForCluster(cluster), getUserMemArgsForCluster(cluster), getKubernetesResourcesForCluster(cluster));
const serverPod = _getServerPod(getJavaOptionsForCluster(cluster), getUserMemArgsForCluster(cluster), getKubernetesResourcesForCluster(cluster)) || {};

const affinity = _getAffinityForServerPod(100);
if (affinity) {
serverPod.affinity = affinity;
}

return Object.keys(serverPod).length > 0 ? serverPod : null;
Copy link
Member

@robertpatrick robertpatrick Aug 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why duplicate all the code from _getServerPod() just to add one line? Why not just do something like this?

function getServerPodForCluster(cluster) {
    const serverPod = _getServerPod(getJavaOptionsForCluster(cluster), getUserMemArgsForCluster(cluster), getKubernetesResourcesForCluster(cluster)) || {};
    
    const affinity = _getAffinityForServerPod(100);
    if (affinity) {
        serverPod.affinity = affinity;
    }     
    return Object.keys(serverPod).length > 0 ? serverPod : null;
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Server Pod might be empty, and I did not know how to add const serverPod = {}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolved code per suggestions

}

function _getServerPod(javaOptions, userMemArgs, resources) {
Expand All @@ -262,6 +269,7 @@ define(['models/wkt-project', 'utils/k8s-domain-configmap-generator', 'js-yaml',
if (resources) {
serverPod.resources = resources;
}

return Object.keys(serverPod).length > 0 ? serverPod : null;
}

Expand Down Expand Up @@ -353,6 +361,28 @@ define(['models/wkt-project', 'utils/k8s-domain-configmap-generator', 'js-yaml',
return foundValue ? resources : null;
}

function _getAffinityForServerPod(weight) {
return {
podAntiAffinity: {
preferredDuringSchedulingIgnoredDuringExecution: [{
weight: weight,
podAffinityTerm: {
topologyKey: 'kubernetes.io/hostname',
labelSelector: {
matchExpressions: [{
key: 'weblogic.clusterName',
operator: 'In',
values: ['$(CLUSTER_NAME)']
}]
}
}
}]
}
};
}

return K8sDomainResourceGenerator;
}


);