Skip to content

Commit

Permalink
Merge pull request #8 from apecloud/support/fit-1.0-new-env
Browse files Browse the repository at this point in the history
support: fit kb 1.0 new env
  • Loading branch information
xuriwuyun authored Dec 17, 2024
2 parents adf968c + e1f7316 commit 8524a50
Show file tree
Hide file tree
Showing 10 changed files with 131 additions and 414 deletions.
249 changes: 5 additions & 244 deletions constant/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,257 +20,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package constant

const (
KBPrefix = "KB"
KBLowerPrefix = "kb"
)

const (
KBServiceAccountName = "KUBEBLOCKS_SERVICEACCOUNT_NAME"
KBToolsImage = "KUBEBLOCKS_TOOLS_IMAGE"
KBImagePullPolicy = "KUBEBLOCKS_IMAGE_PULL_POLICY"
KBDataScriptClientsImage = "KUBEBLOCKS_DATASCRIPT_CLIENTS_IMAGE"
)

const (
APIGroup = "kubeblocks.io"

AppName = "kubeblocks"

// K8S recommended well-known labels and annotation keys

// AppInstanceLabelKey refer cluster.Name
AppInstanceLabelKey = "app.kubernetes.io/instance"
// AppNameLabelKey refer clusterDefinition.Name before KubeBlocks Version 0.8.0 or refer ComponentDefinition.Name after KubeBlocks Version 0.8.0 (TODO:Pending)
AppNameLabelKey = "app.kubernetes.io/name"
// AppComponentLabelKey refer clusterDefinition.Spec.ComponentDefs[*].Name before KubeBlocks Version 0.8.0 or refer ComponentDefinition.Name after KubeBlocks Version 0.8.0
AppComponentLabelKey = "app.kubernetes.io/component"
// AppVersionLabelKey refer clusterVersion.Name before KubeBlocks Version 0.8.0 or refer ComponentDefinition.Name after KubeBlocks Version 0.8.0
AppVersionLabelKey = "app.kubernetes.io/version"
AppManagedByLabelKey = "app.kubernetes.io/managed-by"
RegionLabelKey = "topology.kubernetes.io/region"
ZoneLabelKey = "topology.kubernetes.io/zone"

// kubeblocks.io labels
BackupProtectionLabelKey = "kubeblocks.io/backup-protection" // BackupProtectionLabelKey Backup delete protection policy label
AddonProviderLabelKey = "kubeblocks.io/provider" // AddonProviderLabelKey marks the addon provider
RoleLabelKey = "kubeblocks.io/role" // RoleLabelKey consensusSet and replicationSet role label key
ReadyWithoutPrimaryKey = "kubeblocks.io/ready-without-primary"
VolumeTypeLabelKey = "kubeblocks.io/volume-type"
ClusterAccountLabelKey = "account.kubeblocks.io/name"
KBAppClusterUIDLabelKey = "apps.kubeblocks.io/cluster-uid"
KBAppComponentLabelKey = "apps.kubeblocks.io/component-name"
KBAppShardingNameLabelKey = "apps.kubeblocks.io/sharding-name"
KBAppComponentDefRefLabelKey = "apps.kubeblocks.io/component-def-ref" // refer clusterDefinition.Spec.ComponentDefs[*].Name before KubeBlocks Version 0.8.0 or refer ComponentDefinition.Name after KubeBlocks Version 0.8.0
KBAppClusterDefTypeLabelKey = "apps.kubeblocks.io/cluster-type" // refer clusterDefinition.Spec.Type (deprecated)
AppConfigTypeLabelKey = "apps.kubeblocks.io/config-type"
KBManagedByKey = "apps.kubeblocks.io/managed-by" // KBManagedByKey marks resources that auto created
PVCNameLabelKey = "apps.kubeblocks.io/pvc-name"
VolumeClaimTemplateNameLabelKey = "apps.kubeblocks.io/vct-name"
VolumeClaimTemplateNameLabelKeyForLegacy = "vct.kubeblocks.io/name" // Deprecated: only compatible with version 0.5, will be removed in 0.7
WorkloadTypeLabelKey = "apps.kubeblocks.io/workload-type"
ClassProviderLabelKey = "class.kubeblocks.io/provider"
ClusterDefLabelKey = "clusterdefinition.kubeblocks.io/name"
ClusterVerLabelKey = "clusterversion.kubeblocks.io/name"
ComponentDefinitionLabelKey = "componentdefinition.kubeblocks.io/name"
CMConfigurationSpecProviderLabelKey = "config.kubeblocks.io/config-spec" // CMConfigurationSpecProviderLabelKey is ComponentConfigSpec name
CMConfigurationCMKeysLabelKey = "config.kubeblocks.io/configmap-keys" // CMConfigurationCMKeysLabelKey Specify configmap keys
CMConfigurationTemplateNameLabelKey = "config.kubeblocks.io/config-template-name"
CMTemplateNameLabelKey = "config.kubeblocks.io/template-name"
CMConfigurationTypeLabelKey = "config.kubeblocks.io/config-type"
CMInsConfigurationHashLabelKey = "config.kubeblocks.io/config-hash"
CMInsCurrentConfigurationHashLabelKey = "config.kubeblocks.io/update-config-hash"
CMConfigurationConstraintsNameLabelKey = "config.kubeblocks.io/config-constraints-name"
CMConfigurationTemplateVersion = "config.kubeblocks.io/config-template-version"
ConsensusSetAccessModeLabelKey = "cs.apps.kubeblocks.io/access-mode"
AddonNameLabelKey = "extensions.kubeblocks.io/addon-name"
OpsRequestTypeLabelKey = "ops.kubeblocks.io/ops-type"
OpsRequestNameLabelKey = "ops.kubeblocks.io/ops-name"
OpsRequestNamespaceLabelKey = "ops.kubeblocks.io/ops-namespace"
ServiceDescriptorNameLabelKey = "servicedescriptor.kubeblocks.io/name"
RestoreForHScaleLabelKey = "apps.kubeblocks.io/restore-for-hscale"
ResourceConstraintProviderLabelKey = "resourceconstraint.kubeblocks.io/provider"

// StatefulSetPodNameLabelKey is used to mark the pod name of the StatefulSet
StatefulSetPodNameLabelKey = "statefulset.kubernetes.io/pod-name"

// kubeblocks.io annotations
ClusterSnapshotAnnotationKey = "kubeblocks.io/cluster-snapshot" // ClusterSnapshotAnnotationKey saves the snapshot of cluster.
DefaultClusterVersionAnnotationKey = "kubeblocks.io/is-default-cluster-version" // DefaultClusterVersionAnnotationKey specifies the default cluster version.
OpsRequestAnnotationKey = "kubeblocks.io/ops-request" // OpsRequestAnnotationKey OpsRequest annotation key in Cluster
ReconcileAnnotationKey = "kubeblocks.io/reconcile" // ReconcileAnnotationKey Notify k8s object to reconcile
RestartAnnotationKey = "kubeblocks.io/restart" // RestartAnnotationKey the annotation which notices the StatefulSet/DeploySet to restart
RestoreFromBackupAnnotationKey = "kubeblocks.io/restore-from-backup" // RestoreFromBackupAnnotationKey specifies the component to recover from the backup.
SnapShotForStartAnnotationKey = "kubeblocks.io/snapshot-for-start"
ComponentReplicasAnnotationKey = "apps.kubeblocks.io/component-replicas" // ComponentReplicasAnnotationKey specifies the number of pods in replicas
BackupPolicyTemplateAnnotationKey = "apps.kubeblocks.io/backup-policy-template"
LastAppliedClusterAnnotationKey = "apps.kubeblocks.io/last-applied-cluster"
PVLastClaimPolicyAnnotationKey = "apps.kubeblocks.io/pv-last-claim-policy"
HaltRecoveryAllowInconsistentCVAnnotKey = "clusters.apps.kubeblocks.io/allow-inconsistent-cv"
HaltRecoveryAllowInconsistentResAnnotKey = "clusters.apps.kubeblocks.io/allow-inconsistent-resource"
PrimaryAnnotationKey = "rs.apps.kubeblocks.io/primary"
DisableUpgradeInsConfigurationAnnotationKey = "config.kubeblocks.io/disable-reconfigure"
LastAppliedConfigAnnotationKey = "config.kubeblocks.io/last-applied-configuration"
LastAppliedOpsCRAnnotationKey = "config.kubeblocks.io/last-applied-ops-name"
UpgradePolicyAnnotationKey = "config.kubeblocks.io/reconfigure-policy"
KBParameterUpdateSourceAnnotationKey = "config.kubeblocks.io/reconfigure-source"
UpgradeRestartAnnotationKey = "config.kubeblocks.io/restart"
ConfigAppliedVersionAnnotationKey = "config.kubeblocks.io/config-applied-version"
KubeBlocksGenerationKey = "kubeblocks.io/generation"
ExtraEnvAnnotationKey = "kubeblocks.io/extra-env"
LastRoleSnapshotVersionAnnotationKey = "apps.kubeblocks.io/last-role-snapshot-version"
HostPortAnnotationKey = "kubeblocks.io/host-port"
HostPortIncludeAnnotationKey = "network.kubeblocks.io/host-ports-include"
HostPortExcludeAnnotationKey = "network.kubeblocks.io/host-ports-exclude"
DisableHAAnnotationKey = "kubeblocks.io/disable-ha"
// EnabledNodePortSvcAnnotationKey defines the feature gate of NodePort Service defined in ComponentDefinition.Spec.Services.
// Components defined in the annotation value, their all services of type NodePort defined in ComponentDefinition will be created; otherwise, they will be ignored.
// Multiple components are separated by ','. for example: "kubeblocks.io/enabled-node-port-svc: comp1,comp2"
EnabledNodePortSvcAnnotationKey = "kubeblocks.io/enabled-node-port-svc"
// EnabledPodOrdinalSvcAnnotationKey defines the feature gate of PodOrdinal Service defined in ComponentDefinition.Spec.Services.
// Components defined in the annotation value, their all Services defined in the ComponentDefinition with the GeneratePodOrdinalService attribute set to true will be created; otherwise, they will be ignored.
// This can generate a corresponding Service for each Pod, which can be used in certain specific scenarios: for example, creating a dedicated access service for each read-only Pod.
// Multiple components are separated by ','. for example: "kubeblocks.io/enabled-pod-ordinal-svc: comp1,comp2"
EnabledPodOrdinalSvcAnnotationKey = "kubeblocks.io/enabled-pod-ordinal-svc"
// DisabledClusterIPSvcAnnotationKey defines whether the feature gate of ClusterIp Service defined in ComponentDefinition.Spec.Services will be effected.
// Components defined in the annotation value, their all services of type ClusterIp defined in ComponentDefinition will be ignored; otherwise, they will be created.
// Multiple components are separated by ','. for example: "kubeblocks.io/disabled-cluster-ip-svc: comp1,comp2"
DisabledClusterIPSvcAnnotationKey = "kubeblocks.io/disabled-cluster-ip-svc"
// ShardSvcAnnotationKey defines the feature gate of creating service for each shard.
// Sharding name defined in the annotation value, a set of Service defined in Cluster.Spec.Services with the ShardingSelector will be automatically generated for each shard when Cluster.Spec.ShardingSpecs[x].shards is not nil.
// Multiple sharding names are separated by ','. for example: "kubeblocks.io/enabled-shard-svc: proxy-shard,db-shard"
ShardSvcAnnotationKey = "kubeblocks.io/enabled-shard-svc"

// kubeblocks.io well-known finalizers
DBClusterFinalizerName = "cluster.kubeblocks.io/finalizer"
DBComponentFinalizerName = "component.kubeblocks.io/finalizer"
DBComponentDefinitionFinalizerName = "componentdefinition.kubeblocks.io/finalizer"
ConfigurationTemplateFinalizerName = "config.kubeblocks.io/finalizer"
ServiceDescriptorFinalizerName = "servicedescriptor.kubeblocks.io/finalizer"
OpsRequestFinalizerName = "opsrequest.kubeblocks.io/finalizer"

// ConfigurationTplLabelPrefixKey clusterVersion or clusterdefinition using tpl
ConfigurationTplLabelPrefixKey = "config.kubeblocks.io/tpl"
ConfigurationConstraintsLabelPrefixKey = "config.kubeblocks.io/constraints"

// CMInsLastReconfigurePhaseKey defines the current phase
CMInsLastReconfigurePhaseKey = "config.kubeblocks.io/last-applied-reconfigure-phase"

// ConfigurationRevision defines the current revision
// TODO support multi version
ConfigurationRevision = "config.kubeblocks.io/configuration-revision"
LastConfigurationRevisionPhase = "config.kubeblocks.io/revision-reconcile-phase"

// Deprecated: only compatible with version 0.6, will be removed in 0.8
// CMInsEnableRerenderTemplateKey is used to enable rerender template
CMInsEnableRerenderTemplateKey = "config.kubeblocks.io/enable-rerender"

// IgnoreResourceConstraint is used to specify whether to ignore the resource constraint
IgnoreResourceConstraint = "resource.kubeblocks.io/ignore-constraint"

RBACRoleName = "kubeblocks-cluster-pod-role"
RBACClusterRoleName = "kubeblocks-volume-protection-pod-role"

// FeatureReconciliationInCompactModeAnnotationKey indicates that the controller should run in compact mode,
// means to try the best to cutoff useless objects.
FeatureReconciliationInCompactModeAnnotationKey = "kubeblocks.io/compact-mode"
)

