canal #496

Description

Canal is a community-driven initiative that aims to allow users to easily
deploy Calico and flannel networking together as a unified networking
solution - combining Calico's industry-leading network policy enforcement
with the rich superset of Calico and flannel overlay and non-overlay network
connectivity options.


Canal Charm

Canal is a community-driven initiative that aims to allow users to easily
deploy Calico and flannel networking together as a unified networking
solution - combining Calico’s industry-leading network policy enforcement with
the rich superset of Calico and flannel overlay and non-overlay network
connectivity options.

This charm will deploy flannel and calico as background services, and configure
CNI to use them, on any principal charm that implements the kubernetes-cni
interface.

Usage

The canal charm is a subordinate. This charm will require a principal charm
that implements the kubernetes-cni interface in order to properly deploy.

juju deploy cs:~containers/canal
juju deploy cs:~containers/etcd
juju deploy cs:~containers/kubernetes-master
juju deploy cs:~containers/kubernetes-worker
juju add-relation canal etcd
juju add-relation canal kubernetes-master
juju add-relation canal kubernetes-worker

Configuration

iface The interface to configure the flannel SDN binding. If this value is
empty string or undefined the code will attempt to find the default network
adapter similar to the following command:

route | grep default | head -n 1 | awk {'print $8'}

cidr The network range to configure the flannel SDN to declare when
establishing networking setup with etcd. Ensure this network range is not active
on the vlan you're deploying to, as it will cause collisions and odd behavior
if care is not taken when selecting a good CIDR range to assign to flannel.

nagios_context A string that will be prepended to instance name to set the
host name in nagios.If you're running multiple environments with the same
services in them this allows you to differentiate between them. Used by the
nrpe subordinate charm.

nagios_servicegroups The comma-separated list of servicegroups that the
generated Nagios checks will belong to.

Known Limitations

This subordinate does not support being co-located with other deployments of
the canal subordinate (to gain 2 vlans on a single application). If you
require this support please file a bug.

This subordinate also leverages juju-resources, so it is currently only
available on juju 2.0+ controllers.

Further information

Configuration

nagios_context
(string) Used by the nrpe subordinate charms. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
juju
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
nagios_servicegroups
(string) A comma-separated list of nagios servicegroups. If left empty, the nagios_context will be used as the servicegroup
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.
cuda_repo
(string) The cuda-repo package version to install.
10.0.130-1
http_proxy
(string) URL to use for HTTP_PROXY to be used by Docker. Useful in egress-filtered environments where a proxy is the only option for accessing the registry to pull images.
nvidia-docker-package
(string) The pinned version of nvidia-docker2 package.
nvidia-docker2
https_proxy
(string) URL to use for HTTPS_PROXY to be used by Docker. Useful in egress-filtered environments where a proxy is the only option for accessing the registry to pull images.
docker_runtime
(string) docker runtime to install valid values are "upstream" (docker PPA), "nvidia" (nvidia PPA), "apt" (ubuntu archive), or "auto" (nvidia PPA or ubuntu archive, based on your hardware)
auto
calico-node-image
(string) The image id to use for calico/node.
quay.io/calico/node:v2.6.10
nvidia-container-runtime-package
(string) The pinned version of nvidia-container-runtime package.
nvidia-container-runtime
install_from_upstream
(boolean) Toggle installation from ubuntu archive vs the docker PPA (DEPRECATED; please use docker_runtime instead)
docker-opts
(string) Extra options to pass to the docker daemon. e.g. --insecure-registry
calico-policy-image
(string) The image id to use for calico/kube-controllers.
quay.io/calico/kube-controllers:v1.0.4
cidr
(string) Network CIDR to assign to Flannel
10.1.0.0/16
docker-ce-package
(string) The pinned version of docker-ce package installed with nvidia-docker.
docker-ce
iface
(string) The interface to bind flannel overlay networking. The default value is the interface bound to the cni endpoint.
apt-key-server
(string) APT Key Server
hkp://keyserver.ubuntu.com:80