diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index b5a812317ff676cb26e7559d854dabe35ec563ac..9609d01c4d856566221703217dfd7d705bfe86bb 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -1108,7 +1108,7 @@ Network driver (network-driver) `Networking`_ section for more details. Volume driver (volume-driver) - Specified in the ClusterTemplate to select the volume driver. The supported + Specified in the ClusterTemplate to select the volume driver. The supported volume driver is 'cinder', allowing Cinder volumes to be mounted in containers for use as persistent storage. Data written to these volumes will persist after the container exits and can be accessed again from other @@ -1116,10 +1116,12 @@ Volume driver (volume-driver) will be deleted. Refer to the `Storage`_ section for more details. Storage driver (docker-storage-driver) - Specified in the ClusterTemplate to select the Docker storage driver. The + Specified in the ClusterTemplate to select the Docker storage driver. The default is 'devicemapper'. Refer to the `Storage`_ section for more details. + **NOTE:** For Fedora CoreOS driver, devicemapper is not supported. + Image (image) Specified in the ClusterTemplate to indicate the image to boot the servers. The image binary is loaded in Glance with the attribute @@ -2900,6 +2902,12 @@ of Docker storage drivers available. container isolation, although it still runs in enforcing mode on the cluster compute instances. +* 'overlay2' is the preferred storage driver, for all currently supported + Linux distributions, and requires no extra configuration. When possible, + overlay2 is the recommended storage driver. When installing Docker for + the first time, overlay2 is used by default. + + Persistent storage ------------------ diff --git a/magnum/drivers/common/templates/fragments/configure_docker_storage_driver_fedora_coreos.sh b/magnum/drivers/common/templates/fragments/configure_docker_storage_driver_fedora_coreos.sh new file mode 100644 index 0000000000000000000000000000000000000000..cca5497be8d211374971620c0b74303fe6d13a72 --- /dev/null +++ b/magnum/drivers/common/templates/fragments/configure_docker_storage_driver_fedora_coreos.sh @@ -0,0 +1,37 @@ +ssh_cmd="ssh -F /srv/magnum/.ssh/config root@localhost" + +runtime=${CONTAINER_RUNTIME} +if [ ${CONTAINER_RUNTIME} = "containerd" ] ; then + storage_dir="/var/lib/containerd" +else + storage_dir="/var/lib/docker" + runtime="docker" +fi + +clear_docker_storage () { + # stop docker + $ssh_cmd systemctl stop ${runtime} + # clear storage graph + $ssh_cmd rm -rf ${storage_dir} + $ssh_cmd mkdir -p ${storage_dir} +} + +# Configure generic docker storage driver. +configure_storage_driver_generic() { + clear_docker_storage + + if [ -n "$DOCKER_VOLUME_SIZE" ] && [ "$DOCKER_VOLUME_SIZE" -gt 0 ]; then + $ssh_cmd mkfs.xfs -f ${device_path} + echo "${device_path} ${storage_dir} xfs defaults 0 0" >> /etc/fstab + $ssh_cmd mount -a + $ssh_cmd restorecon -R ${storage_dir} + fi + if [ ${CONTAINER_RUNTIME} = "host-docker" ] ; then + sed -i -E 's/^OPTIONS=("|'"'"')/OPTIONS=\1--storage-driver='$1' /' /etc/sysconfig/docker + fi +} + +configure_devicemapper() { + configure_storage_driver_generic +} + diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml index 0aac1870fa7216847fe6683a5293cf07c836eb69..575d121d1996be50cdae1874fe4bc122c291fed5 100644 --- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml @@ -270,7 +270,9 @@ parameters: docker_storage_driver: type: string description: docker storage driver name - default: "devicemapper" + default: "overlay2" + constraints: + - allowed_pattern: "^(?!devicemapper$).*" cgroup_driver: type: string diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubeminion.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubeminion.yaml index 36a49594b6455e1ce989dcdc071fdc7c05dc6216..b15a0ca53e5d5c42dfcf4be7842fa129b3127afc 100644 --- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubeminion.yaml +++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubeminion.yaml @@ -502,7 +502,10 @@ resources: - get_file: ../../common/templates/fragments/configure-docker-registry.sh - get_file: ../../common/templates/kubernetes/fragments/configure-kubernetes-minion.sh - get_file: ../../common/templates/kubernetes/fragments/add-proxy.sh - # TODO add docker_storage_setup + - str_replace: + template: {get_file: ../../common/templates/fragments/configure-docker-storage.sh} + params: + $configure_docker_storage_driver: {get_file: ../../common/templates/fragments/configure_docker_storage_driver_fedora_coreos.sh} - get_file: ../../common/templates/kubernetes/fragments/enable-services-minion.sh - get_file: ../../common/templates/fragments/enable-docker-registry.sh