Skip to content

Commit fa0aa97

Browse files
authored
Merge pull request #14 from bobuhiro11/support_pull_images
rename docker-compose.yaml -> docker-compose.build.yaml
2 parents 717f085 + 37f7511 commit fa0aa97

3 files changed

Lines changed: 211 additions & 38 deletions

File tree

.github/workflows/action.yaml

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,44 @@ jobs:
2020
- uses: actions/checkout@v2
2121
- name: Init docker-compose
2222
run: |
23-
docker-compose up -d
23+
docker-compose --file docker-compose.build.yaml up -d
2424
sleep 1800
25-
- name: Exec OpenStack CLI
25+
- name: Build Images
2626
run: |
27-
docker-compose logs -t --tail=100
28-
docker-compose exec -T --user stack controller /bin/bash -c \
27+
docker-compose --file docker-compose.build.yaml logs -t --tail=100
28+
docker-compose --file docker-compose.build.yaml exec -T --user stack controller /bin/bash -c \
2929
'openstack compute service list'
3030
net_id=$(docker-compose exec -T --user stack controller /bin/bash -c \
3131
'openstack network show private -f json 2>/dev/null | jq -r .id' | tr -d "\r\n")
32-
docker-compose exec -T --user stack controller /bin/bash -c \
32+
docker-compose --file docker-compose.build.yaml exec -T --user stack controller /bin/bash -c \
3333
"nova boot --image cirros-0.5.2-x86_64-disk --flavor m1.medium --nic net-id=$net_id testvm"
3434
sleep 10
35-
docker-compose exec -T --user stack controller /bin/bash -c \
35+
docker-compose --file docker-compose.build.yaml exec -T --user stack controller /bin/bash -c \
3636
"nova list"
37-
docker-compose exec -T --user stack controller /bin/bash -c \
37+
docker-compose --file docker-compose.build.yaml exec -T --user stack controller /bin/bash -c \
3838
"nova list" | grep ACTIVE
39-
docker-compose exec -T controller /bin/bash -c "systemctl disable devstack"
40-
docker-compose exec -T compute-1 /bin/bash -c "systemctl disable devstack"
41-
docker-compose exec -T compute-2 /bin/bash -c "systemctl disable devstack"
42-
docker-compose stop
39+
for c in controller compute-1 compute-2; do
40+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "systemctl disable devstack"
41+
# Disable loading kmod for openvswitch on "ovs-ctl start"
42+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "sed -i -e 's/insert_mod_if_required.*return 1/#&/' /usr/share/openvswitch/scripts/ovs-ctl"
43+
44+
# Add auth info for nova-compute
45+
# https://bugs.launchpad.net/devstack/+bug/1996465
46+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo '[placement]' >> /etc/nova/nova-cpu.conf"
47+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'region_name = RegionOne' >> /etc/nova/nova-cpu.conf"
48+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'project_domain_name = Default' >> /etc/nova/nova-cpu.conf"
49+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'project_name = service' >> /etc/nova/nova-cpu.conf"
50+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'user_domain_name = Default' >> /etc/nova/nova-cpu.conf"
51+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'password = password' >> /etc/nova/nova-cpu.conf"
52+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'username = placement' >> /etc/nova/nova-cpu.conf"
53+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'auth_url = http://172.28.0.2/identity' >> /etc/nova/nova-cpu.conf"
54+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'auth_type = password' >> /etc/nova/nova-cpu.conf"
55+
56+
# Disable namespace in libvirt/qemu.conf
57+
# https://listman.redhat.com/archives/libvirt-users/2017-February/009734.html
58+
docker-compose --file docker-compose.build.yaml exec -T $c /bin/bash -c "echo 'namespaces = []' >> /etc/libvirt/qemu.conf"
59+
done
60+
docker-compose --file docker-compose.build.yaml stop
4361
docker ps -a
4462
- name: Login to Docker Hub
4563
uses: docker/login-action@v2
@@ -49,18 +67,14 @@ jobs:
4967
- name: Push to Docker Hub for PR
5068
if: github.ref != 'refs/heads/main' && github.event_name != 'schedule'
5169
run: |
52-
docker commit controller bobuhiro11/containerized-devstack-controller:${{ github.sha }}
53-
docker commit compute-1 bobuhiro11/containerized-devstack-compute-1:${{ github.sha }}
54-
docker commit compute-2 bobuhiro11/containerized-devstack-compute-2:${{ github.sha }}
55-
docker push bobuhiro11/containerized-devstack-controller:${{ github.sha }}
56-
docker push bobuhiro11/containerized-devstack-compute-1:${{ github.sha }}
57-
docker push bobuhiro11/containerized-devstack-compute-2:${{ github.sha }}
70+
for c in controller compute-1 compute-2; do
71+
docker commit $c bobuhiro11/containerized-devstack-$c:${{ github.sha }}
72+
docker push bobuhiro11/containerized-devstack-$c:${{ github.sha }}
73+
done
5874
- name: Push to Docker Hub for latest
5975
if: github.ref == 'refs/heads/main' && github.event_name != 'schedule'
6076
run: |
61-
docker commit controller bobuhiro11/containerized-devstack-controller:latest
62-
docker commit compute-1 bobuhiro11/containerized-devstack-compute-1:latest
63-
docker commit compute-2 bobuhiro11/containerized-devstack-compute-2:latest
64-
docker push bobuhiro11/containerized-devstack-controller:latest
65-
docker push bobuhiro11/containerized-devstack-compute-1:latest
66-
docker push bobuhiro11/containerized-devstack-compute-2:latest
77+
for c in controller compute-1 compute-2; do
78+
docker commit $c bobuhiro11/containerized-devstack-$c:latest
79+
docker push bobuhiro11/containerized-devstack-$c:latest
80+
done

