forked from LaconicNetwork/kompose
Add support for init containers and mounting secrets
This commit is contained in:
@@ -839,12 +839,14 @@ func handleVolume(komposeObject *kobject.KomposeObject, volumes *types.Volumes)
|
||||
errors.Wrap(err, "could not retrieve vvolume")
|
||||
}
|
||||
for volName, vol := range vols {
|
||||
size, selector := getVolumeLabels(vol.VolumeName, volumes)
|
||||
if len(size) > 0 || len(selector) > 0 {
|
||||
size, selector, volumeType, secretName := getVolumeLabels(vol.VolumeName, volumes)
|
||||
if len(size) > 0 || len(selector) > 0 || len(volumeType) > 0 || len(secretName) > 0 {
|
||||
// We can't assign value to struct field in map while iterating over it, so temporary variable `temp` is used here
|
||||
var temp = vols[volName]
|
||||
temp.PVCSize = size
|
||||
temp.SelectorValue = selector
|
||||
temp.VolumeType = volumeType
|
||||
temp.SecretName = secretName
|
||||
vols[volName] = temp
|
||||
}
|
||||
}
|
||||
@@ -949,20 +951,30 @@ func getVol(toFind kobject.Volumes, Vols []kobject.Volumes) (bool, kobject.Volum
|
||||
return false, kobject.Volumes{}
|
||||
}
|
||||
|
||||
func getVolumeLabels(name string, volumes *types.Volumes) (string, string) {
|
||||
size, selector := "", ""
|
||||
func getVolumeLabels(name string, volumes *types.Volumes) (string, string, string, string) {
|
||||
size, selector, volumeType, secretName := "", "", "", ""
|
||||
|
||||
if volume, ok := (*volumes)[name]; ok {
|
||||
log.Debugf("Getting labels for volume %s, labels: %v", name, volume.Labels)
|
||||
for key, value := range volume.Labels {
|
||||
if key == "kompose.volume.size" {
|
||||
size = value
|
||||
} else if key == "kompose.volume.selector" {
|
||||
selector = value
|
||||
} else if key == "kompose.volume.type" {
|
||||
volumeType = value
|
||||
} else if key == "kompose.volume.secret-name" {
|
||||
secretName = value
|
||||
}
|
||||
}
|
||||
if volumeType != "" {
|
||||
log.Infof("Volume %s has type %s, secret name: %s", name, volumeType, secretName)
|
||||
}
|
||||
} else {
|
||||
log.Debugf("Volume %s not found in volumes map", name)
|
||||
}
|
||||
|
||||
return size, selector
|
||||
return size, selector, volumeType, secretName
|
||||
}
|
||||
|
||||
// getGroupAdd will return group in int64 format
|
||||
|
||||
@@ -94,6 +94,12 @@ const (
|
||||
LabelInitContainerImage = "kompose.init.containers.image"
|
||||
// LabelInitContainerCommand defines commands
|
||||
LabelInitContainerCommand = "kompose.init.containers.command"
|
||||
// LabelInitContainerService defines service(s) to use as init containers (comma-separated)
|
||||
LabelInitContainerService = "kompose.init.containers.service"
|
||||
// LabelVolumeType defines the type of volume (e.g., "secret" for Kubernetes Secret volumes)
|
||||
LabelVolumeType = "kompose.volume.type"
|
||||
// LabelVolumeSecretName defines the name of the Kubernetes Secret to use
|
||||
LabelVolumeSecretName = "kompose.volume.secret-name"
|
||||
// LabelHpaMinReplicas defines min pod replicas
|
||||
LabelHpaMinReplicas = "kompose.hpa.replicas.min"
|
||||
// LabelHpaMaxReplicas defines max pod replicas
|
||||
|
||||
Reference in New Issue
Block a user