storage

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2026 License: Apache-2.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CSONamespace       = "openshift-cluster-storage-operator" // Cluster Storage Operator namespace
	CSINamespace       = "openshift-cluster-csi-drivers"      // Default CSI driver operators namespace
	ManilaCSINamespace = "openshift-manila-csi-driver"        // Manila CSI driver namespace (OpenStack only)
)

Storage operator and CSI driver namespace constants

Variables

View Source
var Platforms = map[string]PlatformConfig{
	"aws": {
		Provisioners: []ProvisionerInfo{
			{
				Name: "ebs.csi.aws.com",
				Type: ProvisionerTypeBlock,
				Features: FeatureSupport{
					SupportsBYOK: true,
				},
				EncryptionKeyName:        "kmsKeyId",
				ManagedStorageClassNames: []string{"gp2-csi", "gp3-csi"},
			},
			{
				Name:                     "efs.csi.aws.com",
				Type:                     ProvisionerTypeFile,
				Features:                 FeatureSupport{},
				EncryptionKeyName:        "",
				ManagedStorageClassNames: []string{"efs-sc"},
			},
		},
		DefaultStorageClass: "gp3-csi",
	},
	"gce": {
		Provisioners: []ProvisionerInfo{
			{
				Name: "pd.csi.storage.gke.io",
				Type: ProvisionerTypeBlock,
				Features: FeatureSupport{
					SupportsBYOK: true,
				},
				EncryptionKeyName:        "disk-encryption-kms-key",
				ManagedStorageClassNames: []string{"standard-csi", "ssd-csi"},
			},
			{
				Name:                     "filestore.csi.storage.gke.io",
				Type:                     ProvisionerTypeFile,
				Features:                 FeatureSupport{},
				EncryptionKeyName:        "",
				ManagedStorageClassNames: []string{"filestore-csi"},
			},
		},
		DefaultStorageClass: "standard-csi",
	},
	"azure": {
		Provisioners: []ProvisionerInfo{
			{
				Name: "disk.csi.azure.com",
				Type: ProvisionerTypeBlock,
				Features: FeatureSupport{
					SupportsBYOK: true,
				},
				EncryptionKeyName:        "diskEncryptionSetID",
				ManagedStorageClassNames: []string{"managed-csi"},
			},
			{
				Name:                     "file.csi.azure.com",
				Type:                     ProvisionerTypeFile,
				Features:                 FeatureSupport{},
				EncryptionKeyName:        "",
				ManagedStorageClassNames: []string{"azurefile-csi"},
			},
		},
		DefaultStorageClass: "managed-csi",
	},
	"ibmcloud": {
		Provisioners: []ProvisionerInfo{
			{
				Name: "vpc.block.csi.ibm.io",
				Type: ProvisionerTypeBlock,
				Features: FeatureSupport{
					SupportsBYOK: true,
				},
				EncryptionKeyName: "encryptionKey",
				ManagedStorageClassNames: []string{
					"ibmc-vpc-block-10iops-tier",
					"ibmc-vpc-block-5iops-tier",
					"ibmc-vpc-block-custom"},
			},
		},
		DefaultStorageClass: "ibmc-vpc-block-10iops-tier",
	},
}

Platforms maps cloud platforms to their configuration

Functions

func FindDefaultStorageClass

func FindDefaultStorageClass(oc *exutil.CLI) *storagev1.StorageClass

func GetBYOKProvisionerNames added in v1.6.0

func GetBYOKProvisionerNames(platform string) []string

GetBYOKProvisionerNames returns names of provisioners that support BYOK for a given platform

func GetCSIStorageClassByProvisioner

func GetCSIStorageClassByProvisioner(ctx context.Context, oc *exutil.CLI, provisioner string) string

GetCSIStorageClassByProvisioner finds a StorageClass that uses the given CSI driver provisioner. It is intended for use only in [Serial] jobs, since CSI tests typically create short-lived StorageClasses that may be deleted. The function returns the name of the first matching StorageClass, or fails the test if none is found.

