1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-21 22:39:41 +02:00

fix(kube/config): validate change window start [EE-6830] (#11329)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run

This commit is contained in:
Chaim Lev-Ari 2024-03-10 09:42:33 +02:00 committed by GitHub
parent b77132dbb1
commit 27aaf322b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,5 +1,7 @@
import { object, string, boolean, array, number, SchemaOf } from 'yup'; import { object, string, boolean, array, number, SchemaOf } from 'yup';
import { isBE } from '@/react/portainer/feature-flags/feature-flags.service';
import { IngressControllerClassMap } from '../../ingressClass/types'; import { IngressControllerClassMap } from '../../ingressClass/types';
import { ConfigureFormValues } from './types'; import { ConfigureFormValues } from './types';
@ -37,6 +39,20 @@ const storageClassFormValuesSchema = array()
} }
); );
// Define Yup schema for EndpointChangeWindow
const endpointChangeWindowSchema = object().shape({
Enabled: boolean().required(),
StartTime: string().test(
'startTime should not be the same as endTime',
'The chosen time configuration is invalid.',
(value, context) => {
const { EndTime, Enabled } = context.parent;
return !Enabled || value !== EndTime;
}
),
EndTime: string(),
});
// Define Yup schema for IngressControllerClassMap // Define Yup schema for IngressControllerClassMap
const ingressControllerClassMapSchema: SchemaOf<IngressControllerClassMap> = const ingressControllerClassMapSchema: SchemaOf<IngressControllerClassMap> =
object().shape({ object().shape({
@ -58,6 +74,7 @@ export const configureValidationSchema: SchemaOf<ConfigureFormValues> = object({
restrictStandardUserIngressW: boolean().required(), restrictStandardUserIngressW: boolean().required(),
ingressAvailabilityPerNamespace: boolean().required(), ingressAvailabilityPerNamespace: boolean().required(),
allowNoneIngressClass: boolean().required(), allowNoneIngressClass: boolean().required(),
changeWindow: isBE ? endpointChangeWindowSchema.required() : undefined,
storageClasses: storageClassFormValuesSchema.required(), storageClasses: storageClassFormValuesSchema.required(),
ingressClasses: array().of(ingressControllerClassMapSchema).required(), ingressClasses: array().of(ingressControllerClassMapSchema).required(),
}); });