-
Notifications
You must be signed in to change notification settings - Fork 52
/
docker-compose.yml
77 lines (73 loc) · 2.3 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
version: '3.6'
x-env-kubernetes-version: &ref_env_kubernetes_version ${KUBERNETES_VERSION}
x-env-kind-version: &ref_env_kind_version ${KIND_VERSION}
x-env-docker-version: &ref_env_docker_version ${DOCKER_VERSION}
x-env-kind-image: &ref_env_kind_image ${KIND_IMAGE}
x-env-local-dns: &ref_env_local_dns ${LOCAL_DNS}
services:
dns: # makes env compatible with macos/windows, not linux only
container_name: api-firewall-kubernetes-dns
image: coredns/coredns:1.8.3
command:
- -conf
- /etc/Coredns
expose:
- "53/udp"
networks:
default:
ipv4_address: *ref_env_local_dns
volumes:
- "./volumes/dns/Corefile:/etc/Coredns:ro"
restart: on-failure
stop_grace_period: 1s
kubernetes:
container_name: api-firewall-kubernetes-kind
image: *ref_env_kind_image
build:
context: ./docker
dockerfile: Dockerfile
labels:
tld.local: local
network: host
args:
DOCKER_VERSION: *ref_env_docker_version
KUBERNETES_VERSION: *ref_env_kubernetes_version
KIND_VERSION: *ref_env_kind_version
privileged: true
environment:
KIND_DNS_SERVER_IP: *ref_env_local_dns
CLUSTER_MANIFEST_TEMPLATE: /root/cluster.yaml.tmpl
KIND_CLUSTER_MANIFEST: /root/cluster.yaml
env_file:
- ".env"
entrypoint:
- sh
- -c
command:
- |
echo nameserver ${LOCAL_DNS} > /etc/resolv.conf
exec dockerd-entrypoint.sh
ports:
- "6443:6443" # kubernetes api
- "8008:30080" # kubernetes dashboard
- "8080:31080" # backend via firewall
- "8090:31090" # backend
dns:
- *ref_env_local_dns
extra_hosts:
- "kubernetes:127.0.0.1"
volumes:
- ./volumes/cluster.yaml:/root/cluster.yaml.tmpl:ro # kubernetes cluster configuration
- ./volumes/init-backend:/root/init-backend:ro # kubernetes initial configuration (manifests)
- ./volumes/helm:/root/helm:ro # helm values for api-firewall
- ../../helm/api-firewall:/root/chart:ro # helm chart for api-firewall
- ./volumes/docker/daemon.json:/etc/docker/daemon.json:ro # docker daemon config
stop_grace_period: 5s
depends_on:
- dns
networks:
default:
name: api-firewall-kubernetes
ipam:
config:
- subnet: 10.254.254.0/24