func GetDefaultStorageClass added in v1.6.0

func GetDefaultStorageClass(platform string) string

GetDefaultStorageClass returns the default storage class for a given platform

func GetProvisionerNames added in v1.6.0

func GetProvisionerNames(platform string) []string

GetProvisionerNames returns just the names of provisioners for a given platform

func IsCSOHealthy

func IsCSOHealthy(oc *exutil.CLI) (bool, error)

IsCSOHealthy checks whether the Cluster Storage Operator is healthy

func WaitForCSOHealthy

func WaitForCSOHealthy(oc *exutil.CLI)

WaitForCSOHealthy waits for Cluster Storage Operator become healthy

Types

type DisableStorageClassTest

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

func NewDisableStorageClassTest

func NewDisableStorageClassTest(oc *exutil.CLI, scName string, provisionerName string) *DisableStorageClassTest

func (*DisableStorageClassTest) GetAllowExpansion

func (d *DisableStorageClassTest) GetAllowExpansion() bool

func (*DisableStorageClassTest) GetSCState

func (*DisableStorageClassTest) SetAllowExpansion

func (d *DisableStorageClassTest) SetAllowExpansion(allowExpansion bool)

func (*DisableStorageClassTest) SetSCState

func (*DisableStorageClassTest) VerifyAllowExpansion

func (d *DisableStorageClassTest) VerifyAllowExpansion(expected bool, retry func())

func (*DisableStorageClassTest) VerifySCExists

func (d *DisableStorageClassTest) VerifySCExists(expected bool)

type FeatureSupport added in v1.6.0

type FeatureSupport struct {
	SupportsBYOK bool
}

FeatureSupport defines which features a provisioner supports

type PlatformConfig added in v1.6.0

type PlatformConfig struct {
	Provisioners        []ProvisionerInfo
	DefaultStorageClass string
}

PlatformConfig contains configuration for a cloud platform

type ProvisionerInfo added in v1.6.0

type ProvisionerInfo struct {
	Name                     string
	Type                     ProvisionerType
	Features                 FeatureSupport
	EncryptionKeyName        string   // The parameter name for encryption key in StorageClass
	ManagedStorageClassNames []string // List of managed/preset storage classes name
}

ProvisionerInfo contains information about a CSI provisioner

func GetBYOKProvisioners added in v1.6.0

func GetBYOKProvisioners(platform string) []ProvisionerInfo

GetBYOKProvisioners returns provisioners that support BYOK for a given platform

func GetProvisionerByName added in v1.6.0

func GetProvisionerByName(provisioner string) *ProvisionerInfo

GetProvisionerByName finds a provisioner by its name across all platforms

func GetProvisionersByPlatform added in v1.6.0

func GetProvisionersByPlatform(platform string) []ProvisionerInfo

GetProvisionersByPlatform returns all provisioners for a given platform

func GetProvisionersByType added in v1.6.0

func GetProvisionersByType(platform string, provType ProvisionerType) []ProvisionerInfo

GetProvisionersByType returns provisioners of a specific type for a given platform

type ProvisionerType added in v1.6.0

type ProvisionerType string

ProvisionerType represents the type of CSI provisioner

const (
	// ProvisionerTypeBlock represents block storage provisioners (AWS EBS,Azure Disk, etc.)
	ProvisionerTypeBlock ProvisionerType = "block"
	// ProvisionerTypeFile represents file storage provisioners (AWS EFS, Azure File, etc.)
	ProvisionerTypeFile ProvisionerType = "file"
	// GCPDefaultKmsKeyLocation is the default location for GCP KMS keys if not specified in the test configuration
	GCPDefaultKmsKeyLocation = "global"
)

type ResourceType

type ResourceType string

ResourceType defines the type of Openshift workload resource

const (
	ResourceTypeDeployment ResourceType = "Deployment"
	ResourceTypeDaemonSet  ResourceType = "DaemonSet"
)

type SCPatch

type SCPatch struct {
	AllowVolumeExpansion *bool `json:"allowVolumeExpansion,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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