mirror of https://github.com/containers/podman.git
				
				
				
			Merge pull request #23675 from ruihe774/fix-pod-cgroups
Add key CgroupsMode in Quadlet container unit
This commit is contained in:
		
						commit
						8be89caf46
					
				|  | @ -259,6 +259,7 @@ Valid options for `[Container]` are listed below: | ||||||
| | AddDevice=/dev/foo                   | --device /dev/foo                                    | | | AddDevice=/dev/foo                   | --device /dev/foo                                    | | ||||||
| | Annotation="XYZ"                     | --annotation "XYZ"                                   | | | Annotation="XYZ"                     | --annotation "XYZ"                                   | | ||||||
| | AutoUpdate=registry                  | --label "io.containers.autoupdate=registry"          | | | AutoUpdate=registry                  | --label "io.containers.autoupdate=registry"          | | ||||||
|  | | CgroupsMode=no-conmon                | --cgroups=no-conmon                                  | | ||||||
| | ContainerName=name                   | --name name                                          | | | ContainerName=name                   | --name name                                          | | ||||||
| | ContainersConfModule=/etc/nvd\.conf  | --module=/etc/nvd\.conf                              | | | ContainersConfModule=/etc/nvd\.conf  | --module=/etc/nvd\.conf                              | | ||||||
| | DNS=192.168.55.1                     | --dns=192.168.55.1                                   | | | DNS=192.168.55.1                     | --dns=192.168.55.1                                   | | ||||||
|  | @ -370,6 +371,16 @@ Indicates whether the container will be auto-updated ([podman-auto-update(1)](po | ||||||
| 
 | 
 | ||||||
| * `local`: Tells Podman to compare the image a container is using to the image with its raw name in local storage. If an image is updated locally, Podman simply restarts the systemd unit executing the container. | * `local`: Tells Podman to compare the image a container is using to the image with its raw name in local storage. If an image is updated locally, Podman simply restarts the systemd unit executing the container. | ||||||
| 
 | 
 | ||||||
|  | ### `CgroupsMode=` | ||||||
|  | 
 | ||||||
|  | The cgroups mode of the Podman container. Equivalent to the Podman `--cgroups` option. | ||||||
|  | 
 | ||||||
|  | By default, the cgroups mode of the container created by Quadlet is `split`, | ||||||
|  | which differs from the default (`enabled`) used by the Podman CLI. | ||||||
|  | 
 | ||||||
|  | If the container joins a pod (i.e. `Pod=` is specified), you may want to change this to | ||||||
|  | `no-conmon` or `enabled` so that pod level cgroup resource limits can take effect. | ||||||
|  | 
 | ||||||
| ### `ContainerName=` | ### `ContainerName=` | ||||||
| 
 | 
 | ||||||
| The (optional) name of the Podman container. If this is not specified, the default value | The (optional) name of the Podman container. If this is not specified, the default value | ||||||
|  |  | ||||||
|  | @ -62,6 +62,7 @@ const ( | ||||||
| 	KeyAuthFile              = "AuthFile" | 	KeyAuthFile              = "AuthFile" | ||||||
| 	KeyAutoUpdate            = "AutoUpdate" | 	KeyAutoUpdate            = "AutoUpdate" | ||||||
| 	KeyCertDir               = "CertDir" | 	KeyCertDir               = "CertDir" | ||||||
|  | 	KeyCgroupsMode           = "CgroupsMode" | ||||||
| 	KeyConfigMap             = "ConfigMap" | 	KeyConfigMap             = "ConfigMap" | ||||||
| 	KeyContainerName         = "ContainerName" | 	KeyContainerName         = "ContainerName" | ||||||
| 	KeyContainersConfModule  = "ContainersConfModule" | 	KeyContainersConfModule  = "ContainersConfModule" | ||||||
|  | @ -191,6 +192,7 @@ var ( | ||||||
| 		KeyAddDevice:             true, | 		KeyAddDevice:             true, | ||||||
| 		KeyAnnotation:            true, | 		KeyAnnotation:            true, | ||||||
| 		KeyAutoUpdate:            true, | 		KeyAutoUpdate:            true, | ||||||
|  | 		KeyCgroupsMode:           true, | ||||||
| 		KeyContainerName:         true, | 		KeyContainerName:         true, | ||||||
| 		KeyContainersConfModule:  true, | 		KeyContainersConfModule:  true, | ||||||
| 		KeyDNS:                   true, | 		KeyDNS:                   true, | ||||||
|  | @ -581,7 +583,12 @@ func ConvertContainer(container *parser.UnitFile, isUser bool, unitsInfoMap map[ | ||||||
| 
 | 
 | ||||||
| 	// We delegate groups to the runtime
 | 	// We delegate groups to the runtime
 | ||||||
| 	service.Add(ServiceGroup, "Delegate", "yes") | 	service.Add(ServiceGroup, "Delegate", "yes") | ||||||
| 	podman.add("--cgroups=split") | 
 | ||||||
|  | 	if cgroupsMode, ok := container.Lookup(ContainerGroup, KeyCgroupsMode); ok && len(cgroupsMode) > 0 { | ||||||
|  | 		podman.addf("--cgroups=%s", cgroupsMode) | ||||||
|  | 	} else { | ||||||
|  | 		podman.add("--cgroups=split") | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	timezone, ok := container.Lookup(ContainerGroup, KeyTimezone) | 	timezone, ok := container.Lookup(ContainerGroup, KeyTimezone) | ||||||
| 	if ok && len(timezone) > 0 { | 	if ok && len(timezone) > 0 { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | ## assert-podman-args --cgroups=no-conmon | ||||||
|  | 
 | ||||||
|  | [Container] | ||||||
|  | Image=localhost/imagename | ||||||
|  | CgroupsMode=no-conmon | ||||||
|  | @ -897,6 +897,7 @@ BOGUS=foo | ||||||
| 		Entry("template@instance.container", "template@instance.container"), | 		Entry("template@instance.container", "template@instance.container"), | ||||||
| 		Entry("Unit After Override", "unit-after-override.container"), | 		Entry("Unit After Override", "unit-after-override.container"), | ||||||
| 		Entry("NetworkAlias", "network-alias.container"), | 		Entry("NetworkAlias", "network-alias.container"), | ||||||
|  | 		Entry("CgroupMode", "cgroups-mode.container"), | ||||||
| 
 | 
 | ||||||
| 		Entry("basic.volume", "basic.volume"), | 		Entry("basic.volume", "basic.volume"), | ||||||
| 		Entry("device-copy.volume", "device-copy.volume"), | 		Entry("device-copy.volume", "device-copy.volume"), | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue