diff --git a/pkg/kobject/kobject.go b/pkg/kobject/kobject.go index a5b4ba9e..d98b7751 100644 --- a/pkg/kobject/kobject.go +++ b/pkg/kobject/kobject.go @@ -110,6 +110,7 @@ type ServiceConfig struct { WorkingDir string `compose:""` DomainName string `compose:"domainname"` HostName string `compose:"hostname"` + ReadOnly bool `compose:"read_only"` Args []string `compose:"args"` VolList []string `compose:"volumes"` Network []string `compose:"network"` diff --git a/pkg/loader/compose/compose.go b/pkg/loader/compose/compose.go index db3bfab8..a09b74ca 100644 --- a/pkg/loader/compose/compose.go +++ b/pkg/loader/compose/compose.go @@ -462,6 +462,7 @@ func dockerComposeToKomposeMapping(composeObject *types.Project) (kobject.Kompos serviceConfig.Expose = composeServiceConfig.Expose serviceConfig.Privileged = composeServiceConfig.Privileged serviceConfig.User = composeServiceConfig.User + serviceConfig.ReadOnly = composeServiceConfig.ReadOnly serviceConfig.Stdin = composeServiceConfig.StdinOpen serviceConfig.Tty = composeServiceConfig.Tty serviceConfig.TmpFs = composeServiceConfig.Tmpfs diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 90d12fed..5e5e0be2 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -573,6 +573,11 @@ func (k *Kubernetes) UpdateKubernetesObjects(name string, service kobject.Servic securityContext.Capabilities = capabilities } + //set readOnlyRootFilesystem if it is enabled + if service.ReadOnly { + securityContext.ReadOnlyRootFilesystem = &service.ReadOnly + } + // update template only if securityContext is not empty if *securityContext != (api.SecurityContext{}) { template.Spec.Containers[0].SecurityContext = securityContext