// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

package omni

const (
	// MachineLocked locks any updates on a machine set node.
	// tsgen:MachineLocked
	MachineLocked = SystemLabelPrefix + "locked"

	// UpdateLocked machine is locked and has pending update.
	// tsgen:UpdateLocked
	UpdateLocked = SystemLabelPrefix + "locked-update"

	// ResourceManagedByClusterTemplates is an annotation which indicates that a resource is managed by cluster templates.
	// tsgen:ResourceManagedByClusterTemplates
	ResourceManagedByClusterTemplates = SystemLabelPrefix + "managed-by-cluster-templates"

	// ConfigPatchName human readable patch name.
	// tsgen:ConfigPatchName
	ConfigPatchName = "name"

	// ConfigPatchDescription human readable patch description.
	// tsgen:ConfigPatchDescription
	ConfigPatchDescription = "description"

	// KubernetesManifestName is the human readable manifest name.
	// tsgen:KubernetesManifestName
	KubernetesManifestName = "name"

	// PreserveDiskQuotaSupport marks the cluster machine to alter the config generation for it.
	// It forces the config patch that enables diskQuotaSupport feature.
	PreserveDiskQuotaSupport = SystemLabelPrefix + "preserve-disk-quota-support"

	// PreserveApidCheckExtKeyUsage marks the cluster machine to alter the config generation for it.
	// It forces the config patch that enables apidCheckExtkeyUsage feature.
	PreserveApidCheckExtKeyUsage = SystemLabelPrefix + "preserve-apid-check-ext-key-usage"

	// CreatedWithUniqueToken is set on the link resource when it was created with the provision request
	// that has node unique token set.
	CreatedWithUniqueToken = SystemLabelPrefix + "created-with-unique-token"

	// ClusterLocked locks any updates on a cluster.
	// tsgen:ClusterLocked
	ClusterLocked = SystemLabelPrefix + "cluster-locked"

	// ClusterImportIsInProgress indicates that the cluster import process is in progress.
	// This annotation is temporarily set on the cluster during initial import to allow resource creation that's normally blocked by ClusterLocked.
	// tsgen:ClusterImportIsInProgress
	ClusterImportIsInProgress = SystemLabelPrefix + "cluster-import-is-in-progress"

	// KernelArgsInitialized indicates that KernelArgs resource has been initialized for the machine.
	//
	// This annotation is set on MachineStatus resource.
	//
	// tsgen:KernelArgsInitialized
	KernelArgsInitialized = SystemLabelPrefix + "kernel-args-initialized"

	// TaintedByBreakGlassTimestamp is set on the ClusterStatus when it was tainted by break glass.
	// The presence of the taint is determined by the label LabelClusterTaintedByBreakGlass on the ClusterStatus resource.
	TaintedByBreakGlassTimestamp = SystemLabelPrefix + "tainted-by-break-glass-timestamp"

	// RotateTalosCAVersion is the version of RotateTalosCA resource.
	// This annotation is set on the ClusterSecretsRotationStatus resource when CA rotation is initiated.
	RotateTalosCAVersion = SystemLabelPrefix + "rotate-talos-ca-version"

	// RotateTalosCATimestamp indicates the time when CA rotation was completed.
	// This annotation is set on the ClusterSecrets resource.
	RotateTalosCATimestamp = SystemLabelPrefix + "rotate-talos-ca-timestamp"

	// SecretRotationVersion is the version of a SecretRotation resource. It's used to determine whether ClusterSecrets need to be updated for rotation.
	// This annotation is set on the ClusterSecrets resource.
	SecretRotationVersion = SystemLabelPrefix + "secret-rotation-version"

	// RotateKubernetesCAVersion is the version of RotateKubernetesCA resource.
	// This annotation is set on the ClusterSecretsRotationStatus resource when Kubernetes CA rotation is initiated.
	RotateKubernetesCAVersion = SystemLabelPrefix + "rotate-kubernetes-ca-version"

	// RotateKubernetesCATimestamp indicates the time when CA rotation was completed.
	// This annotation is set on the ClusterSecrets resource.
	RotateKubernetesCATimestamp = SystemLabelPrefix + "rotate-kubernetes-ca-timestamp"

	// KubernetesManifestOwner is added to the kubernetes resources which are created by a KubernetesManifest resource.
	KubernetesManifestOwner = SystemLabelPrefix + "owned-by-kubernetes-manifest"
)
