storagecluster

package
v4.0.0-...-faced96 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 82 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RookCephMonSecretName = "rook-ceph-mon"
	FsidKey               = "fsid"
	OdfOperatorNamePrefix = "odf-operator"
	ClusterClaimCRDName   = "clusterclaims.cluster.open-cluster-management.io"
)
View Source
const (
	// KMSConfigMapName is the name configmap which has KMS config details
	KMSConfigMapName = "ocs-kms-connection-details"
	// CSIKMSConfigMapName is the name of configmap provided to the CSI Operator
	CSIKMSConfigMapName = "csi-kms-connection-details"
	// KMSTokenSecretName is the name of the secret which has KMS token details
	KMSTokenSecretName = "ocs-kms-token"
	// CSIKMSTokenSecretName is the name of the secret which has the KMS token details of encrypted storage class
	CSIKMSTokenSecretName = "ceph-csi-kms-token"
	// KMSProviderKey is the key in config map to get the KMS provider name
	KMSProviderKey = "KMS_PROVIDER"
	// VaultKMSProvider a constant to represent 'vault' KMS provider
	VaultKMSProvider = "vault"
	// VaultTokenAuthMethod is the key to represent vault token based authentication
	VaultTokenAuthMethod = "token"
	// VaultSAAuthMethod is the key to represent vault k8s service account based authentication
	VaultSAAuthMethod = "kubernetes"
	// IbmKeyProtectKMSProvider a constant to represent IBM hpcs KMS provider
	IbmKeyProtectKMSProvider = "ibmkeyprotect"
	// ThalesKMSProvider a constant to represent Thales (using KMIP) KMS provider
	ThalesKMSProvider = "kmip"
	// AzureKSMProvider represents the Azure Key vault.
	AzureKSMProvider = "azure-kv"
)
View Source
const (

	// ReconcileStrategyUnknown is the same as default
	ReconcileStrategyUnknown ReconcileStrategy = ""
	// ReconcileStrategyInit means reconcile once and ignore if it exists
	ReconcileStrategyInit ReconcileStrategy = "init"
	// ReconcileStrategyIgnore means never reconcile
	ReconcileStrategyIgnore ReconcileStrategy = "ignore"
	// ReconcileStrategyManage means always reconcile
	ReconcileStrategyManage ReconcileStrategy = "manage"
	// ReconcileStrategyStandalone means to renconcile the component exclusively (NooBaa)
	ReconcileStrategyStandalone ReconcileStrategy = "standalone"

	// DeviceTypeSSD represents the DeviceType SSD
	DeviceTypeSSD = "ssd"

	// DeviceTypeHDD represents the DeviceType HDD
	DeviceTypeHDD = "hdd"

	// DeviceTypeNVMe represents the DeviceType NVMe
	DeviceTypeNVMe = "nvme"

	// AzureDisk represents Azure Premium Managed Disks provisioner for StorageClass
	AzureDisk StorageClassProvisionerType = "kubernetes.io/azure-disk"

	// EBS represents AWS EBS provisioner for StorageClass
	EBS StorageClassProvisionerType = "kubernetes.io/aws-ebs"
)
View Source
const (
	// CleanupPolicyAnnotation defines the cleanup policy for data and metadata during uninstall
	CleanupPolicyAnnotation = "uninstall.ocs.openshift.io/cleanup-policy"
	// CleanupPolicyDelete when set, modifies the cleanup policy for Rook to delete the DataDirHostPath on uninstall
	CleanupPolicyDelete CleanupPolicyType = "delete"
	// CleanupPolicyRetain when set, modifies the cleanup policy for Rook to not cleanup the DataDirHostPath and the disks on uninstall
	CleanupPolicyRetain CleanupPolicyType = "retain"
	// UninstallModeAnnotation defines the uninstall mode
	UninstallModeAnnotation = "uninstall.ocs.openshift.io/mode"
	// UninstallModeForced when set, sets the uninstall mode for Rook and Noobaa to forced.
	UninstallModeForced UninstallModeType = "forced"
	// UninstallModeGraceful when set, sets the uninstall mode for Rook and Noobaa to graceful.
	UninstallModeGraceful UninstallModeType = "graceful"
)
View Source
const (

	// DisasterRecoveryTargetAnnotation signifies that the cluster is intended to be used for Disaster Recovery
	DisasterRecoveryTargetAnnotation = "ocs.openshift.io/clusterIsDisasterRecoveryTarget"
)
View Source
const (
	MonitoringNamespace = "openshift-monitoring"
)

Variables

View Source
var (
	ClusterClaimGroup         = "odf"
	OdfVersion                = fmt.Sprintf("version.%s.openshift.io", ClusterClaimGroup)
	StorageSystemName         = fmt.Sprintf("storagesystemname.%s.openshift.io", ClusterClaimGroup)
	StorageClusterName        = fmt.Sprintf("storageclustername.%s.openshift.io", ClusterClaimGroup)
	StorageClusterCount       = fmt.Sprintf("count.storageclusters.%s.openshift.io", ClusterClaimGroup)
	StorageClusterDROptimized = fmt.Sprintf("droptimized.%s.openshift.io", ClusterClaimGroup)
	CephFsid                  = fmt.Sprintf("cephfsid.%s.openshift.io", ClusterClaimGroup)
)
View Source
var ReadinessChecker healthz.Checker = func(_ *http.Request) error {
	if operatorReady {
		return nil
	}
	return errors.New("StorageCluster is not ready yet")
}

