@soft-stech/fleet
Version:
1,051 lines (1,050 loc) • 57.2 kB
JavaScript
"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()).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
* @format int64
*/
"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())).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()).optional(),
/**
* NamespaceLabels are labels that will be appended to the namespace created by Fleet.
*/
"namespaceLabels": zod_1.z.record(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()).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()).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()).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()).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()).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()).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
* @format int64
*/
"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())).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()).optional(),
/**
* NamespaceLabels are labels that will be appended to the namespace created by Fleet.
*/
"namespaceLabels": zod_1.z.record(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.
* @format int64
*/
"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({
"apiVersion": zod_1.z.string().optional(),
"kind": zod_1.z.string().optional(),
"name": zod_1.z.string().optional(),
"namespace": zod_1.z.string().optional(),
"summary": zod_1.z.object({
"error": zod_1.z.boolean().optional(),
"message": zod_1.z.array(zod_1.z.string()).optional(),
"state": zod_1.z.string().optional(),
"transitioning": zod_1.z.boolean().optional()
}).optional(),
/**
* UID is a type that holds unique ID values, including UUIDs. Because we
* don't ONLY use UUIDs, this is an alias to string. Being a type captures
* intent and helps make sure that UIDs and names do not get conflated.
*/
"uid": zod_1.z.string().optional()
})).optional()
})).optional(),
/**
* NotReady is the number of bundle deployments that have been deployed
* where some resources are not ready.
*/
"notReady": zod_1.z.number().optional(),
/**
* OutOfSync is the number of bundle deployments that have been synced
* from Fleet controller, but not yet by the downstream agent.
*/
"outOfSync": zod_1.z.number().optional(),
/**