containerd #178

Supports: focal bionic xenial

Description

containerd manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond.


Charm for Containerd

This subordinate charm deploys the Containerd engine within a running Juju model. Containerd is an open platform for developers and sysadmins to build, ship, and run distributed applications in containers.

Containerd focuses on distributing applications as containers that can be quickly assembled from components that are run the same on different servers without environmental dependencies. This eliminates the friction between development, QA, and production environments.

This charm is a component of Charmed Kubernetes. For full information, please visit the official Charmed Kubernetes docs.


Configuration

config_version
(string) (Use carefully, v2 is only tested for nvidia gpu operator) Use value "v2" for this config parameter to enable new configuration format. Config file is parsed as version 1 by default. Version 2 uses long plugin names, i.e. "io.containerd.grpc.v1.cri" vs "cri".
v1
custom-registry-ca
(string) Base64 encoded Certificate Authority (CA) bundle. Setting this config allows container runtimes to pull images from registries with TLS certificates signed by an external CA.
custom_registries
(string) Registry endpoints and credentials. Setting this config allows Kubelet to pull images from registries where auth is required. The value for this config must be a JSON array of credential objects, like this: [{"host": "my.registry:port", "username": "user", "password": "pass"}] `host` could be registry host address, e.g.: myregistry.io:9000, 10.10.10.10:5432. or a name, e.g.: myregistry.io, myregistry. It will be derived from `url` if not provided, e.g.: url: http://10.10.10.10:8000 --> host: 10.10.10.10:8000 If required, you can supply credentials with option keys 'username' and 'password', or 'ca_file', 'cert_file', and 'key_file' for ssl/tls communication, which should be base64 encoded file contents in string form "ca_file": "'"$(base64 -w 0 < my.custom.registry.pem)"'" example config) juju config containerd custom_registries='[{ "url": "https://registry.example.com", "ca_file": "'"$(base64 -w 0 < ~/my.custom.ca.pem)"'", "cert_file": "'"$(base64 -w 0 < ~/my.custom.cert.pem)"'", "key_file": "'"$(base64 -w 0 < ~/my.custom.key.pem)"'", }]'
[]
disable-juju-proxy
(boolean) Ignore juju-http(s) proxy settings on this charm. If set to true, all juju https proxy settings will be ignored
enable-cgroups
(boolean) Enable GRUB cgroup overrides cgroup_enable=memory swapaccount=1. WARNING changing this option will reboot the host - use with caution on production services.
gpu_driver
(string) Override GPU driver installation. Options are "auto", "nvidia", "none".
auto
http_proxy
(string) URL to use for HTTP_PROXY to be used by Containerd. Useful in egress-filtered environments where a proxy is the only option for accessing the registry to pull images.
https_proxy
(string) URL to use for HTTPS_PROXY to be used by Containerd. Useful in egress-filtered environments where a proxy is the only option for accessing the registry to pull images.
no_proxy
(string) Comma-separated list of destinations (either domain names or IP addresses) which should be accessed directly, rather than through the proxy defined in http_proxy or https_proxy. Must be less than 2023 characters long.
nvidia_apt_key_urls
(string) Space-separated list of APT GPG key URLs to add when using Nvidia GPUs. Supported template options: {id}: OS release ID, e.g. "ubuntu" {version_id}: OS release version ID, e.g. "20.04" {version_id_no_dot}: OS release version ID with no dot, e.g. "2004"
https://nvidia.github.io/nvidia-container-runtime/gpgkey https://developer.download.nvidia.com/compute/cuda/repos/{id}{version_id_no_dot}/x86_64/7fa2af80.pub
nvidia_apt_packages
(string) Space-separated list of APT packages to install when using Nvidia GPUs.
cuda-drivers nvidia-container-runtime
nvidia_apt_sources
(string) Newline-separated list of APT sources to add when using Nvidia GPUs. Supported template options: {id}: OS release ID, e.g. "ubuntu" {version_id}: OS release version ID, e.g. "20.04" {version_id_no_dot}: OS release version ID with no dot, e.g. "2004"
deb https://nvidia.github.io/libnvidia-container/{id}{version_id}/$(ARCH) / deb https://nvidia.github.io/nvidia-container-runtime/{id}{version_id}/$(ARCH) / deb http://developer.download.nvidia.com/compute/cuda/repos/{id}{version_id_no_dot}/x86_64 /
runtime
(string) Set a custom containerd runtime. Set "auto" to select based on hardware.
auto
shim
(string) Set a custom containerd shim.
containerd-shim