portainer/app/kubernetes/helpers/serviceHelper.js

26 lines
953 B
JavaScript

import _ from 'lodash-es';
import { KubernetesServiceHeadlessPrefix } from 'Kubernetes/models/service/models';
class KubernetesServiceHelper {
static generateHeadlessServiceName(name) {
return KubernetesServiceHeadlessPrefix + name;
}
static findApplicationBoundService(services, rawApp) {
if (!rawApp.spec.template) {
return undefined;
}
return _.find(services, (item) => item.spec.selector && _.isMatch(rawApp.spec.template.metadata.labels, item.spec.selector));
}
static findApplicationBoundServices(services, rawApp) {
// if the app is a naked pod (doesn't have a template), then get the pod labels
const appLabels = rawApp.spec.template ? rawApp.spec.template.metadata.labels : rawApp.metadata.labels;
if (!appLabels) {
return undefined;
}
return _.filter(services, (item) => item.spec.selector && _.isMatch(appLabels, item.spec.selector));
}
}
export default KubernetesServiceHelper;