github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/pkg/clients/tekton/persistent_volume_claims.go (about)

     1  package tekton
     2  
     3  import (
     4  	"context"
     5  
     6  	corev1 "k8s.io/api/core/v1"
     7  	"k8s.io/apimachinery/pkg/api/resource"
     8  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
     9  )
    10  
    11  // CreatePVCInAccessMode creates a PVC with mode as passed in arguments.
    12  func (t *TektonController) CreatePVCInAccessMode(name, namespace string, accessMode corev1.PersistentVolumeAccessMode) (*corev1.PersistentVolumeClaim, error) {
    13  	pvc := &corev1.PersistentVolumeClaim{
    14  		ObjectMeta: metav1.ObjectMeta{
    15  			Name:      name,
    16  			Namespace: namespace,
    17  		},
    18  		Spec: corev1.PersistentVolumeClaimSpec{
    19  			AccessModes: []corev1.PersistentVolumeAccessMode{
    20  				accessMode,
    21  			},
    22  			Resources: corev1.ResourceRequirements{
    23  				Requests: corev1.ResourceList{
    24  					corev1.ResourceStorage: resource.MustParse("1Gi"),
    25  				},
    26  			},
    27  		},
    28  	}
    29  
    30  	createdPVC, err := t.KubeInterface().CoreV1().PersistentVolumeClaims(namespace).Create(context.Background(), pvc, metav1.CreateOptions{})
    31  	if err != nil {
    32  		return nil, err
    33  	}
    34  	return createdPVC, err
    35  }
    36  
    37  func (t *TektonController) DeletePVC(name, namespace string) error {
    38  	return t.KubeInterface().CoreV1().PersistentVolumeClaims(namespace).Delete(context.Background(), name, metav1.DeleteOptions{})
    39  }
    40  
    41  func (t *TektonController) GetPVC(name, namespace string) (*corev1.PersistentVolumeClaim, error) {
    42  	return t.KubeInterface().CoreV1().PersistentVolumeClaims(namespace).Get(context.Background(), name, metav1.GetOptions{})
    43  }