Files
renovate/lib/modules/manager/sveltos/schema.ts
Sebastian Poxhofer 15f4bd8eff chore: migrate from zod/v3 to zod/v4 (#43691)
* chore: migrate from zod/v3 to zod/v4

This commit contains the logic changes

* chore: migrate imports from zod/v3 to zod/v4

This contains import updates and adds explicit record keys as zod/v4 requires these now

* ci: enforce usage of zod/v4
2026-05-30 16:01:58 +00:00

56 lines
1.7 KiB
TypeScript

import { z } from 'zod/v4';
import { LooseArray } from '../../../util/schema-utils/index.ts';
import { KubernetesResource } from '../kubernetes/schema.ts';
export const SveltosHelmSource = z.object({
repositoryURL: z.string(),
repositoryName: z.string(),
chartName: z.string(),
chartVersion: z.string(),
});
export type SveltosHelmSource = z.infer<typeof SveltosHelmSource>;
export const SveltosHelmSpec = z.object({
helmCharts: LooseArray(SveltosHelmSource).optional(),
});
export type SveltosHelmSpec = z.infer<typeof SveltosHelmSpec>;
export const ClusterProfile = KubernetesResource.extend({
apiVersion: z.string().startsWith('config.projectsveltos.io/'),
kind: z.literal('ClusterProfile'),
spec: SveltosHelmSpec,
});
export const Profile = KubernetesResource.extend({
apiVersion: z.string().startsWith('config.projectsveltos.io/'),
kind: z.literal('Profile'),
spec: SveltosHelmSpec,
});
export const EventTrigger = KubernetesResource.extend({
apiVersion: z.string().startsWith('lib.projectsveltos.io/'),
kind: z.literal('EventTrigger'),
spec: SveltosHelmSpec,
});
export const ClusterPromotionSpec = z.object({
profileSpec: SveltosHelmSpec.optional(),
});
export type ClusterPromotionSpec = z.infer<typeof ClusterPromotionSpec>;
export const ClusterPromotion = KubernetesResource.extend({
apiVersion: z.string().startsWith('config.projectsveltos.io/'),
kind: z.literal('ClusterPromotion'),
spec: ClusterPromotionSpec,
});
// Create a union schema for ProfileDefinition
export const ProfileDefinition = z.union([
Profile,
ClusterProfile,
EventTrigger,
ClusterPromotion,
]);
export type ProfileDefinition = z.infer<typeof ProfileDefinition>;