diff --git a/app/kubernetes/ingress/converter.js b/app/kubernetes/ingress/converter.js index 8f7097f99..e3ac6112d 100644 --- a/app/kubernetes/ingress/converter.js +++ b/app/kubernetes/ingress/converter.js @@ -19,10 +19,10 @@ export class KubernetesIngressConverter { : _.map(rule.http.paths, (path) => { const ingRule = new KubernetesIngressRule(); ingRule.IngressName = data.metadata.name; - ingRule.ServiceName = path.backend.serviceName; + ingRule.ServiceName = path.backend.service.name; ingRule.Host = rule.host || ''; ingRule.IP = data.status.loadBalancer.ingress ? data.status.loadBalancer.ingress[0].ip : undefined; - ingRule.Port = path.backend.servicePort; + ingRule.Port = path.backend.service.port.number; ingRule.Path = path.path; return ingRule; }); @@ -151,8 +151,8 @@ export class KubernetesIngressConverter { rule.http.paths = _.map(paths, (p) => { const path = new KubernetesIngressRulePathCreatePayload(); path.path = p.Path; - path.backend.serviceName = p.ServiceName; - path.backend.servicePort = p.Port; + path.backend.service.name = p.ServiceName; + path.backend.service.port.number = p.Port; return path; }); hostsWithRules.push(host); @@ -173,7 +173,7 @@ export class KubernetesIngressConverter { res.spec.rules = []; _.forEach(data.Hosts, (host) => { if (!host.NeedsDeletion) { - res.spec.rules.push({ host: host.Host }); + res.spec.rules.push({ host: host.Host || host }); } }); } else { diff --git a/app/kubernetes/ingress/payloads.js b/app/kubernetes/ingress/payloads.js index d1c6279ec..f5411b7c0 100644 --- a/app/kubernetes/ingress/payloads.js +++ b/app/kubernetes/ingress/payloads.js @@ -20,10 +20,15 @@ export function KubernetesIngressRuleCreatePayload() { export function KubernetesIngressRulePathCreatePayload() { return { - backend: { - serviceName: '', - servicePort: 0, - }, path: '', + pathType: 'ImplementationSpecific', + backend: { + service: { + name: '', + port: { + number: 0, + }, + }, + }, }; } diff --git a/app/kubernetes/ingress/rest.js b/app/kubernetes/ingress/rest.js index df335653b..3bdeaf10f 100644 --- a/app/kubernetes/ingress/rest.js +++ b/app/kubernetes/ingress/rest.js @@ -5,7 +5,7 @@ angular.module('portainer.kubernetes').factory('KubernetesIngresses', factory); function factory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return function (namespace) { - const url = `${API_ENDPOINT_ENDPOINTS}/:endpointId/kubernetes/apis/networking.k8s.io/v1beta1${namespace ? '/namespaces/:namespace' : ''}/ingresses/:id/:action`; + const url = `${API_ENDPOINT_ENDPOINTS}/:endpointId/kubernetes/apis/networking.k8s.io/v1${namespace ? '/namespaces/:namespace' : ''}/ingresses/:id/:action`; return $resource( url, { diff --git a/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.controller.js b/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.controller.js index 2138e4f57..30d61e8d3 100644 --- a/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.controller.js +++ b/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.controller.js @@ -1,12 +1,4 @@ -import { KEY_REGEX, VALUE_REGEX } from '@/portainer/helpers/env-vars'; - class EnvironmentVariablesSimpleModeItemController { - /* @ngInject */ - constructor() { - this.KEY_REGEX = KEY_REGEX; - this.VALUE_REGEX = VALUE_REGEX; - } - onChangeName(name) { const fieldIsInvalid = typeof name === 'undefined'; if (fieldIsInvalid) { diff --git a/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.html b/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.html index c53af0699..27ace7bc2 100644 --- a/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.html +++ b/app/portainer/components/environment-variables-panel/environment-variables-simple-mode/environment-variables-simple-mode-item/environment-variables-simple-mode-item.html @@ -9,7 +9,6 @@ placeholder="e.g. FOO" ng-model="$ctrl.variable.name" ng-disabled="$ctrl.variable.added" - ng-pattern="$ctrl.KEY_REGEX" ng-change="$ctrl.onChangeName($ctrl.variable.name)" required /> @@ -36,7 +35,6 @@ ng-model="$ctrl.variable.value" placeholder="e.g. bar" ng-trim="false" - ng-pattern="$ctrl.VALUE_REGEX" name="value" ng-change="$ctrl.onChangeValue($ctrl.variable.value)" /> diff --git a/app/portainer/helpers/env-vars.js b/app/portainer/helpers/env-vars.js index 972fc5ebd..c55c448ea 100644 --- a/app/portainer/helpers/env-vars.js +++ b/app/portainer/helpers/env-vars.js @@ -1,7 +1,6 @@ import _ from 'lodash-es'; -export const KEY_REGEX = /[a-zA-Z]([-_a-zA-Z0-9]*[a-zA-Z0-9])?/.source; - +export const KEY_REGEX = /(.+)/.source; export const VALUE_REGEX = /(.*)?/.source; const KEY_VALUE_REGEX = new RegExp(`^(${KEY_REGEX})\\s*=(${VALUE_REGEX})$`); @@ -16,7 +15,7 @@ export function parseDotEnvFile(src) { return parseArrayOfStrings( _.compact(src.split(NEWLINES_REGEX)) .map((v) => v.trim()) - .filter((v) => !v.startsWith('#')) + .filter((v) => !v.startsWith('#') && v !== '') ); } @@ -40,7 +39,7 @@ export function parseArrayOfStrings(array) { const parsedKeyValArr = variableString.trim().match(KEY_VALUE_REGEX); if (parsedKeyValArr != null && parsedKeyValArr.length > 4) { - return { name: parsedKeyValArr[1], value: parsedKeyValArr[3] || '' }; + return { name: parsedKeyValArr[1].trim(), value: parsedKeyValArr[3].trim() || '' }; } }) );