mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-01 02:00:10 +00:00
15f4bd8eff
* 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
56 lines
1.7 KiB
TypeScript
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>;
|