github.com/docker/compose-on-kubernetes@v0.5.0/internal/convert/pvc.go (about) 1 package convert 2 3 import ( 4 "fmt" 5 6 "github.com/docker/compose-on-kubernetes/api/compose/latest" 7 apiv1 "k8s.io/api/core/v1" 8 "k8s.io/apimachinery/pkg/api/resource" 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 ) 11 12 func toPersistentVolumeClaims(srv latest.ServiceConfig, original []apiv1.PersistentVolumeClaim) []apiv1.PersistentVolumeClaim { 13 originalMap := make(map[string]apiv1.PersistentVolumeClaim) 14 for _, c := range original { 15 originalMap[c.Name] = c 16 } 17 var volumes []apiv1.PersistentVolumeClaim 18 19 for i, volume := range srv.Volumes { 20 if volume.Type != "volume" { 21 continue 22 } 23 volumename := fmt.Sprintf("mount-%d", i) 24 if volume.Source != "" { 25 volumename = volume.Source 26 } 27 v := originalMap[volumename] 28 v.ObjectMeta = metav1.ObjectMeta{ 29 Name: volumename, 30 Annotations: srv.Deploy.Labels, 31 } 32 v.Spec.AccessModes = []apiv1.PersistentVolumeAccessMode{ 33 apiv1.ReadWriteOnce, 34 } 35 v.Spec.Resources = apiv1.ResourceRequirements{ 36 Requests: apiv1.ResourceList{ 37 apiv1.ResourceStorage: resource.MustParse("100Mi"), 38 }, 39 } 40 volumes = append(volumes, v) 41 } 42 43 return volumes 44 }