forked from voxpupuli/crafty
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompose.yaml
140 lines (131 loc) · 4.01 KB
/
compose.yaml
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
---
services:
puppet:
image: ghcr.io/voxpupuli/puppetserver:8.6.3-latest
pull_policy: always
hostname: puppet
environment:
PUPPETSERVER_HOSTNAME: puppet
PUPPETSERVER_PORT: 8140
PUPPETDB_HOSTNAME: puppetdb
PUPPETDB_SSL_PORT: 8081
USE_PUPPETDB: true
AUTOSIGN: true
CSR_ATTRIBUTES: '{"custom_attributes": { "challengePassword": "foobar" }, "extension_requests": { "pp_project": "foo" } }'
# For private repos, use git@github.com:user/repo.git and provide SSH keys
# R10K_REMOTE: https://github.com/betadots/demo-control-repo.git
volumes:
- puppetserver:/opt/puppetlabs/server/data/puppetserver
- puppetserver-ssl:/etc/puppetlabs/puppet/ssl
- puppetserver-ca:/etc/puppetlabs/puppetserver/ca
- ./puppet-code:/etc/puppetlabs/code
restart: always
ports:
- 8140:8140
profiles:
- puppet
puppetdb:
image: ghcr.io/voxpupuli/puppetdb:8.7.0-latest
pull_policy: always
hostname: puppetdb
environment:
- USE_PUPPETSERVER=true
- PUPPETSERVER_HOSTNAME=puppet
- PUPPETSERVER_PORT=8140
- PUPPETDB_SSL_PORT=8081
- PUPPETDB_POSTGRES_HOSTNAME=postgres
- PUPPETDB_POSTGRES_PORT=5432
- PUPPETDB_PASSWORD=${POSTGRES_PASSWORD:-puppetdb}
- PUPPETDB_USER=${POSTGRES_USER:-puppetdb}
volumes:
- puppetdb:/opt/puppetlabs/server/data/puppetdb
restart: always
ports:
- 8081:8081
profiles:
- puppet
postgres:
image: docker.io/postgres:16-alpine
pull_policy: always
hostname: postgres
environment:
- POSTGRES_DB=${POSTGRES_DB:-puppetdb}
- POSTGRES_USER=${POSTGRES_USER:-puppetdb}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-puppetdb}
healthcheck:
test: ["CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'"]
interval: 10s
timeout: 3s
retries: 3
volumes:
- puppetdb-postgres:/var/lib/postgresql/data
- ./postgresql_init:/docker-entrypoint-initdb.d
restart: always
profiles:
- puppet
puppetboard:
image: ghcr.io/voxpupuli/puppetboard:latest
pull_policy: always
hostname: puppetboard
environment:
- PUPPETDB_HOST=puppetdb
# - PUPPETDB_PORT=8081 # use this for TLS
- PUPPETDB_PORT=8080 # Use this for non-TLS
- PUPPETBOARD_PORT=8088
- SECRET_KEY=628c4e02daaaca2b90242491f607d3704153d424f215ac51b1dd873055e102a5 # Long random String : python3 -c 'import secrets; print(secrets.token_hex())'
# if you wanna use SSL, you need to provide the following variables
# see the README.md for more information, look for "Generate additional certificates"
# - PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppet/ssl/certs/ca.pem
# - PUPPETDB_KEY=/etc/puppetlabs/puppet/ssl/private_keys/puppetboard.pem
# - PUPPETDB_CERT=/etc/puppetlabs/puppet/ssl/certs/puppetboard.pem
# volumes:
# - puppetserver-ssl:/etc/puppetlabs/puppet/ssl
restart: always
ports:
- 8088:8088
profiles:
- puppet
hdm:
image: ghcr.io/betadots/hdm:latest
pull_policy: always
hostname: hdm
environment:
- SECRET_KEY_BASE=9dea7603c008dec285e4b231602a00b2
volumes:
- ./hdm_config/hdm.yml:/hdm/config/hdm.yml:ro
- ./puppet-code:/etc/puppetlabs/code
ports:
- 3000:3000
profiles:
- hdm
# testing:
# image: ghcr.io/betadots/pdc:latest
# container_name: crafty-testing
# hostname: crafty-testing
# platform: linux/x86_64
# volumes:
# - agent-ssl:/etc/puppetlabs/puppet/ssl
# restart: always
# profiles:
# - test
puppet-agent:
image: techsk8/puppetagent-debian12:latest
pull_policy: always
hostname: puppet-agent
privileged: true
volumes:
- /sys/fs/cgroup/:/sys/fs/cgroup:ro
- agent-ssl:/etc/puppetlabs/puppet/ssl
restart: always
profiles:
- test
networks:
default:
name: crafty-oss
volumes:
puppetserver:
puppetserver-ssl:
puppetserver-ca:
puppetdb:
puppetdb-postgres:
agent-ssl: