Created
September 20, 2022 14:13
-
-
Save johnfelipe/e8ded126ce3b82212e2e199e4c6d334c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: '3.7' | |
x-icinga-db-web-config: | |
&icinga-db-web-config | |
icingaweb.modules.icingadb.config.icingadb.resource: icingadb | |
icingaweb.modules.icingadb.redis.redis1.host: icingadb-redis | |
icingaweb.modules.icingadb.redis.redis1.port: 6379 | |
icingaweb.modules.icingadb.commandtransports.icinga2.host: icinga2 | |
icingaweb.modules.icingadb.commandtransports.icinga2.port: 5665 | |
icingaweb.modules.icingadb.commandtransports.icinga2.password: ${ICINGAWEB_ICINGA2_API_USER_PASSWORD:-icingaweb} | |
icingaweb.modules.icingadb.commandtransports.icinga2.transport: api | |
icingaweb.modules.icingadb.commandtransports.icinga2.username: icingaweb | |
icingaweb.resources.icingadb.charset: utf8mb4 | |
icingaweb.resources.icingadb.db: mysql | |
icingaweb.resources.icingadb.dbname: icingadb | |
icingaweb.resources.icingadb.host: mysql | |
icingaweb.resources.icingadb.password: ${ICINGADB_MYSQL_PASSWORD:-icingadb} | |
icingaweb.resources.icingadb.type: db | |
icingaweb.resources.icingadb.username: icingadb | |
x-icinga-director-config: | |
&icinga-director-config | |
icingaweb.modules.director.config.db.resource: director-mysql | |
icingaweb.modules.director.kickstart.config.endpoint: icinga2 | |
icingaweb.modules.director.kickstart.config.host: icinga2 | |
icingaweb.modules.director.kickstart.config.port: 5665 | |
icingaweb.modules.director.kickstart.config.username: icingaweb | |
icingaweb.modules.director.kickstart.config.password: ${ICINGAWEB_ICINGA2_API_USER_PASSWORD:-icingaweb} | |
icingaweb.resources.director-mysql.charset: utf8mb4 | |
icingaweb.resources.director-mysql.db: mysql | |
icingaweb.resources.director-mysql.dbname: director | |
icingaweb.resources.director-mysql.host: mysql | |
icingaweb.resources.director-mysql.password: ${ICINGA_DIRECTOR_MYSQL_PASSWORD:-director} | |
icingaweb.resources.director-mysql.type: db | |
icingaweb.resources.director-mysql.username: director | |
x-icinga-web-config: | |
&icinga-web-config | |
icingaweb.authentication.icingaweb2.backend: db | |
icingaweb.authentication.icingaweb2.resource: icingaweb-mysql | |
icingaweb.config.global.config_backend: db | |
icingaweb.config.global.config_resource: icingaweb-mysql | |
icingaweb.config.global.module_path: /usr/share/icingaweb2/modules | |
icingaweb.config.logging.log: php | |
icingaweb.groups.icingaweb2.backend: db | |
icingaweb.groups.icingaweb2.resource: icingaweb-mysql | |
icingaweb.passwords.icingaweb2.icingaadmin: icinga | |
icingaweb.resources.icingaweb-mysql.charset: utf8mb4 | |
icingaweb.resources.icingaweb-mysql.db: mysql | |
icingaweb.resources.icingaweb-mysql.dbname: icingaweb | |
icingaweb.resources.icingaweb-mysql.host: mysql | |
icingaweb.resources.icingaweb-mysql.password: icingaweb | |
icingaweb.resources.icingaweb-mysql.type: db | |
icingaweb.resources.icingaweb-mysql.username: icingaweb | |
icingaweb.roles.Administrators.groups: Administrators | |
icingaweb.roles.Administrators.permissions: '*' | |
icingaweb.roles.Administrators.users: icingaadmin | |
x-icinga2-environment: | |
&icinga2-environment | |
ICINGA_CN: icinga2 | |
ICINGA_MASTER: 1 | |
x-logging: | |
&default-logging | |
driver: "json-file" | |
options: | |
max-file: "10" | |
max-size: "1M" | |
networks: | |
default: | |
name: icinga-playground | |
services: | |
director: | |
command: | |
- /bin/bash | |
- -ce | |
- | | |
echo "Testing the database connection. Container could restart." | |
(echo > /dev/tcp/mysql/3306) >/dev/null 2>&1 | |
echo "Testing the Icinga 2 API connection. Container could restart." | |
(echo > /dev/tcp/icinga2/5665) >/dev/null 2>&1 | |
icingacli director migration run | |
(icingacli director kickstart required && icingacli director kickstart run && icingacli director config deploy) || true | |
echo "Starting Icinga Director daemon." | |
icingacli director daemon run | |
entrypoint: [] | |
logging: *default-logging | |
image: icinga/icingaweb2 | |
restart: on-failure | |
volumes: | |
- icingaweb:/data | |
# The Icinga 2 docker image does not support configuration via env vars at the moment. | |
# So, we have to ship some configs with this little init container. Referenced in depends_on of the icinga2 service. | |
init-icinga2: | |
command: [ "/config/init-icinga2.sh" ] | |
environment: *icinga2-environment | |
image: icinga/icinga2 | |
logging: *default-logging | |
volumes: | |
- icinga2:/data | |
- ./icingadb.conf:/config/icingadb.conf | |
- ./icingaweb-api-user.conf:/config/icingaweb-api-user.conf | |
- ./init-icinga2.sh:/config/init-icinga2.sh | |
icinga2: | |
command: [ "sh", "-c", "sleep 5 ; icinga2 daemon" ] | |
depends_on: | |
- icingadb-redis | |
- init-icinga2 | |
environment: *icinga2-environment | |
image: icinga/icinga2 | |
logging: *default-logging | |
ports: | |
- 5665:5665 | |
volumes: | |
- icinga2:/data | |
- ./icinga2.conf.d:/custom_data/custom.conf.d | |
icingadb: | |
environment: | |
ICINGADB_DATABASE_HOST: mysql | |
ICINGADB_DATABASE_PORT: 3306 | |
ICINGADB_DATABASE_DATABASE: icingadb | |
ICINGADB_DATABASE_USER: icingadb | |
ICINGADB_DATABASE_PASSWORD: ${ICINGADB_MYSQL_PASSWORD:-icingadb} | |
ICINGADB_REDIS_HOST: icingadb-redis | |
ICINGADB_REDIS_PORT: 6379 | |
depends_on: | |
- mysql | |
- icingadb-redis | |
image: icinga/icingadb | |
logging: *default-logging | |
icingadb-redis: | |
image: redis | |
logging: *default-logging | |
icingaweb: | |
depends_on: | |
- mysql | |
environment: | |
icingaweb.enabledModules: director, icingadb, incubator | |
<<: *icinga-db-web-config | |
<<: *icinga-director-config | |
<<: *icinga-web-config | |
icingaweb.resources.vspheredb-db.charset: utf8mb4 | |
icingaweb.resources.vspheredb-db.db: mysql | |
icingaweb.resources.vspheredb-db.dbname: vspheredb | |
icingaweb.resources.vspheredb-db.host: vspheredb-db | |
icingaweb.resources.vspheredb-db.password: ${MARIADB_PASSWORD_VSPHEREDB:?MARIADB_PASSWORD_VSPHEREDB required} | |
icingaweb.resources.vspheredb-db.type: db | |
icingaweb.resources.vspheredb-db.username: vspheredb | |
icingaweb.modules.vspheredb.config.db.resource: vspheredb-db | |
logging: *default-logging | |
image: icinga/icingaweb2 | |
ports: | |
- 8080:8080 | |
# Restart Icinga Web container automatically since we have to wait for the database to be ready. | |
# Please note that this needs a more sophisticated solution. | |
restart: on-failure | |
volumes: | |
- icingaweb:/data | |
mysql: | |
image: mariadb:10.7 | |
command: --default-authentication-plugin=mysql_native_password | |
environment: | |
MYSQL_RANDOM_ROOT_PASSWORD: 1 | |
ICINGADB_MYSQL_PASSWORD: ${ICINGADB_MYSQL_PASSWORD:-icingadb} | |
ICINGAWEB_MYSQL_PASSWORD: ${ICINGAWEB_MYSQL_PASSWORD:-icingaweb} | |
ICINGA_DIRECTOR_MYSQL_PASSWORD: ${ICINGA_DIRECTOR_MYSQL_PASSWORD:-director} | |
logging: *default-logging | |
volumes: | |
- mysql:/var/lib/mysql | |
- ./env/mysql/:/docker-entrypoint-initdb.d/ | |
vspheredb-db: | |
image: mariadb:${MARIADB_VERSION} | |
command: | |
- --character-set-server=utf8mb4 | |
- --collation-server=utf8mb4_bin | |
environment: | |
MARIADB_DATABASE: vspheredb | |
MARIADB_USER: vspheredb | |
MARIADB_PASSWORD: ${MARIADB_PASSWORD_VSPHEREDB:?MARIADB_PASSWORD_VSPHEREDB required} | |
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD_VSPHEREDB:?MARIADB_ROOT_PASSWORD_VSPHEREDB required} | |
TZ: ${TZ:?TZ required} | |
restart: "${RESTART:-always}" | |
volumes: | |
- vspheredb-db:/var/lib/mysql | |
volumes: | |
icinga2: | |
icingaweb: | |
mysql: | |
vspheredb-db: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment