aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/compute-post.yaml72
-rw-r--r--docker/firstboot/install_docker_agents.yaml7
-rw-r--r--docker/firstboot/start_docker_agents.sh42
3 files changed, 56 insertions, 65 deletions
diff --git a/docker/compute-post.yaml b/docker/compute-post.yaml
index 8f786f72..3c4a9413 100644
--- a/docker/compute-post.yaml
+++ b/docker/compute-post.yaml
@@ -17,8 +17,6 @@ parameters:
type: string
DockerLibvirtImage:
type: string
- DockerNeutronAgentImage:
- type: string
DockerOpenvswitchImage:
type: string
DockerOvsVswitchdImage:
@@ -30,20 +28,15 @@ parameters:
default: "/etc/libvirt/libvirtd.conf"
NovaConfig:
type: string
- default: "/etc/nova/nova.conf"
+ default: "/etc/nova/nova.conf,/etc/nova/rootwrap.conf"
NeutronOpenvswitchAgentConfig:
type: string
- default: "/etc/neutron/neutron.conf,/etc/neutron/plugins/ml2/ml2_conf.ini"
- NeutronAgentConfig:
- type: string
default: "/etc/neutron/neutron.conf,/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini"
- NeutronAgentPluginVolume:
+ NeutronOpenvswitchAgentPluginVolume:
type: string
- description: The neutron agent plugin to mount into the neutron-agents container
default: "/var/lib/etc-data/neutron/plugins/ml2/openvswitch_agent.ini:/var/lib/kolla/config_files/ovs_neutron_plugin.ini:ro"
- NeutronAgentOvsVolume:
+ NeutronOpenvswitchAgentOvsVolume:
type: string
- description: The neutron agent ovs agents to mount into the neutron-agents container
default: " "
resources:
@@ -68,6 +61,7 @@ resources:
ComputePuppetDeployment:
type: OS::Heat::SoftwareDeployments
properties:
+ name: ComputePuppetDeployment
servers: {get_param: servers}
config: {get_resource: ComputePuppetConfig}
input_values:
@@ -86,6 +80,7 @@ resources:
type: OS::Heat::SoftwareDeployments
depends_on: ComputePuppetDeployment
properties:
+ name: CopyEtcDeployment
config: {get_resource: CopyEtcConfig}
servers: {get_param: servers}
@@ -97,7 +92,6 @@ resources:
- name: libvirt_config
- name: nova_config
- name: neutron_openvswitch_agent_config
- - name: neutron_agent_config
config: |
#!/bin/python
import json
@@ -110,13 +104,11 @@ resources:
libvirt_config = os.getenv('libvirt_config').split(',')
nova_config = os.getenv('nova_config').split(',')
neutron_openvswitch_agent_config = os.getenv('neutron_openvswitch_agent_config').split(',')
- neutron_agent_config = os.getenv('neutron_agent_config').split(',')
# Command, Config_files, Owner, Perms
services = {'nova-libvirt': ['/usr/sbin/libvirtd', libvirt_config, 'root', libvirt_perms],
'nova-compute': ['/usr/bin/nova-compute', nova_config, 'nova', file_perms],
'neutron-openvswitch-agent': ['/usr/bin/neutron-openvswitch-agent', neutron_openvswitch_agent_config, 'neutron', file_perms],
- 'neutron-agent': ['/usr/bin/neutron-openvswitch-agent', neutron_agent_config, 'neutron', file_perms],
'ovs-vswitchd': ['/usr/sbin/ovs-vswitchd unix:/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --log-file=/var/log/openvswitch/ovs-vswitchd.log'],
'ovsdb-server': ['/usr/sbin/ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/run/openvswitch/db.sock --log-file=/var/log/openvswitch/ovsdb-server.log']
}
@@ -162,32 +154,32 @@ resources:
type: OS::Heat::SoftwareDeployments
depends_on: CopyEtcDeployment
properties:
+ name: CopyJsonDeployment
config: {get_resource: CopyJsonConfig}
servers: {get_param: servers}
input_values:
libvirt_config: {get_param: LibvirtConfig}
nova_config: {get_param: NovaConfig}
neutron_openvswitch_agent_config: {get_param: NeutronOpenvswitchAgentConfig}
- neutron_agent_config: {get_param: NeutronAgentConfig}
NovaComputeContainersDeploymentOVS:
type: OS::Heat::StructuredDeployments
depends_on: CopyJsonDeployment
properties:
+ name: NovaComputeContainersDeploymentOVS
config: {get_resource: NovaComputeContainersConfigOVS}
servers: {get_param: servers}
NovaComputeContainersConfigOVS:
type: OS::Heat::StructuredConfig
properties:
- group: docker-compose
+ group: docker-cmd
config:
ovsvswitchd:
image:
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerOvsVswitchdImage} ]
- container_name: ovs-vswitchd
net: host
privileged: true
restart: always
@@ -203,12 +195,12 @@ resources:
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerOpenvswitchDBImage} ]
- container_name: ovsdb-server
net: host
restart: always
volumes:
- /run:/run
- /var/lib/etc-data/json-config/ovsdb-server.json:/var/lib/kolla/config_files/config.json
+ - /etc/openvswitchd:/etc/openvswitchd
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
@@ -216,6 +208,7 @@ resources:
type: OS::Heat::SoftwareDeployments
depends_on: NovaComputeContainersDeploymentOVS
properties:
+ name: NovaComputeContainersDeploymentNetconfig
config: {get_resource: NovaComputeContainersConfigNetconfig}
servers: {get_param: servers}
@@ -236,13 +229,14 @@ resources:
type: OS::Heat::StructuredDeployments
depends_on: [CopyJsonDeployment, CopyEtcDeployment, ComputePuppetDeployment, NovaComputeContainersDeploymentNetconfig]
properties:
+ name: LibvirtContainersDeployment
config: {get_resource: LibvirtContainersConfig}
servers: {get_param: servers}
LibvirtContainersConfig:
type: OS::Heat::StructuredConfig
properties:
- group: docker-compose
+ group: docker-cmd
config:
computedata:
image:
@@ -259,7 +253,6 @@ resources:
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerLibvirtImage} ]
- container_name: libvirt
net: host
pid: host
privileged: true
@@ -267,6 +260,8 @@ resources:
volumes:
- /run:/run
- /lib/modules:/lib/modules:ro
+ - /dev:/dev
+ - /lib/udev:/lib/udev
- /sys/fs/cgroup:/sys/fs/cgroup
- /var/lib/etc-data/json-config/nova-libvirt.json:/var/lib/kolla/config_files/config.json
- /var/lib/etc-data/libvirt/libvirtd.conf:/var/lib/kolla/config_files/libvirtd.conf
@@ -279,41 +274,20 @@ resources:
type: OS::Heat::StructuredDeployments
depends_on: [CopyJsonDeployment, CopyEtcDeployment, ComputePuppetDeployment, NovaComputeContainersDeploymentNetconfig, LibvirtContainersDeployment]
properties:
+ name: NovaComputeContainersDeployment
config: {get_resource: NovaComputeContainersConfig}
servers: {get_param: servers}
NovaComputeContainersConfig:
type: OS::Heat::StructuredConfig
properties:
- group: docker-compose
+ group: docker-cmd
config:
- openvswitch:
- image:
- list_join:
- - '/'
- - [ {get_param: DockerNamespace}, {get_param: DockerOpenvswitchImage} ]
- container_name: openvswitch
- net: host
- privileged: true
- restart: always
- volumes:
- - /run:/run
- - /lib/modules:/lib/modules:ro
- - /var/lib/etc-data/json-config/neutron-openvswitch-agent.json:/var/lib/kolla/config_files/config.json
- - /var/lib/etc-data/neutron/neutron.conf:/etc/kolla/neutron-openvswitch-agent/:ro
- - /var/lib/etc-data/neutron/plugins/ml2/ml2_conf.ini:/var/lib/kolla/config_files/ml2_conf.ini:ro
- - /var/lib/etc-data/neutron/neutron.conf:/var/lib/kolla/config_files/neutron.conf:ro
- environment:
- - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
- volumes_from:
- - computedata
-
- neutronagent:
+ neutronovsagent:
image:
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerOpenvswitchImage} ]
- container_name: neutronagent
net: host
pid: host
privileged: true
@@ -324,10 +298,11 @@ resources:
- list_join:
- ","
- [ "/run:/run", "/lib/modules:/lib/modules:ro",
- "/var/lib/etc-data/json-config/neutron-agent.json:/var/lib/kolla/config_files/config.json",
+ "/var/lib/etc-data/json-config/neutron-openvswitch-agent.json:/var/lib/kolla/config_files/config.json",
"/var/lib/etc-data/neutron/neutron.conf:/var/lib/kolla/config_files/neutron.conf:ro",
- {get_param: NeutronAgentPluginVolume},
- {get_param: NeutronAgentOvsVolume} ]
+ "/var/lib/etc-data/neutron/plugins/ml2/ml2_conf.ini:/var/lib/kolla/config_files/ml2_conf.ini:ro",
+ {get_param: NeutronOpenvswitchAgentPluginVolume},
+ {get_param: NeutronOpenvswitchAgentOvsVolume} ]
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
volumes_from:
@@ -338,15 +313,18 @@ resources:
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerComputeImage} ]
- container_name: novacompute
net: host
privileged: true
restart: always
volumes:
- /run:/run
- /lib/modules:/lib/modules:ro
+ - /dev:/dev
+ - /lib/udev:/lib/udev
+ - /etc/iscsi:/etc/iscsi
- /var/lib/etc-data/json-config/nova-compute.json:/var/lib/kolla/config_files/config.json
- /var/lib/etc-data/nova/nova.conf:/var/lib/kolla/config_files/nova.conf:ro
+ - /var/lib/etc-data/nova/rootwrap.conf:/var/lib/kolla/config_files/rootwrap.conf:ro
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
volumes_from:
diff --git a/docker/firstboot/install_docker_agents.yaml b/docker/firstboot/install_docker_agents.yaml
index 348c1755..2858552f 100644
--- a/docker/firstboot/install_docker_agents.yaml
+++ b/docker/firstboot/install_docker_agents.yaml
@@ -3,7 +3,7 @@ heat_template_version: 2014-10-16
parameters:
DockerAgentImage:
type: string
- default: tripleoupstream/heat-docker-agents
+ default: heat-docker-agents
DockerNamespace:
type: string
default: kollaglue
@@ -26,7 +26,10 @@ resources:
config:
str_replace:
params:
- $agent_image: {get_param: DockerAgentImage}
+ $agent_image:
+ list_join:
+ - '/'
+ - [ {get_param: DockerNamespace}, {get_param: DockerAgentImage} ]
$docker_registry: {get_param: DockerNamespace}
$docker_namespace_is_registry: {get_param: DockerNamespaceIsRegistry}
template: {get_file: ./start_docker_agents.sh}
diff --git a/docker/firstboot/start_docker_agents.sh b/docker/firstboot/start_docker_agents.sh
index a0e95d11..cb8b2a5d 100644
--- a/docker/firstboot/start_docker_agents.sh
+++ b/docker/firstboot/start_docker_agents.sh
@@ -23,7 +23,7 @@ Restart=on-failure
ExecStartPre=-/usr/bin/docker kill heat-agents
ExecStartPre=-/usr/bin/docker rm heat-agents
ExecStartPre=/usr/bin/docker pull $agent_image
-ExecStart=/usr/bin/docker run --name heat-agents --privileged --net=host -v /var/lib/etc-data:/var/lib/etc-data -v /run:/run -v /etc:/host/etc -v /usr/bin/atomic:/usr/bin/atomic -v /var/lib/dhclient:/var/lib/dhclient -v /var/lib/cloud:/var/lib/cloud -v /var/lib/heat-cfntools:/var/lib/heat-cfntools --entrypoint=/usr/bin/os-collect-config $agent_image
+ExecStart=/usr/bin/docker run --name heat-agents --privileged --net=host -v /var/lib/etc-data:/var/lib/etc-data -v /run:/run -v /etc:/host/etc -v /usr/bin/atomic:/usr/bin/atomic -v /var/lib/dhclient:/var/lib/dhclient -v /var/lib/cloud:/var/lib/cloud -v /var/lib/heat-cfntools:/var/lib/heat-cfntools -v /usr/bin/docker:/usr/bin/docker --entrypoint=/usr/bin/os-collect-config $agent_image
ExecStop=/usr/bin/docker stop heat-agents
[Install]
@@ -39,31 +39,22 @@ EOF
# Local docker registry 1.8
if [ $docker_namespace_is_registry ]; then
- /bin/sed -i "s/# INSECURE_REGISTRY='--insecure-registry '/INSECURE_REGISTRY='--insecure-registry $docker_registry'/g" /etc/sysconfig/docker
+ # if namespace is used with local registry, trim all namespacing
+ trim_var=$docker_registry
+ registry_host="${trim_var%%/*}"
+ /bin/sed -i "s/# INSECURE_REGISTRY='--insecure-registry'/INSECURE_REGISTRY='--insecure-registry $registry_host'/g" /etc/sysconfig/docker
fi
/sbin/setenforce 0
/sbin/modprobe ebtables
-echo nameserver 8.8.8.8 > /etc/resolv.conf
+# CentOS sets ptmx to 000. Withoutit being 666, we can't use Cinder volumes
+chmod 666 /dev/pts/ptmx
# We need hostname -f to return in a centos container for the puppet hook
HOSTNAME=$(hostname)
echo "127.0.0.1 $HOSTNAME.localdomain $HOSTNAME" >> /etc/hosts
-# Another hack.. we need a different docker version
-# (should obviously be dropped once the atomic image contains docker 1.8.2)
-/usr/bin/systemctl stop docker.service
-/bin/curl -o /tmp/docker https://get.docker.com/builds/Linux/x86_64/docker-1.8.2
-/bin/mount -o remount,rw /usr
-/bin/rm /bin/docker
-/bin/cp /tmp/docker /bin/docker
-/bin/chmod 755 /bin/docker
-
-# enable and start docker
-/usr/bin/systemctl enable docker.service
-/usr/bin/systemctl restart --no-block docker.service
-
# enable and start heat-docker-agents
chmod 0640 /etc/systemd/system/heat-docker-agents.service
/usr/bin/systemctl enable heat-docker-agents.service
@@ -72,3 +63,22 @@ chmod 0640 /etc/systemd/system/heat-docker-agents.service
# Disable NetworkManager and let the ifup/down scripts work properly.
/usr/bin/systemctl disable NetworkManager
/usr/bin/systemctl stop NetworkManager
+
+# Atomic's root partition & logical volume defaults to 3G. In order to launch
+# larger VMs, we need to enlarge the root logical volume and scale down the
+# docker_pool logical volume. We are allocating 80% of the disk space for
+# vm data and the remaining 20% for docker images.
+ATOMIC_ROOT='/dev/mapper/atomicos-root'
+ROOT_DEVICE=`pvs -o vg_name,pv_name --no-headings | grep atomicos | awk '{ print $2}'`
+
+growpart $( echo "${ROOT_DEVICE}" | sed -r 's/([^0-9]*)([0-9]+)/\1 \2/' )
+pvresize "${ROOT_DEVICE}"
+lvresize -l +80%FREE "${ATOMIC_ROOT}"
+xfs_growfs "${ATOMIC_ROOT}"
+
+cat <<EOF > /etc/sysconfig/docker-storage-setup
+GROWPART=true
+AUTO_EXTEND_POOL=yes
+POOL_AUTOEXTEND_PERCENT=30
+POOL_AUTOEXTEND_THRESHOLD=70
+EOF