package label

const (
	// The following labels are recommended by kubernetes https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/

	// ManagedByLabelKey is Kubernetes recommended label key, it represents the tool being used to manage the operation of an application
	// For resources managed by TiDB Operator, its value is always tidb-operator
	ManagedByLabelKey string = "app.kubernetes.io/managed-by"
	// ComponentLabelKey is Kubernetes recommended label key, it represents the component within the architecture
	ComponentLabelKey string = "app.kubernetes.io/component"
	// NameLabelKey is Kubernetes recommended label key, it represents the name of the application
	// It should always be tidb-cluster in our case.
	NameLabelKey string = "app.kubernetes.io/name"
	// InstanceLabelKey is Kubernetes recommended label key, it represents a unique name identifying the instance of an application
	// It's set by helm when installing a release
	InstanceLabelKey string = "app.kubernetes.io/instance"

	NamespaceLabelKey string = "app.kubernetes.io/namespace"

	// OverProvisioningComponentLabelValue is used as the value of `ComponentLabelKey` for over-provisioning pods
	OverProvisioningComponentLabelValue string = "over-provisioning"
	// OverProvisioningComponentLabelKey is used as the component type key for over-provisioning pods
	// It's value is just like `ComponentLabelKey`
	OverProvisioningComponentLabelKey string = "over-provisioning.infra.pingcap.com/component"

	// AnnPDDeleteSlots is annotation key of pd delete slots.
	AnnPDDeleteSlots = "pd.tidb.pingcap.com/delete-slots"
	// AnnTiDBDeleteSlots is annotation key of tidb delete slots.
	AnnTiDBDeleteSlots = "tidb.tidb.pingcap.com/delete-slots"
	// AnnTiKVDeleteSlots is annotation key of tikv delete slots.
	AnnTiKVDeleteSlots = "tikv.tidb.pingcap.com/delete-slots"
	// AnnTiFlashDeleteSlots is annotation key of tiflash delete slots.
	AnnTiFlashDeleteSlots = "tiflash.tidb.pingcap.com/delete-slots"
)