const (
// ReasonNotFoundCR referenced custom resource not found
ReasonNotFoundCR = "NotFound"
// ReasonRefCRUnavailable referenced custom resource is unavailable
ReasonRefCRUnavailable = "Unavailable"
// ReasonDeletedCR deleted custom resource
ReasonDeletedCR = "DeletedCR"
// ReasonDeletingCR deleting custom resource
ReasonDeletingCR = "DeletingCR"
// ReasonCreatedCR created custom resource
ReasonCreatedCR = "CreatedCR"
// ReasonRunTaskFailed run task failed
ReasonRunTaskFailed = "RunTaskFailed"
// ReasonDeleteFailed delete failed
ReasonDeleteFailed = "DeleteFailed"
)

const (
// Container port name
LorryHTTPPortName = "lorry-http-port"
LorryGRPCPortName = "lorry-grpc-port"
LorryContainerName = "lorry"
LorryInitContainerName = "init-lorry"
ProbeInitContainerName = "kb-initprobe"
RoleProbeContainerName = "kb-checkrole"
StatusProbeContainerName = "kb-checkstatus"
RunningProbeContainerName = "kb-checkrunning"
VolumeProtectionProbeContainerName = "kb-volume-protection"
LorryRoleProbePath = "/v1.0/checkrole"
LorryVolumeProtectPath = "/v1.0/volumeprotection"

// the filedpath name used in event.InvolvedObject.FieldPath
ProbeCheckStatusPath = "spec.containers{" + StatusProbeContainerName + "}"
ProbeCheckRunningPath = "spec.containers{" + RunningProbeContainerName + "}"
)