docker-compose.build.yaml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
version: '3'
2+
services:
3+
controller:
4+
container_name: controller
5+
hostname: controller
6+
build:
7+
context: .
8+
dockerfile: controller/Dockerfile
9+
privileged: true
10+
tty: true
11+
volumes:
12+
- '/lib/modules:/lib/modules'
13+
sysctls:
14+
net.ipv6.conf.all.disable_ipv6: 0
15+
net.ipv6.conf.default.disable_ipv6: 0
16+
environment:
17+
- HOST_IP=172.28.0.2
18+
networks:
19+
management_network:
20+
ipv4_address: 172.28.0.2
21+
compute-1:
22+
container_name: compute-1
23+
hostname: compute-1
24+
build:
25+
context: .
26+
dockerfile: compute/Dockerfile
27+
privileged: true
28+
tty: true
29+
volumes:
30+
- '/lib/modules:/lib/modules'
31+
sysctls:
32+
net.ipv6.conf.all.disable_ipv6: 0
33+
net.ipv6.conf.default.disable_ipv6: 0
34+
environment:
35+
- HOST_IP=172.28.0.3
36+
networks:
37+
management_network:
38+
ipv4_address: 172.28.0.3
39+
compute-2:
40+
container_name: compute-2
41+
hostname: compute-2
42+
build:
43+
context: .
44+
dockerfile: compute/Dockerfile
45+
privileged: true
46+
tty: true
47+
volumes:
48+
- '/lib/modules:/lib/modules'
49+
sysctls:
50+
net.ipv6.conf.all.disable_ipv6: 0
51+
net.ipv6.conf.default.disable_ipv6: 0
52+
environment:
53+
- HOST_IP=172.28.0.4
54+
networks:
55+
management_network:
56+
ipv4_address: 172.28.0.4
57+
networks:
58+
management_network:
59+
driver: bridge
60+
ipam:
61+
driver: default
62+
config:
63+
- subnet: 172.28.0.0/24

docker-compose.yaml

