diff --git a/magnum/templates/kubernetes/fragments/configure-docker-storage.sh b/magnum/templates/kubernetes/fragments/configure-docker-storage.sh index af7d0b42d6..8aa47cf44e 100644 --- a/magnum/templates/kubernetes/fragments/configure-docker-storage.sh +++ b/magnum/templates/kubernetes/fragments/configure-docker-storage.sh @@ -26,3 +26,5 @@ vgcreate docker ${device_path} cat > /etc/sysconfig/docker-storage-setup << EOF VG=docker EOF + +sed -i '/^DOCKER_STORAGE_OPTIONS=/ s/=.*/=--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=\/dev\/mapper\/docker-docker--pool --storage-opt dm.use_deferred_removal=true/' /etc/sysconfig/docker-storage diff --git a/magnum/templates/kubernetes/fragments/configure-kubernetes-minion.sh b/magnum/templates/kubernetes/fragments/configure-kubernetes-minion.sh index 3901f0bc4f..015f5d398b 100644 --- a/magnum/templates/kubernetes/fragments/configure-kubernetes-minion.sh +++ b/magnum/templates/kubernetes/fragments/configure-kubernetes-minion.sh @@ -42,6 +42,4 @@ cat >> /etc/environment < + size of a cinder volume to allocate to docker for container/image + storage + default: 25 + flannel_network_cidr: type: string description: network range for flannel overlay network @@ -178,6 +185,7 @@ resources: "$KUBE_API_PRIVATE_ADDRESS": {get_param: api_private_address} "$KUBE_API_PORT": {get_param: kubernetes_port} "$KUBE_ALLOW_PRIV": {get_param: kube_allow_priv} + "$DOCKER_VOLUME": {get_resource: docker_volume} "$NETWORK_DRIVER": {get_param: network_driver} "$FLANNEL_NETWORK_CIDR": {get_param: flannel_network_cidr} "$FLANNEL_NETWORK_SUBNETLEN": {get_param: flannel_network_subnetlen} @@ -204,6 +212,12 @@ resources: group: ungrouped config: {get_file: fragments/make-cert.sh} + configure_docker_storage: + type: OS::Heat::SoftwareConfig + properties: + group: ungrouped + config: {get_file: fragments/configure-docker-storage.sh} + configure_etcd: type: OS::Heat::SoftwareConfig properties: @@ -316,6 +330,7 @@ resources: - config: {get_resource: kube_user} - config: {get_resource: write_kube_os_config} - config: {get_resource: make_cert} + - config: {get_resource: configure_docker_storage} - config: {get_resource: configure_kubernetes} - config: {get_resource: add_proxy} - config: {get_resource: enable_services} @@ -376,6 +391,24 @@ resources: address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} protocol_port: 2379 + ###################################################################### + # + # docker storage. This allocates a cinder volume and attaches it + # to the minion. + # + + docker_volume: + type: OS::Cinder::Volume + properties: + size: {get_param: docker_volume_size} + + docker_volume_attach: + type: OS::Cinder::VolumeAttachment + properties: + instance_uuid: {get_resource: kube_master} + volume_id: {get_resource: docker_volume} + mountpoint: /dev/vdb + outputs: kube_master_ip: