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  }