portainer/app/kubernetes/helpers/configurationHelper.js

41 lines
1.4 KiB
JavaScript

import { KubernetesConfigurationTypes } from 'Kubernetes/models/configuration/models';
import _ from 'lodash-es';
class KubernetesConfigurationHelper {
static getUsingApplications(config, applications) {
return _.filter(applications, (app) => {
let envFind;
let volumeFind;
if (config.Type === KubernetesConfigurationTypes.CONFIGMAP) {
envFind = _.find(app.Env, { valueFrom: { configMapKeyRef: { name: config.Name } } });
volumeFind = _.find(app.Volumes, { configMap: { name: config.Name } });
} else {
envFind = _.find(app.Env, { valueFrom: { secretKeyRef: { name: config.Name } } });
volumeFind = _.find(app.Volumes, { secret: { secretName: config.Name } });
}
return envFind || volumeFind;
});
}
static isSystemToken(config) {
return _.startsWith(config.Name, 'default-token-');
}
static setConfigurationUsed(config) {
config.Used = config.Applications && config.Applications.length !== 0;
}
static setConfigurationsUsed(configurations, applications) {
_.forEach(configurations, (config) => {
config.Applications = KubernetesConfigurationHelper.getUsingApplications(config, applications);
KubernetesConfigurationHelper.setConfigurationUsed(config);
});
}
static isExternalConfiguration(configuration) {
return !configuration.ConfigurationOwner;
}
}
export default KubernetesConfigurationHelper;