├── .gitignore ├── 2.3 ├── Dockerfile ├── config-itop.php └── php.ini ├── 2.4 ├── Dockerfile ├── config-itop.php └── php.ini ├── 2.5 ├── Dockerfile ├── config-itop.php └── php.ini ├── 2.6 ├── Dockerfile ├── config-itop.php └── php.ini ├── 2.7 ├── Dockerfile ├── Makefile ├── config-itop.php └── php.ini ├── 3.0 ├── Dockerfile ├── Makefile ├── config-itop.php ├── docker-itop-entrypoint └── php.ini ├── 3.1 ├── Dockerfile ├── Makefile ├── config-itop.php ├── docker-itop-entrypoint └── php.ini ├── 3.2 ├── Dockerfile ├── Makefile ├── config-itop.php ├── docker-itop-entrypoint └── php.ini ├── Essential ├── Dockerfile ├── Makefile ├── docker-itop-entrypoint └── php.ini ├── Professional ├── Dockerfile ├── Makefile ├── docker-itop-entrypoint └── php.ini ├── README.md ├── TeemIp ├── Dockerfile ├── Makefile ├── config-itop.php ├── docker-itop-entrypoint └── php.ini └── helm-chart ├── Chart.yaml ├── README.md ├── templates ├── NOTES.txt ├── _helpers.tpl ├── deployment.yaml ├── hpa.yaml ├── ingress.yaml ├── pvc.yaml ├── service.yaml ├── serviceaccount.yaml └── tests │ └── test-connection.yaml └── values.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | # ignore iTop Essential source and builds 2 | Essential/files/iTop Essential-*.zip 3 | Essential/files/iTop-essential-docker.tar.gz 4 | 5 | # ignore iTop Professional source and builds 6 | Professional/files/iTop Professional-*.zip 7 | Professional/files/iTop-professional-docker.tar.gz 8 | -------------------------------------------------------------------------------- /2.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-apache 2 | 3 | # Install extra packages 4 | RUN apt-get update \ 5 | && apt-get install -y \ 6 | graphviz \ 7 | libfreetype6-dev \ 8 | libjpeg-dev \ 9 | libldap2-dev \ 10 | libmcrypt-dev \ 11 | libpng-dev \ 12 | libxml2-dev \ 13 | mariadb-client \ 14 | unzip \ 15 | zlib1g-dev \ 16 | && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ 17 | && docker-php-ext-install \ 18 | gd \ 19 | ldap \ 20 | mcrypt \ 21 | mysqli \ 22 | soap \ 23 | zip \ 24 | && apt-get remove -y \ 25 | libfreetype6-dev \ 26 | libjpeg-dev \ 27 | libldap2-dev \ 28 | libmcrypt-dev \ 29 | libpng-dev \ 30 | libxml2-dev \ 31 | zlib1g-dev \ 32 | && rm -rf /var/lib/apt/lists/* 33 | 34 | # Load iTop files 35 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/2.3.4/iTop-2.3.4-3302.zip \ 36 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 37 | && mv -v /tmp/web/* /var/www/html/ \ 38 | && chown -R www-data: /var/www/html/ \ 39 | && rm -rf /tmp/iTop.zip /tmp/web 40 | 41 | # Add default configuration 42 | COPY php.ini /usr/local/etc/php/php.ini 43 | COPY config-itop.php /etc/itop/production/config-itop.php 44 | RUN ln -s /etc/itop /var/www/html/conf \ 45 | && chown -R www-data: /etc/itop 46 | 47 | ENV DB_HOSTNAME="db" DB_PREFIX="" 48 | -------------------------------------------------------------------------------- /2.3/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /2.3/php.ini: -------------------------------------------------------------------------------- 1 | [Session] 2 | ; iTop wants save_path to be set 3 | session.save_path = "/tmp" 4 | -------------------------------------------------------------------------------- /2.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-apache 2 | 3 | # Install extra packages 4 | RUN apt-get update \ 5 | && apt-get install -y \ 6 | graphviz \ 7 | libfreetype6-dev \ 8 | libjpeg-dev \ 9 | libldap2-dev \ 10 | libmcrypt-dev \ 11 | libpng-dev \ 12 | libxml2-dev \ 13 | mariadb-client \ 14 | unzip \ 15 | zlib1g-dev \ 16 | && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ 17 | && docker-php-ext-install \ 18 | gd \ 19 | ldap \ 20 | mcrypt \ 21 | mysqli \ 22 | soap \ 23 | zip \ 24 | && apt-get remove -y \ 25 | libfreetype6-dev \ 26 | libjpeg-dev \ 27 | libldap2-dev \ 28 | libmcrypt-dev \ 29 | libpng-dev \ 30 | libxml2-dev \ 31 | zlib1g-dev \ 32 | && rm -rf /var/lib/apt/lists/* 33 | 34 | # Load iTop files 35 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/2.4.3/iTop-2.4.3-4099.zip \ 36 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 37 | && mv -v /tmp/web/* /var/www/html/ \ 38 | && chown -R www-data: /var/www/html/ \ 39 | && rm -rf /tmp/iTop.zip /tmp/web 40 | 41 | # Add default configuration 42 | COPY php.ini /usr/local/etc/php/php.ini 43 | COPY config-itop.php /etc/itop/production/config-itop.php 44 | RUN ln -s /etc/itop /var/www/html/conf \ 45 | && chown -R www-data: /etc/itop 46 | 47 | ENV DB_HOSTNAME="db" DB_PREFIX="" 48 | -------------------------------------------------------------------------------- /2.4/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /2.4/php.ini: -------------------------------------------------------------------------------- 1 | [Session] 2 | ; iTop wants save_path to be set 3 | session.save_path = "/tmp" 4 | -------------------------------------------------------------------------------- /2.5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-apache 2 | 3 | # Install extra packages 4 | RUN apt-get update \ 5 | && apt-get install -y \ 6 | graphviz \ 7 | libfreetype6-dev \ 8 | libjpeg-dev \ 9 | libldap2-dev \ 10 | libmcrypt-dev \ 11 | libpng-dev \ 12 | libxml2-dev \ 13 | mariadb-client \ 14 | unzip \ 15 | zlib1g-dev \ 16 | && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ 17 | && docker-php-ext-install \ 18 | gd \ 19 | ldap \ 20 | mcrypt \ 21 | mysqli \ 22 | soap \ 23 | zip \ 24 | && apt-get remove -y \ 25 | libfreetype6-dev \ 26 | libjpeg-dev \ 27 | libldap2-dev \ 28 | libmcrypt-dev \ 29 | libpng-dev \ 30 | libxml2-dev \ 31 | zlib1g-dev \ 32 | && rm -rf /var/lib/apt/lists/* 33 | 34 | # Load iTop files 35 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/2.5.1/iTop-2.5.1-4123.zip \ 36 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 37 | && mv -v /tmp/web/* /var/www/html/ \ 38 | && chown -R www-data: /var/www/html/ \ 39 | && rm -rf /tmp/iTop.zip /tmp/web 40 | 41 | # Add default configuration 42 | COPY php.ini /usr/local/etc/php/php.ini 43 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 44 | RUN chown -R www-data: /var/www/html/conf 45 | 46 | ENV DB_HOSTNAME="db" DB_PREFIX="" 47 | -------------------------------------------------------------------------------- /2.5/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /2.5/php.ini: -------------------------------------------------------------------------------- 1 | [Session] 2 | ; iTop wants save_path to be set 3 | session.save_path = "/tmp" 4 | -------------------------------------------------------------------------------- /2.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-apache 2 | 3 | # Add helper script 4 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 5 | 6 | # Install extra packages 7 | RUN apt-get update \ 8 | && apt-get install -y \ 9 | graphviz \ 10 | mariadb-client \ 11 | unzip \ 12 | && install-php-extensions \ 13 | gd \ 14 | ldap \ 15 | mcrypt \ 16 | mysqli \ 17 | soap \ 18 | zip 19 | 20 | # Load iTop files 21 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/2.6.3/iTop-2.6.3-5092.zip \ 22 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 23 | && mv -v /tmp/web/* /var/www/html/ \ 24 | && mkdir /var/www/html/env-production \ 25 | && chown -R www-data: /var/www/html/ \ 26 | && rm -rf /tmp/iTop.zip /tmp/web 27 | 28 | # Add default configuration 29 | COPY php.ini /usr/local/etc/php/php.ini 30 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 31 | RUN chown -R www-data: /var/www/html/conf 32 | 33 | ENV DB_HOSTNAME="db" DB_PREFIX="" 34 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 35 | -------------------------------------------------------------------------------- /2.6/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /2.6/php.ini: -------------------------------------------------------------------------------- 1 | [Session] 2 | ; iTop wants save_path to be set 3 | session.save_path = "/tmp" 4 | -------------------------------------------------------------------------------- /2.7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | gd \ 19 | ldap \ 20 | mcrypt \ 21 | mysqli \ 22 | soap \ 23 | zip 24 | 25 | # Load iTop files 26 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/${release}/iTop-${release}-${patch}.zip \ 27 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 28 | && mv -v /tmp/web/* /var/www/html/ \ 29 | && mkdir /var/www/html/env-production \ 30 | && chown -R www-data: /var/www/html/ \ 31 | && rm -rf /tmp/iTop.zip /tmp/web 32 | 33 | # Add default configuration 34 | COPY php.ini /usr/local/etc/php/php.ini 35 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 36 | RUN chown -R www-data: /var/www/html/conf 37 | 38 | ENV DB_HOSTNAME="db" DB_PREFIX="" 39 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 40 | -------------------------------------------------------------------------------- /2.7/Makefile: -------------------------------------------------------------------------------- 1 | version = 2.7.12 2 | release = $(version) 3 | patch = 16208 4 | builder = itop_builder 5 | platforms = linux/arm64,linux/amd64 6 | 7 | all: setup_builder load 8 | 9 | setup_builder: 10 | docker buildx inspect $(builder) > /dev/null || docker buildx create --name $(builder) --driver docker-container --platform $(platforms) --bootstrap 11 | 12 | build: setup_builder 13 | # Build all supported platforms 14 | docker buildx build --pull \ 15 | --builder $(builder) \ 16 | --platform $(platforms) \ 17 | --build-arg release=$(release) \ 18 | --build-arg patch=$(patch) . 19 | 20 | load: setup_builder 21 | # Build and load current platform 22 | docker buildx build --pull --load \ 23 | --builder $(builder) \ 24 | --build-arg release=$(release) \ 25 | --build-arg patch=$(patch) \ 26 | -t supervisions/itop:2.7 \ 27 | -t supervisions/itop:$(version) \ 28 | -t supervisions/itop:$(release) . 29 | 30 | push: setup_builder 31 | # Build and push all supported platforms 32 | docker buildx build --pull --push \ 33 | --builder $(builder) \ 34 | --platform $(platforms) \ 35 | --build-arg release=$(release) \ 36 | --build-arg patch=$(patch) \ 37 | -t supervisions/itop:2.7 \ 38 | -t supervisions/itop:$(version) . 39 | -------------------------------------------------------------------------------- /2.7/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /2.7/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /3.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.4-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | apcu \ 19 | gd \ 20 | ldap \ 21 | mcrypt \ 22 | mysqli \ 23 | soap \ 24 | zip 25 | 26 | # Load iTop files 27 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/${release}/iTop-${release}-${patch}.zip \ 28 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 29 | && mv -v /tmp/web/* /var/www/html/ \ 30 | && mkdir /var/www/html/env-production \ 31 | && chown -R www-data: /var/www/html/ \ 32 | && rm -rf /tmp/iTop.zip /tmp/web 33 | 34 | # Add default configuration 35 | COPY php.ini /usr/local/etc/php/php.ini 36 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 37 | RUN chown -R www-data: /var/www/html/conf 38 | 39 | # Add custom entrypoint 40 | COPY docker-itop-entrypoint /usr/local/bin/ 41 | ENTRYPOINT ["docker-itop-entrypoint"] 42 | CMD ["apache2-foreground"] 43 | 44 | ENV DB_HOSTNAME="db" DB_PREFIX="" 45 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 46 | -------------------------------------------------------------------------------- /3.0/Makefile: -------------------------------------------------------------------------------- 1 | version = 3.0.4 2 | release = $(version) 3 | patch = 12690 4 | builder = itop_builder 5 | platforms = linux/arm64,linux/amd64 6 | 7 | all: setup_builder load 8 | 9 | setup_builder: 10 | docker buildx inspect $(builder) > /dev/null || docker buildx create --name $(builder) --driver docker-container --platform $(platforms) --bootstrap 11 | 12 | build: setup_builder 13 | # Build all supported platforms 14 | docker buildx build --pull \ 15 | --builder $(builder) \ 16 | --platform $(platforms) \ 17 | --build-arg release=$(release) \ 18 | --build-arg patch=$(patch) . 19 | 20 | load: setup_builder 21 | # Build and load current platform 22 | docker buildx build --pull --load \ 23 | --builder $(builder) \ 24 | --build-arg release=$(release) \ 25 | --build-arg patch=$(patch) \ 26 | -t supervisions/itop:3.0 \ 27 | -t supervisions/itop:$(version) \ 28 | -t supervisions/itop:$(release) . 29 | 30 | push: setup_builder 31 | # Build and push all supported platforms 32 | docker buildx build --pull --push \ 33 | --builder $(builder) \ 34 | --platform $(platforms) \ 35 | --build-arg release=$(release) \ 36 | --build-arg patch=$(patch) \ 37 | -t supervisions/itop:3.0 \ 38 | -t supervisions/itop:$(version) . 39 | -------------------------------------------------------------------------------- /3.0/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /3.0/docker-itop-entrypoint: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # first arg is `-f` or `--some-option` 5 | if [ "${1#-}" != "$1" ]; then 6 | set -- php "$@" 7 | fi 8 | 9 | # show iTop log messages in docker logs 10 | tail --pid 1 -n0 -F log/setup.log log/error.log log/deadlocks.log log/deprecated-calls.log log/tools.log > /dev/stderr & 11 | 12 | exec "$@" 13 | -------------------------------------------------------------------------------- /3.0/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /3.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.1-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | apcu \ 19 | gd \ 20 | ldap \ 21 | mcrypt \ 22 | mysqli \ 23 | soap \ 24 | zip 25 | 26 | # Load iTop files 27 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/${release}/iTop-${release}-${patch}.zip \ 28 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 29 | && mv -v /tmp/web/* /var/www/html/ \ 30 | && mkdir /var/www/html/env-production \ 31 | && chown -R www-data: /var/www/html/ \ 32 | && rm -rf /tmp/iTop.zip /tmp/web 33 | 34 | # Add default configuration 35 | COPY php.ini /usr/local/etc/php/php.ini 36 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 37 | RUN chown -R www-data: /var/www/html/conf 38 | 39 | # Add custom entrypoint 40 | COPY docker-itop-entrypoint /usr/local/bin/ 41 | ENTRYPOINT ["docker-itop-entrypoint"] 42 | CMD ["apache2-foreground"] 43 | 44 | ENV DB_HOSTNAME="db" DB_PREFIX="" 45 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 46 | -------------------------------------------------------------------------------- /3.1/Makefile: -------------------------------------------------------------------------------- 1 | version = 3.1.3 2 | release = $(version) 3 | patch = 16204 4 | builder = itop_builder 5 | platforms = linux/arm64,linux/amd64 6 | 7 | all: setup_builder load 8 | 9 | setup_builder: 10 | docker buildx inspect $(builder) > /dev/null || docker buildx create --name $(builder) --driver docker-container --platform $(platforms) --bootstrap 11 | 12 | build: setup_builder 13 | # Build all supported platforms 14 | docker buildx build --pull \ 15 | --builder $(builder) \ 16 | --platform $(platforms) \ 17 | --build-arg release=$(release) \ 18 | --build-arg patch=$(patch) . 19 | 20 | load: setup_builder 21 | # Build and load current platform 22 | docker buildx build --pull --load \ 23 | --builder $(builder) \ 24 | --build-arg release=$(release) \ 25 | --build-arg patch=$(patch) \ 26 | -t supervisions/itop:3.1 \ 27 | -t supervisions/itop:$(version) \ 28 | -t supervisions/itop:$(release) . 29 | 30 | push: setup_builder 31 | # Build and push all supported platforms 32 | docker buildx build --pull --push \ 33 | --builder $(builder) \ 34 | --platform $(platforms) \ 35 | --build-arg release=$(release) \ 36 | --build-arg patch=$(patch) \ 37 | -t supervisions/itop:3.1 \ 38 | -t supervisions/itop:$(version) . 39 | -------------------------------------------------------------------------------- /3.1/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /3.1/docker-itop-entrypoint: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # first arg is `-f` or `--some-option` 5 | if [ "${1#-}" != "$1" ]; then 6 | set -- php "$@" 7 | fi 8 | 9 | # show iTop log messages in docker logs 10 | tail --pid 1 -n0 -F log/setup.log log/error.log log/deadlocks.log log/deprecated-calls.log log/tools.log > /dev/stderr & 11 | 12 | exec "$@" 13 | -------------------------------------------------------------------------------- /3.1/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /3.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.3-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | apcu \ 19 | gd \ 20 | ldap \ 21 | mcrypt \ 22 | mysqli \ 23 | soap \ 24 | zip 25 | 26 | # Load iTop files 27 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/itop/files/itop/${release}/iTop-${release}-${patch}.zip \ 28 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 29 | && mv -v /tmp/web/* /var/www/html/ \ 30 | && mkdir /var/www/html/env-production \ 31 | && chown -R www-data: /var/www/html/ \ 32 | && rm -rf /tmp/iTop.zip /tmp/web 33 | 34 | # Add default configuration 35 | COPY php.ini /usr/local/etc/php/php.ini 36 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 37 | RUN chown -R www-data: /var/www/html/conf 38 | 39 | # Add custom entrypoint 40 | COPY docker-itop-entrypoint /usr/local/bin/ 41 | ENTRYPOINT ["docker-itop-entrypoint"] 42 | CMD ["apache2-foreground"] 43 | 44 | ENV DB_HOSTNAME="db" DB_PREFIX="" 45 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 46 | -------------------------------------------------------------------------------- /3.2/Makefile: -------------------------------------------------------------------------------- 1 | version = 3.2.1 2 | release = $(version)-1 3 | patch = 16749 4 | builder = itop_builder 5 | platforms = linux/arm64,linux/amd64 6 | 7 | all: setup_builder load 8 | 9 | setup_builder: 10 | docker buildx inspect $(builder) > /dev/null || docker buildx create --name $(builder) --driver docker-container --platform $(platforms) --bootstrap 11 | 12 | build: setup_builder 13 | # Build all supported platforms 14 | docker buildx build --pull \ 15 | --builder $(builder) \ 16 | --platform $(platforms) \ 17 | --build-arg release=$(release) \ 18 | --build-arg patch=$(patch) . 19 | 20 | load: setup_builder 21 | # Build and load current platform 22 | docker buildx build --pull --load \ 23 | --builder $(builder) \ 24 | --build-arg release=$(release) \ 25 | --build-arg patch=$(patch) \ 26 | -t supervisions/itop \ 27 | -t supervisions/itop:3.2 \ 28 | -t supervisions/itop:$(version) \ 29 | -t supervisions/itop:$(release) . 30 | 31 | push: setup_builder 32 | # Build and push all supported platforms 33 | docker buildx build --pull --push \ 34 | --builder $(builder) \ 35 | --platform $(platforms) \ 36 | --build-arg release=$(release) \ 37 | --build-arg patch=$(patch) \ 38 | -t supervisions/itop \ 39 | -t supervisions/itop:3.2 \ 40 | -t supervisions/itop:$(version) . 41 | -------------------------------------------------------------------------------- /3.2/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /3.2/docker-itop-entrypoint: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # first arg is `-f` or `--some-option` 5 | if [ "${1#-}" != "$1" ]; then 6 | set -- php "$@" 7 | fi 8 | 9 | # show iTop log messages in docker logs 10 | tail --pid 1 -n0 -F log/setup.log log/error.log log/deadlocks.log log/deprecated-calls.log log/tools.log > /dev/stderr & 11 | 12 | exec "$@" 13 | -------------------------------------------------------------------------------- /3.2/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /Essential/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.1-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | apcu \ 19 | gd \ 20 | imap \ 21 | ldap \ 22 | mcrypt \ 23 | mysqli \ 24 | soap \ 25 | zip 26 | 27 | # Load iTop files 28 | COPY ["files/iTop Essential-${release}-${patch}.zip", "/tmp/iTop.zip"] 29 | RUN unzip /tmp/iTop.zip -d /tmp/ web/* \ 30 | && mv -v /tmp/web/* /var/www/html/ \ 31 | && mkdir /var/www/html/env-production \ 32 | && chown -R www-data: /var/www/html/ \ 33 | && rm -rf /tmp/iTop.zip /tmp/web 34 | 35 | # Add default configuration 36 | COPY php.ini /usr/local/etc/php/php.ini 37 | 38 | # Add custom entrypoint 39 | COPY docker-itop-entrypoint /usr/local/bin/ 40 | ENTRYPOINT ["docker-itop-entrypoint"] 41 | CMD ["apache2-foreground"] 42 | 43 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 44 | -------------------------------------------------------------------------------- /Essential/Makefile: -------------------------------------------------------------------------------- 1 | version = 3.1.0 2 | release = $(version)-2 3 | patch = 11972 4 | 5 | all: build package 6 | 7 | build: 8 | docker build --pull \ 9 | --build-arg release=$(release) \ 10 | --build-arg patch=$(patch) \ 11 | -t itop-essential:latest \ 12 | -t itop-essential:$(version) . 13 | 14 | package: 15 | docker save itop-essential | gzip > files/iTop-essential-docker.tar.gz 16 | 17 | load: 18 | gunzip -c files/iTop-essential-docker.tar.gz | docker load 19 | -------------------------------------------------------------------------------- /Essential/docker-itop-entrypoint: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # first arg is `-f` or `--some-option` 5 | if [ "${1#-}" != "$1" ]; then 6 | set -- php "$@" 7 | fi 8 | 9 | # show iTop log messages in docker logs 10 | tail -F log/setup.log log/error.log log/deadlocks.log log/deprecated-calls.log log/tools.log log/itop-fence.log > /dev/stderr & 11 | 12 | exec "$@" 13 | -------------------------------------------------------------------------------- /Essential/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /Professional/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.3-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | apcu \ 19 | gd \ 20 | imap \ 21 | ldap \ 22 | mcrypt \ 23 | mysqli \ 24 | soap \ 25 | zip 26 | 27 | # Load iTop files 28 | COPY ["files/iTop Professional-${release}-${patch}.zip", "/tmp/iTop.zip"] 29 | RUN unzip /tmp/iTop.zip -d /tmp/ web/* \ 30 | && mv -v /tmp/web/* /var/www/html/ \ 31 | && mkdir /var/www/html/env-production \ 32 | && chown -R www-data: /var/www/html/ \ 33 | && rm -rf /tmp/iTop.zip /tmp/web 34 | 35 | # Add default configuration 36 | COPY php.ini /usr/local/etc/php/php.ini 37 | 38 | # Add custom entrypoint 39 | COPY docker-itop-entrypoint /usr/local/bin/ 40 | ENTRYPOINT ["docker-itop-entrypoint"] 41 | CMD ["apache2-foreground"] 42 | 43 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 44 | -------------------------------------------------------------------------------- /Professional/Makefile: -------------------------------------------------------------------------------- 1 | version = 3.2.1 2 | release = $(version)-1 3 | patch = 16801 4 | 5 | all: build package 6 | 7 | build: 8 | docker build --pull \ 9 | --build-arg release=$(release) \ 10 | --build-arg patch=$(patch) \ 11 | -t itop-professional:latest \ 12 | -t itop-professional:$(version) . 13 | 14 | package: 15 | docker save itop-professional | gzip > files/iTop-professional-docker.tar.gz 16 | 17 | load: 18 | gunzip -c files/iTop-professional-docker.tar.gz | docker load 19 | -------------------------------------------------------------------------------- /Professional/docker-itop-entrypoint: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # first arg is `-f` or `--some-option` 5 | if [ "${1#-}" != "$1" ]; then 6 | set -- php "$@" 7 | fi 8 | 9 | # show iTop log messages in docker logs 10 | tail -F log/setup.log log/error.log log/deadlocks.log log/deprecated-calls.log log/tools.log log/itop-fence.log > /dev/stderr & 11 | 12 | exec "$@" 13 | -------------------------------------------------------------------------------- /Professional/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # iTop 2 | 3 | Run [iTop](https://www.itophub.io) in a Docker container based on the [php:apache](https://hub.docker.com/_/php/) image. 4 | 5 | [![Docker Pulls](https://img.shields.io/docker/pulls/supervisions/itop) ![Docker Stars](https://img.shields.io/docker/stars/supervisions/itop) ![Docker Image Size](https://img.shields.io/docker/image-size/supervisions/itop/latest)](https://hub.docker.com/r/supervisions/itop) 6 | 7 | ## Usage 8 | 9 | Run the latest version (see tags for other iTop versions) container named **my-itop**: 10 | 11 | ```shell 12 | docker run -d -p 80:80 --name=my-itop supervisions/itop:latest 13 | ``` 14 | 15 | Then go to [http://localhost/setup](http://localhost/setup) to continue the installation. 16 | The setup can be preloaded with database credentials by linking to a MySQL/MariaDB container or by providing environment variables. 17 | Note that you will need to select _Install a new iTop_ on the second page. 18 | 19 | ### Link with MySQL or MariaDB container 20 | 21 | This methods works with both [MySQL](https://hub.docker.com/_/mysql/) or [MariaDB](https://hub.docker.com/_/mariadb/) containers. 22 | For example, create this MariaDB instance named **my-itop-db**: 23 | 24 | ```shell 25 | docker run -d --name=my-itop-db -e MYSQL_DATABASE=itop -e MYSQL_USER=itop -e MYSQL_PASSWORD=itop -e MYSQL_RANDOM_ROOT_PASSWORD=yes mariadb 26 | ``` 27 | 28 | The link needs to be called **db** in order to gain profit of it: 29 | 30 | ```shell 31 | docker run -d -p 80:80 --link=my-itop-db:db --name=my-itop supervisions/itop:latest 32 | ``` 33 | 34 | ### Scheduling cron.php 35 | 36 | In order to operate properly, iTop maintenance operations and asynchronous tasks must be executed on a regular basis. 37 | In order to ease the installation, all the background tasks have been grouped to be launched from a single file. 38 | The command to run this from your sheduler looks like this: 39 | 40 | ```shell 41 | docker exec my-itop php webservices/cron.php --auth_user= --auth_pwd= 42 | ``` 43 | 44 | If you don't want these credentials to be present in your sheduler, you can create a file `/etc/itop/cron.params` based on the file `webservices/cron.distrb` which can be used as a template. 45 | The command to run from your sheduler then becomes this: 46 | 47 | ```shell 48 | docker exec my-itop php webservices/cron.php --param_file=/etc/itop/cron.params 49 | ``` 50 | 51 | ## Tags 52 | 53 | * `3.2.1`, `3.2`, `latest` 54 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_2_0:release:change_log#section3211) 55 | * `3.1.3`, `3.1` 56 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_1_0:release:change_log#section313) 57 | * `2.7.12`, `2.7` 58 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section2712) 59 | * `3.1.2` 60 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_1_0:release:change_log#section312) 61 | * `2.7.11` 62 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section2711) 63 | * `3.2.0` 64 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_2_0:release:change_log#section320) 65 | * `3.0.4`, `3.0` 66 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_0_0:release:change_log#section304) 67 | * `2.7.10` 68 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section2710) 69 | * `3.1.1` 70 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_1_0:release:change_log#section311) 71 | * `2.7.9` 72 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section279) 73 | * `3.1.0` 74 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_1_0:release:change_log#section310) 75 | * `3.0.3` 76 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_0_0:release:change_log#section303) 77 | * `2.7.8` 78 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section278) 79 | * `3.0.2` 80 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_0_0:release:change_log#section302) 81 | * `2.7.7` 82 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section277) 83 | * `3.0.1` 84 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_0_0:release:change_log#section301) 85 | * `3.0.0` 86 | [(Changelog)](https://www.itophub.io/wiki/page?id=3_0_0:release:change_log#section300) 87 | * `2.7.6` 88 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section276) 89 | * `2.7.5` 90 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section275) 91 | * `2.7.4` 92 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section274) 93 | * `2.7.3` 94 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section273) 95 | * `2.7.2` 96 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section272) 97 | * `2.7.1` 98 | [(Readme)](https://github.com/Combodo/iTop/blob/2.7.1/README.md) 99 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section271) 100 | * `2.7.0` 101 | [(Readme)](https://github.com/Combodo/iTop/blob/2.7.0-2/README.md) 102 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_7_0:release:change_log#section270) 103 | * `2.6.3`, `2.6` 104 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_6_0:release:change_log#section263) 105 | * `2.6.1` 106 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_6_0:release:change_log#section261) 107 | * `2.6.0` 108 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_6_0:release:change_log#section260) 109 | * `2.5.1`, `2.5` 110 | [(Readme)](https://github.com/Combodo/iTop/blob/2.5.1/readme.txt) 111 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_5_0:release:change_log#section251) 112 | * `2.5.0` 113 | [(Readme)](https://github.com/Combodo/iTop/blob/2.5.0/readme.txt) 114 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_5_0:release:change_log#section250) 115 | * `2.4.3`, `2.4` 116 | [(Readme)](https://github.com/Combodo/iTop/blob/2.4.3/readme.txt) 117 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_4_0:release:change_log#section243) 118 | * `2.4.1` 119 | [(Readme)](https://github.com/Combodo/iTop/blob/2.4.1/readme.txt) 120 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_4_0:release:change_log#section241) 121 | * `2.4.0` 122 | [(Readme)](https://github.com/Combodo/iTop/blob/2.4.0/readme.txt) 123 | [(Changelog)](https://www.itophub.io/wiki/page?id=2_4_0:release:change_log#section240) 124 | * `2.3.4`, `2.3` [(Readme)](https://github.com/Combodo/iTop/blob/2.3.4/readme.txt) 125 | * `2.3.3` [(Readme)](https://github.com/Combodo/iTop/blob/2.3.3/readme.txt) 126 | -------------------------------------------------------------------------------- /TeemIp/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.1-apache 2 | 3 | # Load version info from arguments 4 | ARG release 5 | ARG patch 6 | 7 | # Add helper script 8 | COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/ 9 | 10 | # Install extra packages 11 | # hadolint ignore=DL3008,DL3009 12 | RUN apt-get update \ 13 | && apt-get install -y --no-install-recommends \ 14 | graphviz \ 15 | mariadb-client \ 16 | unzip \ 17 | && install-php-extensions \ 18 | apcu \ 19 | gd \ 20 | ldap \ 21 | mcrypt \ 22 | mysqli \ 23 | soap \ 24 | zip 25 | 26 | # Load iTop files 27 | RUN curl -L -o /tmp/iTop.zip https://sourceforge.net/projects/teemip/files/teemip%20-%20a%20standalone%20application/${release}/TeemIP-${release}-${patch}.zip \ 28 | && unzip /tmp/iTop.zip -d /tmp/ web/* \ 29 | && mv -v /tmp/web/* /var/www/html/ \ 30 | && mkdir /var/www/html/env-production \ 31 | && chown -R www-data: /var/www/html/ \ 32 | && rm -rf /tmp/iTop.zip /tmp/web 33 | 34 | # Add default configuration 35 | COPY php.ini /usr/local/etc/php/php.ini 36 | COPY config-itop.php /var/www/html/conf/production/config-itop.php 37 | RUN chown -R www-data: /var/www/html/conf 38 | 39 | # Add custom entrypoint 40 | COPY docker-itop-entrypoint /usr/local/bin/ 41 | ENTRYPOINT ["docker-itop-entrypoint"] 42 | CMD ["apache2-foreground"] 43 | 44 | ENV DB_HOSTNAME="db" DB_PREFIX="" 45 | VOLUME ["/var/www/html/conf", "/var/www/html/data", "/var/www/html/env-production", "/var/www/html/log"] 46 | -------------------------------------------------------------------------------- /TeemIp/Makefile: -------------------------------------------------------------------------------- 1 | version = 3.2.0 2 | release = $(version) 3 | patch = 2408 4 | builder = itop_builder 5 | platforms = linux/arm64,linux/amd64 6 | 7 | all: setup_builder load 8 | 9 | setup_builder: 10 | docker buildx inspect $(builder) > /dev/null || docker buildx create --name $(builder) --driver docker-container --platform $(platforms) --bootstrap 11 | 12 | build: setup_builder 13 | # Build all supported platforms 14 | docker buildx build --pull \ 15 | --builder $(builder) \ 16 | --platform $(platforms) \ 17 | --build-arg release=$(release) \ 18 | --build-arg patch=$(patch) . 19 | 20 | load: setup_builder 21 | # Build and load current platform 22 | docker buildx build --pull --load \ 23 | --builder $(builder) \ 24 | --build-arg release=$(release) \ 25 | --build-arg patch=$(patch) \ 26 | -t supervisions/teemip \ 27 | -t supervisions/teemip:3.2 \ 28 | -t supervisions/teemip:$(version) \ 29 | -t supervisions/teemip:$(release) . 30 | 31 | push: setup_builder 32 | # Build and push all supported platforms 33 | docker buildx build --pull --push \ 34 | --builder $(builder) \ 35 | --platform $(platforms) \ 36 | --build-arg release=$(release) \ 37 | --build-arg patch=$(patch) \ 38 | -t supervisions/teemip \ 39 | -t supervisions/teemip:3.2 \ 40 | -t supervisions/teemip:$(version) . 41 | -------------------------------------------------------------------------------- /TeemIp/config-itop.php: -------------------------------------------------------------------------------- 1 | $_ENV['DB_HOSTNAME'], 5 | 'db_name' => $_ENV['DB_ENV_MYSQL_DATABASE'], 6 | 'db_user' => $_ENV['DB_ENV_MYSQL_USER'], 7 | 'db_pwd' => $_ENV['DB_ENV_MYSQL_PASSWORD'], 8 | 'db_subname' => $_ENV['DB_PREFIX'], 9 | ); 10 | 11 | $MyModuleSettings = array(); 12 | $MyModules = array('addons' => array()); 13 | -------------------------------------------------------------------------------- /TeemIp/docker-itop-entrypoint: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # first arg is `-f` or `--some-option` 5 | if [ "${1#-}" != "$1" ]; then 6 | set -- php "$@" 7 | fi 8 | 9 | # show iTop log messages in docker logs 10 | tail --pid 1 -n0 -F log/setup.log log/error.log log/deadlocks.log log/deprecated-calls.log log/tools.log > /dev/stderr & 11 | 12 | exec "$@" 13 | -------------------------------------------------------------------------------- /TeemIp/php.ini: -------------------------------------------------------------------------------- 1 | [Core] 2 | ; iTop recommended value 3 | memory_limit = 256M 4 | ; iTop security best practice 5 | zend.exception_ignore_args = true 6 | 7 | [Session] 8 | ; iTop wants save_path to be set 9 | session.save_path = "/tmp" 10 | ; iTop security best practices 11 | session.cookie_httponly = true 12 | session.cookie_samesite = "Lax" 13 | -------------------------------------------------------------------------------- /helm-chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v2 3 | name: itop-chart 4 | description: iTop Helm chart 5 | 6 | # A chart can be either an 'application' or a 'library' chart. 7 | # 8 | # Application charts are a collection of templates that can be packaged into 9 | # versioned archives to be deployed. 10 | # 11 | # Library charts provide useful utilities or functions for the chart developer. 12 | # They're included as a dependency of application charts to inject those 13 | # utilities and functions into the rendering pipeline. Library charts do not 14 | # define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should be incremented each 18 | # time you make changes to the chart and its templates, including the app 19 | # version. Versions are expected to follow Semantic Versioning. 20 | version: 0.2.0 21 | 22 | # This is the version number of the application being deployed. This version 23 | # number should be incremented each time you make changes to the application. 24 | # Versions are not expected to follow Semantic Versioning. They should reflect 25 | # the version the application is using. It is recommended to use it with quotes. 26 | appVersion: "3.2" 27 | -------------------------------------------------------------------------------- /helm-chart/README.md: -------------------------------------------------------------------------------- 1 | # HELM Chart 2 | 3 | This is a helm chart used to easily deploy iTop to a K8S cluster using [HELM](https://helm.sh/). 4 | 5 | ## Volumes 6 | 7 | In order for iTop to support being upgraded and being restarted, pvc are automatically created. 8 | 9 | You can check the [template](./templates/pvc.yaml) for more info. 10 | 11 | The folders that are saved are specified in the [deployment.yaml](./templates/deployment.yaml) file : 12 | 13 | ```yaml 14 | volumeMounts: 15 | - mountPath: "/var/www/html/data" 16 | name: itop-data-pv 17 | - mountPath: "/var/www/html/env-production" 18 | name: itop-env-pv 19 | - mountPath: "/var/www/html/log" 20 | name: itop-log-pv 21 | - mountPath: "/var/www/html/conf" 22 | name: itop-conf-pv 23 | ``` 24 | 25 | ## Values.yaml 26 | 27 | You can edit the values.yaml file directly or use the set directive with the helm cli tool. 28 | 29 | ```yaml 30 | image: 31 | repository: supervisions/itop 32 | pullPolicy: Always 33 | tag: 3.0 34 | ``` 35 | 36 | There also the environnement variables that are: 37 | 38 | ```yaml 39 | environment: 40 | db_host: "mysql-chart.database.svc.cluster.local" 41 | db_name: 42 | db_pwd: 43 | db_user: 44 | ``` 45 | 46 | ## Pod security 47 | 48 | In order to allow the iTop service to access the files on the system, adding specific security context for the pod was needed, those can be found in the deployment.yaml file 49 | 50 | ```yaml 51 | securityContext: 52 | runAsUser: 1000 53 | runAsGroup: 3000 54 | fsGroup: 2000 55 | ``` 56 | 57 | If you want to know more about the do and don't i invite you to read the k8s documentation [here](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) 58 | 59 | ## Adding your own config-itop.php 60 | 61 | You can create a configmap and add it to the pod deployment in order to have the config-itop.php file added before installing iTop. 62 | 63 | This is not recommended. 64 | 65 | ## What is not added 66 | 67 | A MySQL/MariaDB chart link in order to also have a db deployed to go with the iTop instance. 68 | -------------------------------------------------------------------------------- /helm-chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | 1. Get your iTop URL by running these commands: 2 | {{- if .Values.ingress.enabled }} 3 | {{- range $host := .Values.ingress.hosts }} 4 | {{- range .paths }} 5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} 6 | {{- end }} 7 | {{- end }} 8 | {{- else if contains "NodePort" .Values.service.type }} 9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "itop-chart.fullname" . }}) 10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") 11 | echo http://$NODE_IP:$NODE_PORT 12 | {{- else if contains "LoadBalancer" .Values.service.type }} 13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. 14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "itop-chart.fullname" . }}' 15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "itop-chart.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") 16 | echo http://$SERVICE_IP:{{ .Values.service.port }} 17 | {{- else if contains "ClusterIP" .Values.service.type }} 18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "itop-chart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") 19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") 20 | echo "Visit http://127.0.0.1:8080 to use your application" 21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /helm-chart/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "itop-chart.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 11 | If release name contains chart name it will be used as a full name. 12 | */}} 13 | {{- define "itop-chart.fullname" -}} 14 | {{- if .Values.fullnameOverride }} 15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 | {{- else }} 17 | {{- $name := default .Chart.Name .Values.nameOverride }} 18 | {{- if contains $name .Release.Name }} 19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 | {{- else }} 21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 | {{- end }} 23 | {{- end }} 24 | {{- end }} 25 | 26 | {{/* 27 | Create chart name and version as used by the chart label. 28 | */}} 29 | {{- define "itop-chart.chart" -}} 30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 | {{- end }} 32 | 33 | {{/* 34 | Common labels 35 | */}} 36 | {{- define "itop-chart.labels" -}} 37 | helm.sh/chart: {{ include "itop-chart.chart" . }} 38 | {{ include "itop-chart.selectorLabels" . }} 39 | {{- if .Chart.AppVersion }} 40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 | {{- end }} 42 | app.kubernetes.io/managed-by: {{ .Release.Service }} 43 | {{- end }} 44 | 45 | {{/* 46 | Selector labels 47 | */}} 48 | {{- define "itop-chart.selectorLabels" -}} 49 | app.kubernetes.io/name: {{ include "itop-chart.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | {{- end }} 52 | 53 | {{/* 54 | Create the name of the service account to use 55 | */}} 56 | {{- define "itop-chart.serviceAccountName" -}} 57 | {{- if .Values.serviceAccount.create }} 58 | {{- default (include "itop-chart.fullname" .) .Values.serviceAccount.name }} 59 | {{- else }} 60 | {{- default "default" .Values.serviceAccount.name }} 61 | {{- end }} 62 | {{- end }} 63 | -------------------------------------------------------------------------------- /helm-chart/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "itop-chart.fullname" . }} 5 | labels: 6 | {{- include "itop-chart.labels" . | nindent 4 }} 7 | spec: 8 | {{- if not .Values.autoscaling.enabled }} 9 | replicas: {{ .Values.replicaCount }} 10 | {{- end }} 11 | {{- if eq .Values.pvc.accessMode "ReadWriteOnce" }} 12 | strategy: 13 | type: Recreate 14 | {{- end }} 15 | selector: 16 | matchLabels: 17 | {{- include "itop-chart.selectorLabels" . | nindent 6 }} 18 | template: 19 | metadata: 20 | {{- with .Values.podAnnotations }} 21 | annotations: 22 | {{- toYaml . | nindent 8 }} 23 | {{- end }} 24 | labels: 25 | {{- include "itop-chart.selectorLabels" . | nindent 8 }} 26 | spec: 27 | {{- with .Values.imagePullSecrets }} 28 | imagePullSecrets: 29 | {{- toYaml . | nindent 8 }} 30 | {{- end }} 31 | serviceAccountName: {{ include "itop-chart.serviceAccountName" . }} 32 | securityContext: 33 | fsGroup: 33 34 | volumes: 35 | - name: itop-conf-pv 36 | persistentVolumeClaim: 37 | claimName: itop-conf-pvc 38 | - name: itop-data-pv 39 | persistentVolumeClaim: 40 | claimName: itop-data-pvc 41 | - name: itop-env-pv 42 | persistentVolumeClaim: 43 | claimName: itop-env-pvc 44 | - name: itop-log-pv 45 | persistentVolumeClaim: 46 | claimName: itop-log-pvc 47 | containers: 48 | - name: {{ .Chart.Name }} 49 | securityContext: 50 | {{- toYaml .Values.securityContext | nindent 12 }} 51 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" 52 | imagePullPolicy: {{ .Values.image.pullPolicy }} 53 | volumeMounts: 54 | - mountPath: "/var/www/html/data" 55 | name: itop-data-pv 56 | - mountPath: "/var/www/html/env-production" 57 | name: itop-env-pv 58 | - mountPath: "/var/www/html/log" 59 | name: itop-log-pv 60 | - mountPath: "/var/www/html/conf" 61 | name: itop-conf-pv 62 | env: 63 | - name: "DB_ENV_MYSQL_DATABASE" 64 | value: {{ .Values.environment.db_name}} 65 | - name: "DB_HOSTNAME" 66 | value: {{ .Values.environment.db_host}} 67 | - name: "DB_ENV_MYSQL_USER" 68 | value: {{ .Values.environment.db_user}} 69 | - name: "DB_ENV_MYSQL_PASSWORD" 70 | value: {{ .Values.environment.db_pwd}} 71 | ports: 72 | - name: http 73 | containerPort: {{ .Values.container.port }} 74 | protocol: TCP 75 | livenessProbe: 76 | httpGet: 77 | path: /webservices/status.php 78 | port: http 79 | readinessProbe: 80 | httpGet: 81 | path: /webservices/status.php 82 | port: http 83 | resources: 84 | {{- toYaml .Values.resources | nindent 12 }} 85 | {{- with .Values.nodeSelector }} 86 | nodeSelector: 87 | {{- toYaml . | nindent 8 }} 88 | {{- end }} 89 | {{- with .Values.affinity }} 90 | affinity: 91 | {{- toYaml . | nindent 8 }} 92 | {{- end }} 93 | {{- with .Values.tolerations }} 94 | tolerations: 95 | {{- toYaml . | nindent 8 }} 96 | {{- end }} 97 | -------------------------------------------------------------------------------- /helm-chart/templates/hpa.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.autoscaling.enabled }} 2 | apiVersion: autoscaling/v2beta1 3 | kind: HorizontalPodAutoscaler 4 | metadata: 5 | name: {{ include "itop-chart.fullname" . }} 6 | labels: 7 | {{- include "itop-chart.labels" . | nindent 4 }} 8 | spec: 9 | scaleTargetRef: 10 | apiVersion: apps/v1 11 | kind: Deployment 12 | name: {{ include "itop-chart.fullname" . }} 13 | minReplicas: {{ .Values.autoscaling.minReplicas }} 14 | maxReplicas: {{ .Values.autoscaling.maxReplicas }} 15 | metrics: 16 | {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} 17 | - type: Resource 18 | resource: 19 | name: cpu 20 | targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} 21 | {{- end }} 22 | {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} 23 | - type: Resource 24 | resource: 25 | name: memory 26 | targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} 27 | {{- end }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /helm-chart/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "itop-chart.fullname" . -}} 3 | {{- $svcPort := .Values.service.port -}} 4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} 5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} 6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} 7 | {{- end }} 8 | {{- end }} 9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 10 | apiVersion: networking.k8s.io/v1 11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 12 | apiVersion: networking.k8s.io/v1beta1 13 | {{- else -}} 14 | apiVersion: extensions/v1beta1 15 | {{- end }} 16 | kind: Ingress 17 | metadata: 18 | name: {{ $fullName }} 19 | labels: 20 | {{- include "itop-chart.labels" . | nindent 4 }} 21 | {{- with .Values.ingress.annotations }} 22 | annotations: 23 | {{- toYaml . | nindent 4 }} 24 | {{- end }} 25 | spec: 26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 27 | ingressClassName: {{ .Values.ingress.className }} 28 | {{- end }} 29 | {{- if .Values.ingress.tls }} 30 | tls: 31 | {{- range .Values.ingress.tls }} 32 | - hosts: 33 | {{- range .hosts }} 34 | - {{ . | quote }} 35 | {{- end }} 36 | secretName: {{ .secretName }} 37 | {{- end }} 38 | {{- end }} 39 | rules: 40 | {{- range .Values.ingress.hosts }} 41 | - host: {{ .host | quote }} 42 | http: 43 | paths: 44 | {{- range .paths }} 45 | - path: {{ .path }} 46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 47 | pathType: {{ .pathType }} 48 | {{- end }} 49 | backend: 50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 51 | service: 52 | name: {{ $fullName }} 53 | port: 54 | number: {{ $svcPort }} 55 | {{- else }} 56 | serviceName: {{ $fullName }} 57 | servicePort: {{ $svcPort }} 58 | {{- end }} 59 | {{- end }} 60 | {{- end }} 61 | {{- end }} 62 | -------------------------------------------------------------------------------- /helm-chart/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: itop-conf-pvc 5 | spec: 6 | accessModes: 7 | - {{ .Values.pvc.accessMode }} 8 | storageClassName: {{ .Values.pvc.storageClassName }} 9 | resources: 10 | requests: 11 | storage: {{ .Values.pvc.conf.size }} 12 | --- 13 | apiVersion: v1 14 | kind: PersistentVolumeClaim 15 | metadata: 16 | name: itop-data-pvc 17 | spec: 18 | accessModes: 19 | - {{ .Values.pvc.accessMode }} 20 | storageClassName: {{ .Values.pvc.storageClassName }} 21 | resources: 22 | requests: 23 | storage: {{ .Values.pvc.data.size }} 24 | --- 25 | apiVersion: v1 26 | kind: PersistentVolumeClaim 27 | metadata: 28 | name: itop-env-pvc 29 | spec: 30 | accessModes: 31 | - {{ .Values.pvc.accessMode }} 32 | storageClassName: {{ .Values.pvc.storageClassName }} 33 | resources: 34 | requests: 35 | storage: {{ .Values.pvc.env.size }} 36 | --- 37 | apiVersion: v1 38 | kind: PersistentVolumeClaim 39 | metadata: 40 | name: itop-log-pvc 41 | spec: 42 | accessModes: 43 | - {{ .Values.pvc.accessMode }} 44 | storageClassName: {{ .Values.pvc.storageClassName }} 45 | resources: 46 | requests: 47 | storage: {{ .Values.pvc.log.size }} 48 | -------------------------------------------------------------------------------- /helm-chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "itop-chart.fullname" . }} 5 | labels: 6 | {{- include "itop-chart.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - port: {{ .Values.service.port }} 11 | targetPort: {{ .Values.service.targetPort }} 12 | protocol: TCP 13 | name: http 14 | selector: 15 | {{- include "itop-chart.selectorLabels" . | nindent 4 }} 16 | -------------------------------------------------------------------------------- /helm-chart/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "itop-chart.serviceAccountName" . }} 6 | labels: 7 | {{- include "itop-chart.labels" . | nindent 4 }} 8 | {{- with .Values.serviceAccount.annotations }} 9 | annotations: 10 | {{- toYaml . | nindent 4 }} 11 | {{- end }} 12 | {{- end }} 13 | -------------------------------------------------------------------------------- /helm-chart/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "itop-chart.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "itop-chart.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "itop-chart.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /helm-chart/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for itop-chart. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | --- 5 | replicaCount: 1 6 | 7 | image: 8 | repository: supervisions/itop 9 | pullPolicy: Always 10 | tag: 3.2 11 | 12 | environment: 13 | db_host: "mysql-chart.database.svc.cluster.local" 14 | db_name: 15 | db_pwd: 16 | db_user: 17 | 18 | imagePullSecrets: [] 19 | nameOverride: "" 20 | fullnameOverride: "" 21 | 22 | serviceAccount: 23 | # Specifies whether a service account should be created 24 | create: true 25 | # Annotations to add to the service account 26 | annotations: {} 27 | # The name of the service account to use. If not set and create is true, 28 | # a name is generated using the fullname template 29 | name: "" 30 | 31 | container: 32 | port: 80 33 | podAnnotations: {} 34 | 35 | podSecurityContext: {} 36 | # fsGroup: 2000 37 | 38 | securityContext: {} 39 | # capabilities: 40 | # drop: 41 | # - ALL 42 | # readOnlyRootFilesystem: true 43 | # runAsNonRoot: true 44 | # runAsUser: 1000 45 | 46 | pvc: 47 | accessMode: ReadWriteOnce 48 | storageClassName: standard 49 | conf: 50 | size: 1Gi 51 | data: 52 | size: 10Gi 53 | env: 54 | size: 1Gi 55 | log: 56 | size: 1Gi 57 | 58 | service: 59 | type: ClusterIP 60 | port: 80 61 | targetPort: 80 62 | 63 | ingress: 64 | enabled: true 65 | className: "" 66 | annotations: 67 | traefik.ingress.kubernetes.io/router.tls: "true" 68 | # kubernetes.io/ingress.class: nginx 69 | # kubernetes.io/tls-acme: "true" 70 | hosts: 71 | - host: itop. 72 | paths: 73 | - path: / 74 | pathType: ImplementationSpecific 75 | # uncomment tls and add your secret name if you want to add https to your 76 | # iTop installation 77 | # tls: 78 | # - secretName: itop-cert 79 | # hosts: 80 | # - itop. 81 | # - secretName: chart-example-tls 82 | # hosts: 83 | # - chart-example.local 84 | 85 | resources: {} 86 | # We usually recommend not to specify default resources and to leave this as 87 | # a conscious choice for the user. This also increases chances charts run on 88 | # environments with little resources, such as Minikube. If you do want to 89 | # specify resources, uncomment the following lines, adjust them as necessary, 90 | # and remove the curly braces after `resources:`. 91 | # limits: 92 | # cpu: 100m 93 | # memory: 128Mi 94 | # requests: 95 | # cpu: 100m 96 | # memory: 128Mi 97 | 98 | autoscaling: 99 | enabled: false 100 | minReplicas: 1 101 | maxReplicas: 100 102 | targetCPUUtilizationPercentage: 80 103 | # targetMemoryUtilizationPercentage: 80 104 | 105 | nodeSelector: {} 106 | 107 | tolerations: [] 108 | 109 | affinity: {} 110 | --------------------------------------------------------------------------------