Functions

func CheckFileExists

func CheckFileExists(filePath string) error

CheckFileExists checks for existence of file in given filepath

func GetProviderAPIServerDeployment

func GetProviderAPIServerDeployment(instance *ocsv1.StorageCluster) *appsv1.Deployment

func GetProviderAPIServerSecret

func GetProviderAPIServerSecret(instance *ocsv1.StorageCluster) *corev1.Secret

func GetProviderAPIServerService

func GetProviderAPIServerService(instance *ocsv1.StorageCluster) *corev1.Service

func NewUpgradeable

func NewUpgradeable(cl client.Client) (conditions.Condition, error)

NewUpgradeable returns a Conditions interface to Get or Set OperatorConditions

func RandomString

func RandomString(l int) string

RandomString - Generate a random string of A-Z chars with len = l

func ReadinessSet

func ReadinessSet()

func ReadinessUnset

func ReadinessUnset()

func StorageClassByV1Resource

func StorageClassByV1Resource(resourceName corev1.ResourceName) string

StorageClassByV1Resource returns storageclass name from resource name

Types

type CleanupPolicyType

type CleanupPolicyType string

CleanupPolicyType is a string representing cleanup policy

type ClusterClaimCreator

type ClusterClaimCreator struct {
	Context             context.Context
	Logger              logr.Logger
	Client              client.Client
	Values              map[string]string
	StorageCluster      *ocsv1.StorageCluster
	StorageClusterCount int
}

type ExternalResource

type ExternalResource struct {
	Kind string            `json:"kind"`
	Data map[string]string `json:"data"`
	Name string            `json:"name"`
}

ExternalResource contains a list of External Cluster Resources

type ImageMap

type ImageMap struct {
	Ceph               string
	NooBaaCore         string
	NooBaaDB           string
	OCSMetricsExporter string
}

ImageMap holds mapping information between component image name and the image url

type MatchingLabelsSelector

type MatchingLabelsSelector struct {
	labels.Selector
}

MatchingLabelsSelector filters the list/delete operation on the given label selector (or index in the case of cached lists). A struct is used because labels.Selector is an interface, which cannot be aliased.

func (MatchingLabelsSelector) ApplyToList

func (m MatchingLabelsSelector) ApplyToList(opts *client.ListOptions)

ApplyToList applies this configuration to the given list options. This is implemented by MatchingLabelsSelector which implements ListOption interface.

type ReconcileStrategy

type ReconcileStrategy string

ReconcileStrategy is a string representing how we want to reconcile (or not) a particular resource

type SnapshotClassConfiguration

type SnapshotClassConfiguration struct {
	// contains filtered or unexported fields
}

SnapshotClassConfiguration provides configuration options for a SnapshotClass.

type SnapshotterType

type SnapshotterType string

SnapshotterType represents a snapshotter type

type StorageClassConfiguration

type StorageClassConfiguration struct {
	// contains filtered or unexported fields
}

StorageClassConfiguration provides configuration options for a StorageClass.

type StorageClassProvisionerType

type StorageClassProvisionerType string

StorageClassProvisionerType is a string representing StorageClass Provisioner. E.g: aws-ebs

type StorageClusterReconciler

type StorageClusterReconciler struct {
	client.Client

	Log    logr.Logger
	Scheme *runtime.Scheme

	OperatorCondition         conditions.Condition
	IsNoobaaStandalone        bool
	IsMultipleStorageClusters bool

	OperatorNamespace string
	// contains filtered or unexported fields
}

StorageClusterReconciler reconciles a StorageCluster object nolint:revive

func (*StorageClusterReconciler) CreateOrUpdatePrometheusRules

func (r *StorageClusterReconciler) CreateOrUpdatePrometheusRules(ctx context.Context, rule *monitoringv1.PrometheusRule) error

CreateOrUpdatePrometheusRules creates or updates Prometheus Rule

func (*StorageClusterReconciler) Reconcile

Reconcile reads that state of the cluster for a StorageCluster object and makes changes based on the state read and what is in the StorageCluster.Spec Note: The Controller will requeue the Request to be processed again if the returned error is non-nil or Result.Requeue is true, otherwise upon completion it will remove the work from the queue.

func (*StorageClusterReconciler) SetOperatorConditions

func (r *StorageClusterReconciler) SetOperatorConditions(message string, reason string, isUpgradeable v1.ConditionStatus, prevError error) error

func (*StorageClusterReconciler) SetupWithManager

func (r *StorageClusterReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up a controller with manager

type UninstallModeType

type UninstallModeType string

UninstallModeType is a string representing cleanup mode, it decides whether the deletion is graceful or forced

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL