-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
compose.yaml
122 lines (115 loc) · 3.59 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
---
services:
puppet:
image: ghcr.io/voxpupuli/puppetserver:8.7.0-latest
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.8.1-latest
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:17-alpine
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
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
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
networks:
default:
name: crafty-oss
volumes:
puppetserver:
puppetserver-ssl:
puppetserver-ca:
puppetdb:
puppetdb-postgres:
agent-ssl: