mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 07:49:41 +02:00
* 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>
This commit is contained in:
parent
58bf76a58f
commit
342a0d6d22
4 changed files with 13 additions and 0 deletions
|
@ -27,6 +27,7 @@ import KubernetesServiceConverter from 'Kubernetes/converters/service';
|
||||||
import KubernetesPersistentVolumeClaimConverter from 'Kubernetes/converters/persistentVolumeClaim';
|
import KubernetesPersistentVolumeClaimConverter from 'Kubernetes/converters/persistentVolumeClaim';
|
||||||
import PortainerError from 'Portainer/error';
|
import PortainerError from 'Portainer/error';
|
||||||
import { KubernetesIngressHelper } from 'Kubernetes/ingress/helper';
|
import { KubernetesIngressHelper } from 'Kubernetes/ingress/helper';
|
||||||
|
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||||
|
|
||||||
function _apiPortsToPublishedPorts(pList, pRefs) {
|
function _apiPortsToPublishedPorts(pList, pRefs) {
|
||||||
const ports = _.map(pList, (item) => {
|
const ports = _.map(pList, (item) => {
|
||||||
|
@ -294,6 +295,8 @@ class KubernetesApplicationConverter {
|
||||||
}
|
}
|
||||||
|
|
||||||
static applicationFormValuesToApplication(formValues) {
|
static applicationFormValuesToApplication(formValues) {
|
||||||
|
formValues.ApplicationOwner = KubernetesCommonHelper.ownerToLabel(formValues.ApplicationOwner);
|
||||||
|
|
||||||
const claims = KubernetesPersistentVolumeClaimConverter.applicationFormValuesToVolumeClaims(formValues);
|
const claims = KubernetesPersistentVolumeClaimConverter.applicationFormValuesToVolumeClaims(formValues);
|
||||||
const rwx = _.find(claims, (item) => _.includes(item.StorageClass.AccessModes, 'RWX')) !== undefined;
|
const rwx = _.find(claims, (item) => _.includes(item.StorageClass.AccessModes, 'RWX')) !== undefined;
|
||||||
|
|
||||||
|
|
|
@ -8,5 +8,9 @@ class KubernetesCommonHelper {
|
||||||
_.set(obj, path, value);
|
_.set(obj, path, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ownerToLabel(owner) {
|
||||||
|
return _.replace(owner, /[^-A-Za-z0-9_.]/g, '.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
export default KubernetesCommonHelper;
|
export default KubernetesCommonHelper;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import KubernetesConfigurationConverter from 'Kubernetes/converters/configuratio
|
||||||
import KubernetesConfigMapConverter from 'Kubernetes/converters/configMap';
|
import KubernetesConfigMapConverter from 'Kubernetes/converters/configMap';
|
||||||
import KubernetesSecretConverter from 'Kubernetes/converters/secret';
|
import KubernetesSecretConverter from 'Kubernetes/converters/secret';
|
||||||
import { KubernetesConfigurationTypes } from 'Kubernetes/models/configuration/models';
|
import { KubernetesConfigurationTypes } from 'Kubernetes/models/configuration/models';
|
||||||
|
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||||
|
|
||||||
class KubernetesConfigurationService {
|
class KubernetesConfigurationService {
|
||||||
/* @ngInject */
|
/* @ngInject */
|
||||||
|
@ -67,6 +68,8 @@ class KubernetesConfigurationService {
|
||||||
* CREATE
|
* CREATE
|
||||||
*/
|
*/
|
||||||
async createAsync(formValues) {
|
async createAsync(formValues) {
|
||||||
|
formValues.ConfigurationOwner = KubernetesCommonHelper.ownerToLabel(formValues.ConfigurationOwner);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (formValues.Type === KubernetesConfigurationTypes.CONFIGMAP) {
|
if (formValues.Type === KubernetesConfigurationTypes.CONFIGMAP) {
|
||||||
const configMap = KubernetesConfigMapConverter.configurationFormValuesToConfigMap(formValues);
|
const configMap = KubernetesConfigMapConverter.configurationFormValuesToConfigMap(formValues);
|
||||||
|
|
|
@ -7,6 +7,7 @@ import KubernetesResourceQuotaHelper from 'Kubernetes/helpers/resourceQuotaHelpe
|
||||||
import { KubernetesNamespace } from 'Kubernetes/models/namespace/models';
|
import { KubernetesNamespace } from 'Kubernetes/models/namespace/models';
|
||||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||||
import { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';
|
import { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';
|
||||||
|
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||||
|
|
||||||
class KubernetesResourcePoolService {
|
class KubernetesResourcePoolService {
|
||||||
/* @ngInject */
|
/* @ngInject */
|
||||||
|
@ -73,6 +74,8 @@ class KubernetesResourcePoolService {
|
||||||
* @param {KubernetesResourcePoolFormValues} formValues
|
* @param {KubernetesResourcePoolFormValues} formValues
|
||||||
*/
|
*/
|
||||||
async createAsync(formValues) {
|
async createAsync(formValues) {
|
||||||
|
formValues.Owner = KubernetesCommonHelper.ownerToLabel(formValues.Owner);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const namespace = new KubernetesNamespace();
|
const namespace = new KubernetesNamespace();
|
||||||
namespace.Name = formValues.Name;
|
namespace.Name = formValues.Name;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue