2016-11-30 15:42:09 -08:00
# <a name="solarisApplicationContainerConfiguration" />Solaris Application Container Configuration
2016-04-25 20:03:09 -07:00
2017-05-09 14:50:16 -07:00
Solaris application containers can be configured using the following properties, all of the below properties have mappings to properties specified under [zonecfg(1M)][zonecfg.1m_2] man page, except milestone.
2016-04-25 20:03:09 -07:00
2016-11-30 15:42:09 -08:00
## <a name="configSolarisMilestone" />milestone
2016-04-25 20:03:09 -07:00
The SMF(Service Management Facility) FMRI which should go to "online" state before we start the desired process within the container.
2016-09-17 21:59:07 -07:00
**`milestone` ** * (string, OPTIONAL) *
2016-04-25 20:03:09 -07:00
### Example
```json
"milestone": "svc:/milestone/container:default"
```
2016-11-30 15:42:09 -08:00
## <a name="configSolarisLimitpriv" />limitpriv
2016-04-25 20:03:09 -07:00
The maximum set of privileges any process in this container can obtain.
2017-02-09 15:32:39 -05:00
The property should consist of a comma-separated privilege set specification as described in [priv_str_to_set(3C)][priv-str-to-set.3c] man page for the respective release of Solaris.
2016-04-25 20:03:09 -07:00
2016-09-17 21:59:07 -07:00
**`limitpriv` ** * (string, OPTIONAL) *
2016-04-25 20:03:09 -07:00
### Example
```json
"limitpriv": "default"
```
2016-11-30 15:42:09 -08:00
## <a name="configSolarisMaxShmMemory" />maxShmMemory
2016-04-25 20:03:09 -07:00
The maximum amount of shared memory allowed for this application container.
A scale (K, M, G, T) can be applied to the value for each of these numbers (for example, 1M is one megabyte).
2017-05-09 14:50:16 -07:00
Mapped to `max-shm-memory` in [zonecfg(1M)][zonecfg.1m_2] man page.
2016-04-25 20:03:09 -07:00
2016-09-17 21:59:07 -07:00
**`maxShmMemory` ** * (string, OPTIONAL) *
2016-04-25 20:03:09 -07:00
### Example
```json
"maxShmMemory": "512m"
```
2016-11-30 15:42:09 -08:00
## <a name="configSolarisCappedCpu" />cappedCPU
2016-04-25 20:03:09 -07:00
Sets a limit on the amount of CPU time that can be used by a container.
The unit used translates to the percentage of a single CPU that can be used by all user threads in a container, expressed as a fraction (for example, .75) or a mixed number (whole number and fraction, for example, 1.25).
An ncpu value of 1 means 100% of a CPU, a value of 1.25 means 125%, .75 mean 75%, and so forth.
When projects within a capped container have their own caps, the minimum value takes precedence.
2017-05-09 14:50:16 -07:00
cappedCPU is mapped to `capped-cpu` in [zonecfg(1M)][zonecfg.1m_2] man page.
2016-04-25 20:03:09 -07:00
2016-09-17 21:59:07 -07:00
* **`ncpus` ** * (string, OPTIONAL) *
2016-04-25 20:03:09 -07:00
### Example
```json
"cappedCPU": {
2017-12-01 11:53:02 +08:00
"ncpus": "8"
2016-04-25 20:03:09 -07:00
}
```
2016-11-30 15:42:09 -08:00
## <a name="configSolarisCappedMemory" />cappedMemory
2016-04-25 20:03:09 -07:00
The physical and swap caps on the memory that can be used by this application container.
A scale (K, M, G, T) can be applied to the value for each of these numbers (for example, 1M is one megabyte).
2017-05-09 14:50:16 -07:00
cappedMemory is mapped to `capped-memory` in [zonecfg(1M)][zonecfg.1m_2] man page.
2016-04-25 20:03:09 -07:00
2016-09-17 21:59:07 -07:00
* **`physical` ** * (string, OPTIONAL) *
* **`swap` ** * (string, OPTIONAL) *
2016-04-25 20:03:09 -07:00
### Example
```json
"cappedMemory": {
2017-12-01 11:53:02 +08:00
"physical": "512m",
"swap": "512m"
2016-04-25 20:03:09 -07:00
}
```
2016-11-30 15:42:09 -08:00
## <a name="configSolarisNetwork" />Network
2016-04-25 20:03:09 -07:00
2016-11-30 15:42:09 -08:00
### <a name="configSolarisAutomaticNetwork" />Automatic Network (anet)
2017-05-14 14:24:19 +08:00
anet is specified as an array that is used to set up networking for Solaris application containers.
2016-04-25 20:03:09 -07:00
The anet resource represents the automatic creation of a network resource for an application container.
The zones administration daemon, zoneadmd, is the primary process for managing the container's virtual platform.
2017-02-09 15:32:39 -05:00
One of the daemon's responsibilities is creation and teardown of the networks for the container.
For more information on the daemon see the [zoneadmd(1M)][zoneadmd.1m] man page.
2016-04-25 20:03:09 -07:00
When such a container is started, a temporary VNIC(Virtual NIC) is automatically created for the container.
The VNIC is deleted when the container is torn down.
2017-05-14 14:24:19 +08:00
The following properties can be used to set up automatic networks.
2017-05-09 14:50:16 -07:00
For additional information on properties, check the [zonecfg(1M)][zonecfg.1m_2] man page for the respective release of Solaris.
2016-04-25 20:03:09 -07:00
2016-09-17 21:59:07 -07:00
* **`linkname` ** * (string, OPTIONAL) * Specify a name for the automatically created VNIC datalink.
* **`lowerLink` ** * (string, OPTIONAL) * Specify the link over which the VNIC will be created.
2017-05-09 14:50:16 -07:00
Mapped to `lower-link` in the [zonecfg(1M)][zonecfg.1m_2] man page.
2017-05-23 15:32:52 +08:00
* **`allowedAddress` ** * (string, OPTIONAL) * The set of IP addresses that the container can use might be constrained by specifying the `allowedAddress` property.
If `allowedAddress` has not been specified, then they can use any IP address on the associated physical interface for the network resource.
Otherwise, when `allowedAddress` is specified, the container cannot use IP addresses that are not in the `allowedAddress` list for the physical address.
Mapped to `allowed-address` in the [zonecfg(1M)][zonecfg.1m_2] man page.
* **`configureAllowedAddress` ** * (string, OPTIONAL) * If `configureAllowedAddress` is set to true, the addresses specified by `allowedAddress` are automatically configured on the interface each time the container starts.
When it is set to false, the `allowedAddress` will not be configured on container start.
Mapped to `configure-allowed-address` in the [zonecfg(1M)][zonecfg.1m_2] man page.
2016-09-17 21:59:07 -07:00
* **`defrouter` ** * (string, OPTIONAL) * The value for the OPTIONAL default router.
2017-03-03 12:22:30 -08:00
* **`macAddress` ** * (string, OPTIONAL) * Set the VNIC's MAC addresses based on the specified value or keyword.
2017-05-23 15:32:52 +08:00
If not a keyword, it is interpreted as a unicast MAC address.
For a list of the supported keywords please refer to the [zonecfg(1M)][zonecfg.1m_2] man page of the respective Solaris release.
Mapped to `mac-address` in the [zonecfg(1M)][zonecfg.1m_2] man page.
2016-09-17 21:59:07 -07:00
* **`linkProtection` ** * (string, OPTIONAL) * Enables one or more types of link protection using comma-separated values.
2017-05-23 15:32:52 +08:00
See the protection property in dladm(8) for supported values in respective release of Solaris.
Mapped to `link-protection` in the [zonecfg(1M)][zonecfg.1m_2] man page.
2016-04-25 20:03:09 -07:00
#### Example
```json
"anet": [
{
"allowedAddress": "172.17.0.2/16",
"configureAllowedAddress": "true",
"defrouter": "172.17.0.1/16",
"linkProtection": "mac-nospoof, ip-nospoof",
"linkname": "net0",
"lowerLink": "net2",
"macAddress": "02:42:f8:52:c7:16"
}
]
```
2017-02-09 15:32:39 -05:00
2024-11-04 12:25:33 +01:00
[priv-str-to-set.3c]: https://docs.oracle.com/cd/E86824_01/html/E54766/priv-str-to-set-3c.html
[zoneadmd.1m]: https://docs.oracle.com/cd/E86824_01/html/E54764/zoneadmd-1m.html
[zonecfg.1m_2]: https://docs.oracle.com/cd/E86824_01/html/E54764/zonecfg-1m.html