UNPKG

@soft-stech/fleet

Version:
1,126 lines 59.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IBundleSchema = void 0; // Generated by ts-to-zod const zod_1 = require("zod"); const ObjectMeta_schema_1 = require("@soft-stech/apimachinery/apis/meta/v1/ObjectMeta.schema"); /** * Bundle contains the resources of an application and its deployment options. * It will be deployed as a Helm chart to target clusters. * * * When a GitRepo is scanned it will produce one or more bundles. Bundles are * a collection of resources that get deployed to one or more cluster(s). Bundle is the * fundamental deployment unit used in Fleet. The contents of a Bundle may be * Kubernetes manifests, Kustomize configuration, or Helm charts. Regardless * of the source the contents are dynamically rendered into a Helm chart by * the agent and installed into the downstream cluster as a Helm release. */ exports.IBundleSchema = zod_1.z.object({ /** * APIVersion defines the versioned schema of this representation of an object. * Servers should convert recognized schemas to the latest internal value, and * may reject unrecognized values. * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ apiVersion: zod_1.z.literal("fleet.cattle.io/v1alpha1"), /** * Kind is a string value representing the REST resource this object represents. * Servers may infer this from the endpoint the client submits requests to. * Cannot be updated. * In CamelCase. * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ kind: zod_1.z.literal("Bundle"), metadata: ObjectMeta_schema_1.iObjectMetaSchema.optional(), spec: zod_1.z .object({ /** * ContentsID stores the contents id when deploying contents using an OCI registry. */ contentsId: zod_1.z.string().optional(), /** * CorrectDrift specifies how drift correction should work. */ correctDrift: zod_1.z .object({ /** * Enabled correct drift if true. */ enabled: zod_1.z.boolean().optional(), /** * Force helm rollback with --force option will be used if true. This will try to recreate all resources in the release. */ force: zod_1.z.boolean().optional(), /** * KeepFailHistory keeps track of failed rollbacks in the helm history. */ keepFailHistory: zod_1.z.boolean().optional() }) .optional(), /** * DefaultNamespace is the namespace to use for resources that do not * specify a namespace. This field is not used to enforce or lock down * the deployment to a specific namespace. */ defaultNamespace: zod_1.z.string().optional(), /** * DeleteCRDResources deletes CRDs. Warning! this will also delete all your Custom Resources. */ deleteCRDResources: zod_1.z.boolean().optional(), /** * DeleteNamespace can be used to delete the deployed namespace when removing the bundle */ deleteNamespace: zod_1.z.boolean().optional(), /** * DependsOn refers to the bundles which must be ready before this bundle can be deployed. */ dependsOn: zod_1.z .array(zod_1.z.object({ /** * Name of the bundle. */ name: zod_1.z.string().optional(), /** * Selector matching bundle's labels. */ selector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional() })) .optional(), /** * Diff can be used to ignore the modified state of objects which are amended at runtime. */ diff: zod_1.z .object({ /** * ComparePatches match a resource and remove fields from the check for modifications. */ comparePatches: zod_1.z .array(zod_1.z.object({ /** * APIVersion is the apiVersion of the resource to match. */ apiVersion: zod_1.z.string().optional(), /** * JSONPointers ignore diffs at a certain JSON path. */ jsonPointers: zod_1.z.array(zod_1.z.string()).optional(), /** * Kind is the kind of the resource to match. */ kind: zod_1.z.string().optional(), /** * Name is the name of the resource to match. */ name: zod_1.z.string().optional(), /** * Namespace is the namespace of the resource to match. */ namespace: zod_1.z.string().optional(), /** * Operations remove a JSON path from the resource. */ operations: zod_1.z .array(zod_1.z.object({ /** * Op is usually "remove" */ op: zod_1.z.string().optional(), /** * Path is the JSON path to remove. */ path: zod_1.z.string().optional(), /** * Value is usually empty. */ value: zod_1.z.string().optional() })) .optional() })) .optional() }) .optional(), /** * ForceSyncGeneration is used to force a redeployment */ forceSyncGeneration: zod_1.z.number().optional(), /** * Helm options for the deployment, like the chart name, repo and values. */ helm: zod_1.z .object({ /** * Atomic sets the --atomic flag when Helm is performing an upgrade */ atomic: zod_1.z.boolean().optional(), /** * Chart can refer to any go-getter URL or OCI registry based helm * chart URL. The chart will be downloaded. */ chart: zod_1.z.string().optional(), /** * DisableDNS can be used to customize Helm's EnableDNS option, which Fleet sets to `true` by default. */ disableDNS: zod_1.z.boolean().optional(), /** * DisableDependencyUpdate allows skipping chart dependencies update */ disableDependencyUpdate: zod_1.z.boolean().optional(), /** * DisablePreProcess disables template processing in values */ disablePreProcess: zod_1.z.boolean().optional(), /** * Force allows to override immutable resources. This could be dangerous. */ force: zod_1.z.boolean().optional(), /** * MaxHistory limits the maximum number of revisions saved per release by Helm. */ maxHistory: zod_1.z.number().optional(), /** * ReleaseName sets a custom release name to deploy the chart as. If * not specified a release name will be generated by combining the * invoking GitRepo.name + GitRepo.path. * @maxLength 53 * @pattern ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ */ releaseName: zod_1.z .string() .max(53) .regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/) .optional(), /** * Repo is the name of the HTTPS helm repo to download the chart from. */ repo: zod_1.z.string().optional(), /** * SkipSchemaValidation allows skipping schema validation against the chart values */ skipSchemaValidation: zod_1.z.boolean().optional(), /** * TakeOwnership makes helm skip the check for its own annotations */ takeOwnership: zod_1.z.boolean().optional(), /** * TimeoutSeconds is the time to wait for Helm operations. */ timeoutSeconds: zod_1.z.number().optional(), /** * Values passed to Helm. It is possible to specify the keys and values * as go template strings. */ values: zod_1.z.object({}).optional(), /** * ValuesFiles is a list of files to load values from. */ valuesFiles: zod_1.z.array(zod_1.z.string()).optional(), /** * ValuesFrom loads the values from configmaps and secrets. */ valuesFrom: zod_1.z .array(zod_1.z.object({ /** * The reference to a config map with release values. */ configMapKeyRef: zod_1.z .object({ key: zod_1.z.string().optional(), /** * Name of a resource in the same namespace as the referent. */ name: zod_1.z.string().optional(), namespace: zod_1.z.string().optional() }) .optional(), /** * The reference to a secret with release values. */ secretKeyRef: zod_1.z .object({ key: zod_1.z.string().optional(), /** * Name of a resource in the same namespace as the referent. */ name: zod_1.z.string().optional(), namespace: zod_1.z.string().optional() }) .optional() })) .optional(), /** * Version of the chart to download */ version: zod_1.z.string().optional(), /** * WaitForJobs if set and timeoutSeconds provided, will wait until all * Jobs have been completed before marking the GitRepo as ready. It * will wait for as long as timeoutSeconds */ waitForJobs: zod_1.z.boolean().optional() }) .optional(), /** * IgnoreOptions can be used to ignore fields when monitoring the bundle. */ ignore: zod_1.z .object({ /** * Conditions is a list of conditions to be ignored when monitoring the Bundle. */ conditions: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.string())).optional() }) .optional(), /** * KeepResources can be used to keep the deployed resources when removing the bundle */ keepResources: zod_1.z.boolean().optional(), /** * Kustomize options for the deployment, like the dir containing the * kustomization.yaml file. */ kustomize: zod_1.z .object({ /** * Dir points to a custom folder for kustomize resources. This folder must contain * a kustomization.yaml file. */ dir: zod_1.z.string().optional() }) .optional(), /** * TargetNamespace if present will assign all resource to this * namespace and if any cluster scoped resource exists the deployment * will fail. */ namespace: zod_1.z.string().optional(), /** * NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet. */ namespaceAnnotations: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), /** * NamespaceLabels are labels that will be appended to the namespace created by Fleet. */ namespaceLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), /** * Paused if set to true, will stop any BundleDeployments from being updated. It will be marked as out of sync. */ paused: zod_1.z.boolean().optional(), /** * Resources contains the resources that were read from the bundle's * path. This includes the content of downloaded helm charts. */ resources: zod_1.z .array(zod_1.z.object({ /** * The content of the resource, can be compressed. */ content: zod_1.z.string().optional(), /** * Encoding is either empty or "base64+gz". */ encoding: zod_1.z.string().optional(), /** * Name of the resource, can include the bundle's internal path. */ name: zod_1.z.string().optional() })) .optional(), /** * RolloutStrategy controls the rollout of bundles, by defining * partitions, canaries and percentages for cluster availability. */ rolloutStrategy: zod_1.z .object({ /** * A number or percentage of how to automatically partition clusters if no * specific partitioning strategy is configured. * default: 25% */ autoPartitionSize: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]).optional(), /** * A number or percentage of clusters that can be unavailable during an update * of a bundle. This follows the same basic approach as a deployment rollout * strategy. Once the number of clusters meets unavailable state update will be * paused. Default value is 100% which doesn't take effect on update. * default: 100% */ maxUnavailable: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]).optional(), /** * A number or percentage of cluster partitions that can be unavailable during * an update of a bundle. * default: 0 */ maxUnavailablePartitions: zod_1.z .union([zod_1.z.number(), zod_1.z.string()]) .optional(), /** * A list of definitions of partitions. If any target clusters do not match * the configuration they are added to partitions at the end following the * autoPartitionSize. */ partitions: zod_1.z .array(zod_1.z.object({ /** * A cluster group name to include in this partition */ clusterGroup: zod_1.z.string().optional(), /** * Selector matching cluster group labels to include in this partition */ clusterGroupSelector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional(), /** * ClusterName is the name of a cluster to include in this partition */ clusterName: zod_1.z.string().optional(), /** * Selector matching cluster labels to include in this partition */ clusterSelector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional(), /** * A number or percentage of clusters that can be unavailable in this * partition before this partition is treated as done. * default: 10% */ maxUnavailable: zod_1.z.union([zod_1.z.number(), zod_1.z.string()]).optional(), /** * A user-friendly name given to the partition used for Display (optional). */ name: zod_1.z.string().optional() })) .optional() }) .optional(), /** * ServiceAccount which will be used to perform this deployment. */ serviceAccount: zod_1.z.string().optional(), /** * TargetRestrictions is an allow list, which controls if a bundledeployment is created for a target. */ targetRestrictions: zod_1.z .array(zod_1.z.object({ clusterGroup: zod_1.z.string().optional(), /** * A label selector is a label query over a set of resources. The result of matchLabels and * matchExpressions are ANDed. An empty label selector matches all objects. A null * label selector matches no objects. */ clusterGroupSelector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional(), clusterName: zod_1.z.string().optional(), /** * A label selector is a label query over a set of resources. The result of matchLabels and * matchExpressions are ANDed. An empty label selector matches all objects. A null * label selector matches no objects. */ clusterSelector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional(), name: zod_1.z.string().optional() })) .optional(), /** * Targets refer to the clusters which will be deployed to. * Targets are evaluated in order and the first one to match is used. */ targets: zod_1.z .array(zod_1.z.object({ /** * ClusterGroup to match a specific cluster group by name. */ clusterGroup: zod_1.z.string().optional(), /** * ClusterGroupSelector is a selector to match cluster groups. */ clusterGroupSelector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional(), /** * ClusterName to match a specific cluster by name that will be * selected */ clusterName: zod_1.z.string().optional(), /** * ClusterSelector is a selector to match clusters. The structure is * the standard metav1.LabelSelector format. If clusterGroupSelector or * clusterGroup is specified, clusterSelector will be used only to * further refine the selection after clusterGroupSelector and * clusterGroup is evaluated. */ clusterSelector: zod_1.z .object({ /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ matchExpressions: zod_1.z .array(zod_1.z.object({ /** * key is the label key that the selector applies to. */ key: zod_1.z.string(), /** * operator represents a key's relationship to a set of values. * Valid operators are In, NotIn, Exists and DoesNotExist. */ operator: zod_1.z.string(), /** * values is an array of string values. If the operator is In or NotIn, * the values array must be non-empty. If the operator is Exists or DoesNotExist, * the values array must be empty. This array is replaced during a strategic * merge patch. */ values: zod_1.z.array(zod_1.z.string()).optional() })) .optional(), /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels * map is equivalent to an element of matchExpressions, whose key field is "key", the * operator is "In", and the values array contains only "value". The requirements are ANDed. */ matchLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional() }) .optional(), /** * CorrectDrift specifies how drift correction should work. */ correctDrift: zod_1.z .object({ /** * Enabled correct drift if true. */ enabled: zod_1.z.boolean().optional(), /** * Force helm rollback with --force option will be used if true. This will try to recreate all resources in the release. */ force: zod_1.z.boolean().optional(), /** * KeepFailHistory keeps track of failed rollbacks in the helm history. */ keepFailHistory: zod_1.z.boolean().optional() }) .optional(), /** * DefaultNamespace is the namespace to use for resources that do not * specify a namespace. This field is not used to enforce or lock down * the deployment to a specific namespace. */ defaultNamespace: zod_1.z.string().optional(), /** * DeleteCRDResources deletes CRDs. Warning! this will also delete all your Custom Resources. */ deleteCRDResources: zod_1.z.boolean().optional(), /** * DeleteNamespace can be used to delete the deployed namespace when removing the bundle */ deleteNamespace: zod_1.z.boolean().optional(), /** * Diff can be used to ignore the modified state of objects which are amended at runtime. */ diff: zod_1.z .object({ /** * ComparePatches match a resource and remove fields from the check for modifications. */ comparePatches: zod_1.z .array(zod_1.z.object({ /** * APIVersion is the apiVersion of the resource to match. */ apiVersion: zod_1.z.string().optional(), /** * JSONPointers ignore diffs at a certain JSON path. */ jsonPointers: zod_1.z.array(zod_1.z.string()).optional(), /** * Kind is the kind of the resource to match. */ kind: zod_1.z.string().optional(), /** * Name is the name of the resource to match. */ name: zod_1.z.string().optional(), /** * Namespace is the namespace of the resource to match. */ namespace: zod_1.z.string().optional(), /** * Operations remove a JSON path from the resource. */ operations: zod_1.z .array(zod_1.z.object({ /** * Op is usually "remove" */ op: zod_1.z.string().optional(), /** * Path is the JSON path to remove. */ path: zod_1.z.string().optional(), /** * Value is usually empty. */ value: zod_1.z.string().optional() })) .optional() })) .optional() }) .optional(), /** * DoNotDeploy if set to true, will not deploy to this target. */ doNotDeploy: zod_1.z.boolean().optional(), /** * ForceSyncGeneration is used to force a redeployment */ forceSyncGeneration: zod_1.z.number().optional(), /** * Helm options for the deployment, like the chart name, repo and values. */ helm: zod_1.z .object({ /** * Atomic sets the --atomic flag when Helm is performing an upgrade */ atomic: zod_1.z.boolean().optional(), /** * Chart can refer to any go-getter URL or OCI registry based helm * chart URL. The chart will be downloaded. */ chart: zod_1.z.string().optional(), /** * DisableDNS can be used to customize Helm's EnableDNS option, which Fleet sets to `true` by default. */ disableDNS: zod_1.z.boolean().optional(), /** * DisableDependencyUpdate allows skipping chart dependencies update */ disableDependencyUpdate: zod_1.z.boolean().optional(), /** * DisablePreProcess disables template processing in values */ disablePreProcess: zod_1.z.boolean().optional(), /** * Force allows to override immutable resources. This could be dangerous. */ force: zod_1.z.boolean().optional(), /** * MaxHistory limits the maximum number of revisions saved per release by Helm. */ maxHistory: zod_1.z.number().optional(), /** * ReleaseName sets a custom release name to deploy the chart as. If * not specified a release name will be generated by combining the * invoking GitRepo.name + GitRepo.path. * @maxLength 53 * @pattern ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ */ releaseName: zod_1.z .string() .max(53) .regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/) .optional(), /** * Repo is the name of the HTTPS helm repo to download the chart from. */ repo: zod_1.z.string().optional(), /** * SkipSchemaValidation allows skipping schema validation against the chart values */ skipSchemaValidation: zod_1.z.boolean().optional(), /** * TakeOwnership makes helm skip the check for its own annotations */ takeOwnership: zod_1.z.boolean().optional(), /** * TimeoutSeconds is the time to wait for Helm operations. */ timeoutSeconds: zod_1.z.number().optional(), /** * Values passed to Helm. It is possible to specify the keys and values * as go template strings. */ values: zod_1.z.object({}).optional(), /** * ValuesFiles is a list of files to load values from. */ valuesFiles: zod_1.z.array(zod_1.z.string()).optional(), /** * ValuesFrom loads the values from configmaps and secrets. */ valuesFrom: zod_1.z .array(zod_1.z.object({ /** * The reference to a config map with release values. */ configMapKeyRef: zod_1.z .object({ key: zod_1.z.string().optional(), /** * Name of a resource in the same namespace as the referent. */ name: zod_1.z.string().optional(), namespace: zod_1.z.string().optional() }) .optional(), /** * The reference to a secret with release values. */ secretKeyRef: zod_1.z .object({ key: zod_1.z.string().optional(), /** * Name of a resource in the same namespace as the referent. */ name: zod_1.z.string().optional(), namespace: zod_1.z.string().optional() }) .optional() })) .optional(), /** * Version of the chart to download */ version: zod_1.z.string().optional(), /** * WaitForJobs if set and timeoutSeconds provided, will wait until all * Jobs have been completed before marking the GitRepo as ready. It * will wait for as long as timeoutSeconds */ waitForJobs: zod_1.z.boolean().optional() }) .optional(), /** * IgnoreOptions can be used to ignore fields when monitoring the bundle. */ ignore: zod_1.z .object({ /** * Conditions is a list of conditions to be ignored when monitoring the Bundle. */ conditions: zod_1.z.array(zod_1.z.record(zod_1.z.string(), zod_1.z.string())).optional() }) .optional(), /** * KeepResources can be used to keep the deployed resources when removing the bundle */ keepResources: zod_1.z.boolean().optional(), /** * Kustomize options for the deployment, like the dir containing the * kustomization.yaml file. */ kustomize: zod_1.z .object({ /** * Dir points to a custom folder for kustomize resources. This folder must contain * a kustomization.yaml file. */ dir: zod_1.z.string().optional() }) .optional(), /** * Name of target. This value is largely for display and logging. If * not specified a default name of the format "target000" will be used */ name: zod_1.z.string().optional(), /** * TargetNamespace if present will assign all resource to this * namespace and if any cluster scoped resource exists the deployment * will fail. */ namespace: zod_1.z.string().optional(), /** * NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet. */ namespaceAnnotations: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), /** * NamespaceLabels are labels that will be appended to the namespace created by Fleet. */ namespaceLabels: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), /** * ServiceAccount which will be used to perform this deployment. */ serviceAccount: zod_1.z.string().optional(), /** * YAML options, if using raw YAML these are names that map to * overlays/{name} files that will be used to replace or patch a resource. */ yaml: zod_1.z .object({ /** * Overlays is a list of names that maps to folders in "overlays/". * If you wish to customize the file ./subdir/resource.yaml then a file * ./overlays/myoverlay/subdir/resource.yaml will replace the base * file. * A file named ./overlays/myoverlay/subdir/resource_patch.yaml will patch the base file. */ overlays: zod_1.z.array(zod_1.z.string()).optional() }) .optional() })) .optional(), /** * YAML options, if using raw YAML these are names that map to * overlays/{name} files that will be used to replace or patch a resource. */ yaml: zod_1.z .object({ /** * Overlays is a list of names that maps to folders in "overlays/". * If you wish to customize the file ./subdir/resource.yaml then a file * ./overlays/myoverlay/subdir/resource.yaml will replace the base * file. * A file named ./overlays/myoverlay/subdir/resource_patch.yaml will patch the base file. */ overlays: zod_1.z.array(zod_1.z.string()).optional() }) .optional() }) .optional(), status: zod_1.z .object({ /** * Conditions is a list of Wrangler conditions that describe the state * of the bundle. */ conditions: zod_1.z .array(zod_1.z.object({ /** * Last time the condition transitioned from one status to another. */ lastTransitionTime: zod_1.z.string().optional(), /** * The last time this condition was updated. */ lastUpdateTime: zod_1.z.string().optional(), /** * Human-readable message indicating details about last transition */ message: zod_1.z.string().optional(), /** * The reason for the condition's last transition. */ reason: zod_1.z.string().optional(), /** * Status of the condition, one of True, False, Unknown. */ status: zod_1.z.string(), /** * Type of cluster condition. */ type: zod_1.z.string() })) .optional(), /** * Display contains the number of ready, desiredready clusters and a * summary state for the bundle's resources. */ display: zod_1.z .object({ /** * ReadyClusters is a string in the form "%d/%d", that describes the * number of clusters that are ready vs. the number of clusters desired * to be ready. */ readyClusters: zod_1.z.string().optional(), /** * State is a summary state for the bundle, calculated over the non-ready resources. */ state: zod_1.z.string().optional() }) .optional(), /** * MaxNew is always 50. A bundle change can only stage 50 * bundledeployments at a time. */ maxNew: zod_1.z.number().optional(), /** * MaxUnavailable is the maximum number of unavailable deployments. See * rollout configuration. */ maxUnavailable: zod_1.z.number().optional(), /** * MaxUnavailablePartitions is the maximum number of unavailable * partitions. The rollout configuration defines a maximum number or * percentage of unavailable partitions. */ maxUnavailablePartitions: zod_1.z.number().optional(), /** * NewlyCreated is the number of bundle deployments that have been created, * not updated. */ newlyCreated: zod_1.z.number().optional(), /** * ObservedGeneration is the current generation of the bundle. */ observedGeneration: zod_1.z.number().optional(), /** * OCIReference is the OCI reference used to store contents, this is * only for informational purposes. */ ociReference: zod_1.z.string().optional(), /** * PartitionStatus lists the status of each partition. */ partitions: zod_1.z .array(zod_1.z.object({ /** * Count is the number of clusters in the partition. */ count: zod_1.z.number().optional(), /** * MaxUnavailable is the maximum number of unavailable clusters in the partition. */ maxUnavailable: zod_1.z.number().optional(), /** * Name is the name of the partition. */ name: zod_1.z.string().optional(), /** * Summary is a summary state for the partition, calculated over its non-ready resources. */ summary: zod_1.z .object({ /** * DesiredReady is the number of bundle deployments that should be * ready. */ desiredReady: zod_1.z.number().optional(), /** * ErrApplied is the number of bundle deployments that have been synced * from the Fleet controller and the downstream cluster, but with some * errors when deploying the bundle. */ errApplied: zod_1.z.number().optional(), /** * Modified is the number of bundle deployments that have been deployed * and for which all resources are ready, but where some changes from the * Git repository have not yet been synced. */ modified: zod_1.z.number().optional(), /** * NonReadyClusters is a list of states, which is filled for a bundle * that is not ready. */ nonReadyResources: zod_1.z .array(zod_1.z.object({ /** * State is the state of the resource, like e.g. "NotReady" or "ErrApplied". */ bundleState: zod_1.z.string().optional(), /** * Message contains information why the bundle is not ready. */ message: zod_1.z.string().optional(), /** * ModifiedStatus lists the state for each modified resource. */ modifiedStatus: zod_1.z .array(zod_1.z.object({ apiVersion: zod_1.z.string().optional(), delete: zod_1.z.boolean().optional(), kind: zod_1.z.string().optional(), missing: zod_1.z.boolean().optional(), name: zod_1.z.string().optional(), namespace: zod_1.z.string().optional(), patch: zod_1.z.string().optional() })) .optional(), /** * Name is the name of the resource. */ name: zod_1.z.string().optional(), /** * NonReadyStatus lists the state for each non-ready resource. */ nonReadyStatus: zod_1.z .array(zod_1.z.object({ a