Lines changed: 111 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,45 @@ services:
33
controller:
44
container_name: controller
55
hostname: controller
6-
build:
7-
context: .
8-
dockerfile: controller/Dockerfile
9-
privileged: true
6+
image: bobuhiro11/containerized-devstack-controller
107
tty: true
8+
cap_add:
9+
- CHOWN
10+
- DAC_OVERRIDE
11+
- DAC_READ_SEARCH
12+
- FOWNER
13+
- FSETID
14+
- IPC_LOCK
15+
- IPC_OWNER
16+
- KILL
17+
- LEASE
18+
- LINUX_IMMUTABLE
19+
- MAC_ADMIN
20+
- MAC_OVERRIDE
21+
- MKNOD
22+
- NET_ADMIN
23+
- NET_BIND_SERVICE
24+
- NET_BROADCAST
25+
- NET_RAW
26+
- SETFCAP
27+
- SETGID
28+
- SETPCAP
29+
- SETUID
30+
- SYS_ADMIN
31+
- SYS_CHROOT
32+
- SYS_NICE
33+
- SYS_PACCT
34+
- SYS_PTRACE
35+
- SYS_RAWIO
36+
- SYS_RESOURCE
37+
tmpfs:
38+
- /tmp
39+
- /run
40+
- /run/lock
1141
volumes:
12-
- '/lib/modules:/lib/modules'
42+
- '/sys/fs/cgroup:/sys/fs/cgroup:ro'
43+
devices:
44+
- '/dev/net/tun:/dev/net/tun'
1345
sysctls:
1446
net.ipv6.conf.all.disable_ipv6: 0
1547
net.ipv6.conf.default.disable_ipv6: 0
@@ -21,13 +53,45 @@ services:
2153
compute-1:
2254
container_name: compute-1
2355
hostname: compute-1
24-
build:
25-
context: .
26-
dockerfile: compute/Dockerfile
27-
privileged: true
56+
image: bobuhiro11/containerized-devstack-compute-1
2857
tty: true
58+
cap_add:
59+
- CHOWN
60+
- DAC_OVERRIDE
61+
- DAC_READ_SEARCH
62+
- FOWNER
63+
- FSETID
64+
- IPC_LOCK
65+
- IPC_OWNER
66+
- KILL
67+
- LEASE
68+
- LINUX_IMMUTABLE
69+
- MAC_ADMIN
70+
- MAC_OVERRIDE
71+
- MKNOD
72+
- NET_ADMIN
73+
- NET_BIND_SERVICE
74+
- NET_BROADCAST
75+
- NET_RAW
76+
- SETFCAP
77+
- SETGID
78+
- SETPCAP
79+
- SETUID
80+
- SYS_ADMIN
81+
- SYS_CHROOT
82+
- SYS_NICE
83+
- SYS_PACCT
84+
- SYS_PTRACE
85+
- SYS_RAWIO
86+
- SYS_RESOURCE
87+
tmpfs:
88+
- /tmp
89+
- /run
90+
- /run/lock
2991
volumes:
30-
- '/lib/modules:/lib/modules'
92+
- '/sys/fs/cgroup:/sys/fs/cgroup:ro'
93+
devices:
94+
- '/dev/net/tun:/dev/net/tun'
3195
sysctls:
3296
net.ipv6.conf.all.disable_ipv6: 0
3397
net.ipv6.conf.default.disable_ipv6: 0
@@ -39,13 +103,45 @@ services:
39103
compute-2:
40104
container_name: compute-2
41105
hostname: compute-2
42-
build:
43-
context: .
44-
dockerfile: compute/Dockerfile
45-
privileged: true
106+
image: bobuhiro11/containerized-devstack-compute-2
46107
tty: true
108+
cap_add:
109+
- CHOWN
110+
- DAC_OVERRIDE
111+
- DAC_READ_SEARCH
112+
- FOWNER
113+
- FSETID
114+
- IPC_LOCK
115+
- IPC_OWNER
116+
- KILL
117+
- LEASE
118+
- LINUX_IMMUTABLE
119+
- MAC_ADMIN
120+
- MAC_OVERRIDE
121+
- MKNOD
122+
- NET_ADMIN
123+
- NET_BIND_SERVICE
124+
- NET_BROADCAST
125+
- NET_RAW
126+
- SETFCAP
127+
- SETGID
128+
- SETPCAP
129+
- SETUID
130+
- SYS_ADMIN
131+
- SYS_CHROOT
132+
- SYS_NICE
133+
- SYS_PACCT
134+
- SYS_PTRACE
135+
- SYS_RAWIO
136+
- SYS_RESOURCE
137+
tmpfs:
138+
- /tmp
139+
- /run
140+
- /run/lock
47141
volumes:
48-
- '/lib/modules:/lib/modules'
142+
- '/sys/fs/cgroup:/sys/fs/cgroup:ro'
143+
devices:
144+
- '/dev/net/tun:/dev/net/tun'
49145
sysctls:
50146
net.ipv6.conf.all.disable_ipv6: 0
51147
net.ipv6.conf.default.disable_ipv6: 0

0 commit comments

Comments
 (0)