-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathpvs.go
36 lines (34 loc) · 1.1 KB
/
pvs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package resource
import (
"github.com/dev4devs-com/postgresql-operator/pkg/apis/postgresql/v1alpha1"
"github.com/dev4devs-com/postgresql-operator/pkg/utils"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
)
//Returns the deployment object for the Database
func NewDatabasePvc(db *v1alpha1.Database, scheme *runtime.Scheme) *corev1.PersistentVolumeClaim {
ls := utils.GetLabels(db.Name)
pv := &corev1.PersistentVolumeClaim{
ObjectMeta: v1.ObjectMeta{
Name: db.Name,
Namespace: db.Namespace,
Labels: ls,
},
Spec: corev1.PersistentVolumeClaimSpec{
AccessModes: []corev1.PersistentVolumeAccessMode{
corev1.ReadWriteOnce,
},
Resources: corev1.ResourceRequirements{
Requests: corev1.ResourceList{
corev1.ResourceStorage: resource.MustParse(db.Spec.DatabaseStorageRequest),
},
},
StorageClassName: &db.Spec.DatabaseStorageClassName,
},
}
controllerutil.SetControllerReference(db, pv, scheme)
return pv
}