const (
ConfigSidecarName = "config-manager"
ConfigManagerGPRCPortEnv = "CONFIG_MANAGER_GRPC_PORT"
ConfigManagerLogLevel = "CONFIG_MANAGER_LOG_LEVEL"

PodMinReadySecondsEnv = "POD_MIN_READY_SECONDS"
ConfigTemplateType = "tpl"
ConfigInstanceType = "instance"

ReconfigureManagerSource = "manager"
ReconfigureUserSource = "ops"
ReconfigureTemplateSource = "external-template"

ConfigManagerPortName = "config-manager"
)

const (
Primary = "primary"
Secondary = "secondary"

Leader = "leader"
Follower = "follower"
Learner = "learner"
)

// username and password are keys in created secrets for others to refer to.
const (
AccountNameForSecret = "username"
AccountPasswdForSecret = "password"
AppInstanceLabelKey = "app.kubernetes.io/instance"
AppManagedByLabelKey = "app.kubernetes.io/managed-by"
RoleLabelKey = "kubeblocks.io/role" // RoleLabelKey consensusSet and replicationSet role label key
KBAppComponentLabelKey = "apps.kubeblocks.io/component-name"
)

const (
FeatureGateReplicatedStateMachine = "REPLICATED_STATE_MACHINE" // enable rsm
LorryHTTPPortName = "lorry-http-port"
)

const (
KubernetesClusterDomainEnv = "KUBERNETES_CLUSTER_DOMAIN"
DefaultDNSDomain = "cluster.local"
)

const (
ServiceDescriptorUsernameKey = "username"
ServiceDescriptorPasswordKey = "password"
ServiceDescriptorEndpointKey = "endpoint"
ServiceDescriptorPortKey = "port"
)

const (
BackupNameKeyForRestore = "name"
BackupNamespaceKeyForRestore = "namespace"
VolumeRestorePolicyKeyForRestore = "volumeRestorePolicy"
DoReadyRestoreAfterClusterRunning = "doReadyRestoreAfterClusterRunning"
RestoreTimeKeyForRestore = "restoreTime"
ConnectionPassword = "connectionPassword"
)

const (
KBAppMultiClusterPlacementKey = "apps.kubeblocks.io/multi-cluster-placement"
)

const (
KBGeneratedVirtualCompDefPrefix = "KB_GENERATED_VIRTUAL_COMP_DEF"
)
Loading

0 comments on commit 8524a50

Please sign in to comment.