mirror of https://github.com/portainer/portainer
* fix(k8s/application): transform username to be dns compliant (#4595) * fix(k8s/application): transform username to be dns compliant for configurations and resource pools(#4595) * fix(k8s/application): update regex to replace all special characters (#4595) Co-authored-by: Simon Meng <simon.meng@portainer.io>pull/4606/head
parent
58bf76a58f
commit
342a0d6d22
|
@ -27,6 +27,7 @@ import KubernetesServiceConverter from 'Kubernetes/converters/service';
|
|||
import KubernetesPersistentVolumeClaimConverter from 'Kubernetes/converters/persistentVolumeClaim';
|
||||
import PortainerError from 'Portainer/error';
|
||||
import { KubernetesIngressHelper } from 'Kubernetes/ingress/helper';
|
||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||
|
||||
function _apiPortsToPublishedPorts(pList, pRefs) {
|
||||
const ports = _.map(pList, (item) => {
|
||||
|
@ -294,6 +295,8 @@ class KubernetesApplicationConverter {
|
|||
}
|
||||
|
||||
static applicationFormValuesToApplication(formValues) {
|
||||
formValues.ApplicationOwner = KubernetesCommonHelper.ownerToLabel(formValues.ApplicationOwner);
|
||||
|
||||
const claims = KubernetesPersistentVolumeClaimConverter.applicationFormValuesToVolumeClaims(formValues);
|
||||
const rwx = _.find(claims, (item) => _.includes(item.StorageClass.AccessModes, 'RWX')) !== undefined;
|
||||
|
||||
|
|
|
@ -8,5 +8,9 @@ class KubernetesCommonHelper {
|
|||
_.set(obj, path, value);
|
||||
}
|
||||
}
|
||||
|
||||
static ownerToLabel(owner) {
|
||||
return _.replace(owner, /[^-A-Za-z0-9_.]/g, '.');
|
||||
}
|
||||
}
|
||||
export default KubernetesCommonHelper;
|
||||
|
|
|
@ -4,6 +4,7 @@ import KubernetesConfigurationConverter from 'Kubernetes/converters/configuratio
|
|||
import KubernetesConfigMapConverter from 'Kubernetes/converters/configMap';
|
||||
import KubernetesSecretConverter from 'Kubernetes/converters/secret';
|
||||
import { KubernetesConfigurationTypes } from 'Kubernetes/models/configuration/models';
|
||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||
|
||||
class KubernetesConfigurationService {
|
||||
/* @ngInject */
|
||||
|
@ -67,6 +68,8 @@ class KubernetesConfigurationService {
|
|||
* CREATE
|
||||
*/
|
||||
async createAsync(formValues) {
|
||||
formValues.ConfigurationOwner = KubernetesCommonHelper.ownerToLabel(formValues.ConfigurationOwner);
|
||||
|
||||
try {
|
||||
if (formValues.Type === KubernetesConfigurationTypes.CONFIGMAP) {
|
||||
const configMap = KubernetesConfigMapConverter.configurationFormValuesToConfigMap(formValues);
|
||||
|
|
|
@ -7,6 +7,7 @@ import KubernetesResourceQuotaHelper from 'Kubernetes/helpers/resourceQuotaHelpe
|
|||
import { KubernetesNamespace } from 'Kubernetes/models/namespace/models';
|
||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||
import { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';
|
||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||
|
||||
class KubernetesResourcePoolService {
|
||||
/* @ngInject */
|
||||
|
@ -73,6 +74,8 @@ class KubernetesResourcePoolService {
|
|||
* @param {KubernetesResourcePoolFormValues} formValues
|
||||
*/
|
||||
async createAsync(formValues) {
|
||||
formValues.Owner = KubernetesCommonHelper.ownerToLabel(formValues.Owner);
|
||||
|
||||
try {
|
||||
const namespace = new KubernetesNamespace();
|
||||
namespace.Name = formValues.Name;
|
||||
|
|
Loading…
Reference in New Issue