parent
b332aa9096
commit
7bfd4ac98e
@ -0,0 +1,62 @@
|
||||
release/
|
||||
|
||||
# ---> Python
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
@ -0,0 +1,317 @@
|
||||
FROM docker.io/php:7.4-fpm-alpine3.16
|
||||
|
||||
LABEL "co.com.sapian.vendor"="Sapian SAS"
|
||||
|
||||
#cc_005_all_rpm_update.sh
|
||||
RUN apk update && apk upgrade
|
||||
|
||||
#cc_101_all_config_os.sh
|
||||
RUN mkdir -p /home/backup/misc \
|
||||
&& mkdir -p /usr/share/astguiclient \
|
||||
&& mkdir -p /var/log/astguiclient \
|
||||
&& mkdir -p /var/lib/asterisk/ \
|
||||
&& mkdir -p /var/lib/asterisk/agi-bin \
|
||||
&& mkdir -p /var/lib/asterisk/sounds \
|
||||
&& mkdir -p /var/spool/asterisk/monitor \
|
||||
&& mkdir -p /usr/src/astguiclient
|
||||
|
||||
#cc_107_all_rpm_repo_epel.sh
|
||||
RUN apk add --no-cache --update-cache \
|
||||
curl \
|
||||
ca-certificates \
|
||||
alpine-sdk \
|
||||
musl-dev \
|
||||
musl-obstack-dev \
|
||||
perl-dev \
|
||||
perl-doc \
|
||||
readline-dev \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
|
||||
##cc_109_all_rpm_install.sh perl part 1 A-E
|
||||
RUN apk add --no-cache --update \
|
||||
perl-algorithm-diff \
|
||||
perl-app-cpanminus \
|
||||
#perl-archive-tar \
|
||||
perl-archive-zip \
|
||||
perl-b-hooks-endofscope \
|
||||
#perl-bsd-resource \
|
||||
perl-cache-cache \
|
||||
perl-class-load \
|
||||
perl-class-load-xs \
|
||||
perl-class-mix \
|
||||
perl-compress-raw-zlib \
|
||||
#perl-config-crontab \
|
||||
perl-crypt-des \
|
||||
perl-crypt-eksblowfish \
|
||||
perl-crypt-rc4 \
|
||||
perl-curses \
|
||||
perl-dbd-mysql \
|
||||
perl-dbi \
|
||||
perl-data-dump \
|
||||
perl-data-optlist \
|
||||
perl-date-manip \
|
||||
perl-devel-globaldestruction \
|
||||
perl-devel-stacktrace \
|
||||
perl-digest-hmac \
|
||||
perl-digest-perl-md5 \
|
||||
perl-digest-sha3 \
|
||||
perl-digest-sha1 \
|
||||
perl-dist-checkconflicts \
|
||||
perl-encode-locale \
|
||||
perl-error \
|
||||
perl-eval-closure
|
||||
#perl-extutils-cbuilder
|
||||
|
||||
##cc_109_all_rpm_install.sh perl part 1 F-S
|
||||
RUN apk add --no-cache --update \
|
||||
#perl-file-homedir \
|
||||
perl-file-listing \
|
||||
perl-file-remove \
|
||||
perl-file-slurp \
|
||||
perl-file-temp \
|
||||
perl-file-which \
|
||||
#perl-filehandle-unget \
|
||||
perl-font-afm \
|
||||
perl-gd \
|
||||
perl-html-formattext-withlinks \
|
||||
#perl-html-format \
|
||||
perl-html-parser \
|
||||
#perl-html-strip \
|
||||
perl-html-tagset \
|
||||
perl-html-template \
|
||||
perl-html-tree \
|
||||
perl-http-cookies \
|
||||
perl-http-daemon \
|
||||
perl-http-date \
|
||||
perl-http-message \
|
||||
perl-http-negotiate \
|
||||
#perl-io-compress-base \
|
||||
perl-io-html \
|
||||
#perl-io-pty-easy \
|
||||
perl-io-socket-ssl \
|
||||
perl-io-string \
|
||||
perl-io-tty \
|
||||
perl-inline \
|
||||
#perl-jcode \
|
||||
perl-lwp-mediatypes \
|
||||
#perl-linux-pid \
|
||||
perl-list-moreutils \
|
||||
perl-mime-types \
|
||||
perl-mime-tools \
|
||||
perl-mime-base64 \
|
||||
perl-mro-compat \
|
||||
#perl-mail-box \
|
||||
perl-mail-imapclient \
|
||||
#perl-mail-mbox-messageparser \
|
||||
#perl-mail-pop3client \
|
||||
perl-mail-sendmail \
|
||||
perl-mailtools \
|
||||
perl-module-implementation \
|
||||
perl-module-install \
|
||||
perl-module-runtime \
|
||||
perl-moose \
|
||||
#perl-net-daemon \
|
||||
perl-net-http \
|
||||
#perl-net-sftp-foreign \
|
||||
perl-net-snmp \
|
||||
perl-net-ssleay \
|
||||
perl-net-server \
|
||||
perl-net-telnet \
|
||||
#perl-ole-storage-lite \
|
||||
#perl-object-realize-later \
|
||||
perl-package-deprecationmanager \
|
||||
perl-package-stash \
|
||||
perl-package-stash-xs \
|
||||
perl-params-classify \
|
||||
perl-params-util \
|
||||
perl-parse-recdescent \
|
||||
#perl-proc-processtable \
|
||||
#perl-rpc-xml \
|
||||
#perl-set-scalar \
|
||||
perl-socket6 \
|
||||
perl-spiffy \
|
||||
perl-spreadsheet-parseexcel \
|
||||
#perl-spreadsheet-read \
|
||||
#perl-spreadsheet-writeexcel \
|
||||
perl-spreadsheet-xlsx \
|
||||
perl-spreadsheet-xlsx \
|
||||
perl-sub-exporter \
|
||||
perl-sub-exporter-progressive \
|
||||
perl-sub-install \
|
||||
perl-sub-name \
|
||||
perl-switch
|
||||
|
||||
##cc_109_all_rpm_install.sh perl part 1 T-Z and a-z
|
||||
RUN apk add --no-cache --update \
|
||||
perl-task-weaken \
|
||||
#perl-term-readline-gnu \
|
||||
perl-term-readkey \
|
||||
perl-test-base \
|
||||
perl-test-nowarnings \
|
||||
perl-test-tester \
|
||||
perl-text-csv \
|
||||
perl-text-csv_xs \
|
||||
perl-text-diff \
|
||||
perl-text-glob \
|
||||
#perl-tie-ixhash \
|
||||
perl-time-hires \
|
||||
perl-time-local \
|
||||
perl-timedate \
|
||||
perl-try-tiny \
|
||||
perl-uri \
|
||||
#perl-unicode-map \
|
||||
#perl-user-identity \
|
||||
perl-variable-magic \
|
||||
#perl-www-curl \
|
||||
perl-www-robotrules \
|
||||
perl-xml-libxml \
|
||||
perl-xml-namespacesupport \
|
||||
perl-xml-parser \
|
||||
perl-xml-sax \
|
||||
perl-xml-sax-base \
|
||||
perl-xml-simple \
|
||||
perl-xml-xpath \
|
||||
perl-yaml \
|
||||
perl-yaml-tiny \
|
||||
#perl-gettext \
|
||||
#perl-libwww-perl \
|
||||
perl-namespace-clean \
|
||||
perl-rrd
|
||||
#perl-rrdtool
|
||||
|
||||
##cc_109_all_rpm_install.sh perl cpanm part 1
|
||||
RUN PREFIX='/usr/local' INSTALL_BASE='' && cpanm \
|
||||
Archive::Tar \
|
||||
BSD::Resource \
|
||||
Config::Crontab \
|
||||
ExtUtils::CBuilder \
|
||||
File::HomeDir \
|
||||
FileHandle::Unget \
|
||||
HTML::FormatText \
|
||||
HTML::Strip \
|
||||
IO::Compress::Base \
|
||||
IO::Pty::Easy \
|
||||
Jcode \
|
||||
Linux::Pid \
|
||||
Mail::Box \
|
||||
Mail::Mbox::MessageParser \
|
||||
Mail::POP3Client \
|
||||
Net::Daemon \
|
||||
Net::SFTP::Foreign \
|
||||
OLE::Storage_Lite \
|
||||
Object::Realize::Later \
|
||||
Proc::ProcessTable \
|
||||
RPC::XML \
|
||||
Set::Scalar \
|
||||
Spreadsheet::Read \
|
||||
Spreadsheet::WriteExcel \
|
||||
Term::ReadLine::Gnu \
|
||||
Tie::IxHash \
|
||||
Unicode::Map \
|
||||
User::Identity \
|
||||
# WWW::Curl \
|
||||
Gettext \
|
||||
LWP::Protocol::https
|
||||
#RRDtool
|
||||
|
||||
#cc_109_all_rpm_install.sh part 2
|
||||
RUN apk add --no-cache \
|
||||
alsa-lib \
|
||||
apr \
|
||||
apr-util \
|
||||
audiofile \
|
||||
autoconf \
|
||||
automake \
|
||||
abseil-cpp \
|
||||
curl \
|
||||
curl-dev \
|
||||
multipath-tools \
|
||||
gcc \
|
||||
glib \
|
||||
libc-dev \
|
||||
iftop \
|
||||
imake \
|
||||
linux-headers \
|
||||
#libc-client \
|
||||
libgomp \
|
||||
libidn-dev \
|
||||
libmcrypt \
|
||||
libnet \
|
||||
libogg \
|
||||
libcap \
|
||||
libpcap-dev \
|
||||
libpng-dev \
|
||||
#libtermcap-dev \
|
||||
libvorbis \
|
||||
libxml2 \
|
||||
libxml2-dev \
|
||||
libxslt \
|
||||
libx11-dev \
|
||||
libxau-dev \
|
||||
libxdmcp-dev \
|
||||
mesa-dev \
|
||||
ncurses \
|
||||
ncurses-dev \
|
||||
openssl-dev \
|
||||
pkgconf \
|
||||
py3-cairo \
|
||||
#py-gtk2 \
|
||||
#libglade \
|
||||
#py3-seaborn \
|
||||
screen \
|
||||
shared-mime-info \
|
||||
smartmontools \
|
||||
sox \
|
||||
speex \
|
||||
speex-dev \
|
||||
subversion \
|
||||
vim \
|
||||
wget \
|
||||
patch \
|
||||
mutt \
|
||||
libc6-compat \
|
||||
imagemagick \
|
||||
htop \
|
||||
iftop \
|
||||
util-linux-dev \
|
||||
sipsak \
|
||||
jansson-dev \
|
||||
git \
|
||||
restic \
|
||||
py3-pip
|
||||
|
||||
#cc_109_all_rpm_install.sh part 3
|
||||
|
||||
RUN apk add --no-cache \
|
||||
libxml2-dev \
|
||||
libjpeg-turbo-dev \
|
||||
freetype-dev \
|
||||
&& docker-php-ext-configure gd --with-jpeg --with-freetype \
|
||||
&& docker-php-ext-install \
|
||||
mysql \
|
||||
pdo_mysql \
|
||||
gd \
|
||||
imap \
|
||||
ldap \
|
||||
mbstring \
|
||||
mcrypt \
|
||||
xmlrpc \
|
||||
soap \
|
||||
pdo_odbc \
|
||||
zip
|
||||
|
||||
ARG BUILD_DATE
|
||||
ARG VCS_REF
|
||||
ARG VERSION
|
||||
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.name="vicidial-ccweb" \
|
||||
org.label-schema.description="Vicidial Docker Image ccweb Complete" \
|
||||
org.label-schema.url="https://www.sapian.cloud/vicidial-online-edition" \
|
||||
org.label-schema.vcs-url="https://git.sapian.com.co/Sapian/vicidial" \
|
||||
org.label-schema.maintainer="sebastian.rojo@sapian.com.co" \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vendor1="Vicidial" \
|
||||
org.label-schema.vendor2="Sapian" \
|
||||
org.label-schema.version=$VERSION \
|
||||
org.label-schema.vicidial-schema-version="1602"
|
@ -0,0 +1,329 @@
|
||||
FROM centos/httpd:latest
|
||||
LABEL "co.com.sapian.vendor"="Sapian SAS"
|
||||
|
||||
#cc_005_all_rpm_update.sh
|
||||
RUN yum -y update && yum clean all
|
||||
|
||||
#cc_101_all_config_os.sh
|
||||
RUN mkdir -p /home/backup/misc \
|
||||
&& mkdir -p /usr/share/astguiclient \
|
||||
&& mkdir -p /var/log/astguiclient \
|
||||
&& mkdir -p /var/lib/asterisk/ \
|
||||
&& mkdir -p /var/lib/asterisk/agi-bin \
|
||||
&& mkdir -p /var/lib/asterisk/sounds \
|
||||
&& mkdir -p /var/spool/asterisk/monitor \
|
||||
&& mkdir -p /usr/src/astguiclient
|
||||
|
||||
|
||||
#cc_107_all_rpm_repo_epel.sh
|
||||
RUN yum -y install epel-release \
|
||||
&& yum clean all
|
||||
|
||||
#cc_109_all_rpm_install.sh part 1
|
||||
RUN yum -y install \
|
||||
perl-Algorithm-Diff \
|
||||
perl-Archive-Tar \
|
||||
perl-Archive-Zip \
|
||||
perl-B-Hooks-EndOfScope \
|
||||
perl-Class-Load \
|
||||
perl-Class-Load-XS \
|
||||
perl-Class-Mix \
|
||||
perl-Config-Crontab \
|
||||
perl-Crypt-Eksblowfish \
|
||||
perl-Crypt-RC4 \
|
||||
perl-BSD-Resource \
|
||||
perl-Cache-Cache \
|
||||
perl-Compress-Raw-Zlib \
|
||||
perl-Crypt-DES \
|
||||
perl-Curses \
|
||||
perl-DBD-mysql \
|
||||
perl-Data-Dump \
|
||||
perl-DateManip \
|
||||
perl-DBI \
|
||||
perl-Data-OptList \
|
||||
perl-Date-Manip \
|
||||
perl-Devel-GlobalDestruction \
|
||||
perl-Devel-StackTrace \
|
||||
perl-DBD-MySQL \
|
||||
perl-Digest-HMAC \
|
||||
perl-Digest-Perl-MD5 \
|
||||
perl-Digest-SHA1 \
|
||||
perl-Dist-CheckConflicts \
|
||||
perl-Encode-Locale \
|
||||
perl-Error \
|
||||
perl-Eval-Closure \
|
||||
perl-File-Listing \
|
||||
perl-File-Remove \
|
||||
perl-File-Slurp \
|
||||
perl-File-Temp \
|
||||
perl-FileHandle-Unget \
|
||||
perl-Font-AFM \
|
||||
perl-GD \
|
||||
perl-HTML-Format \
|
||||
perl-Digest-SHA \
|
||||
perl-ExtUtils-CBuilder \
|
||||
perl-File-HomeDir \
|
||||
perl-File-Which \
|
||||
perl-HTML-Parser \
|
||||
perl-HTML-Strip \
|
||||
perl-HTML-Tagset \
|
||||
perl-HTML-Tree \
|
||||
perl-HTTP-Cookies \
|
||||
perl-HTTP-Daemon \
|
||||
perl-HTTP-Date \
|
||||
perl-HTTP-Message \
|
||||
perl-HTTP-Negotiate \
|
||||
perl-IO-HTML \
|
||||
perl-IO-Pty-Easy \
|
||||
perl-IO-Socket-SSL \
|
||||
perl-IO-String \
|
||||
perl-IO-Tty \
|
||||
perl-HTML-Template \
|
||||
perl-IO-Compress-Base \
|
||||
perl-IO-stringy \
|
||||
perl-Inline \
|
||||
perl-Jcode \
|
||||
perl-LWP-MediaTypes \
|
||||
perl-Linux-Pid \
|
||||
perl-List-MoreUtils \
|
||||
perl-MIME-Types \
|
||||
perl-MIME-tools \
|
||||
perl-MRO-Compat \
|
||||
perl-Mail-Box \
|
||||
perl-Mail-IMAPClient \
|
||||
perl-Mail-Mbox-MessageParser \
|
||||
perl-Mail-POP3Client \
|
||||
perl-libwww-perl \
|
||||
perl-Mail-Sendmail \
|
||||
perl-MailTools \
|
||||
perl-Module-Implementation \
|
||||
perl-Module-Runtime \
|
||||
perl-Moose \
|
||||
perl-Module-Install \
|
||||
perl-Net-Daemon \
|
||||
perl-Net-HTTP \
|
||||
perl-Net-SFTP-Foreign \
|
||||
perl-Net-SSLeay \
|
||||
perl-Net-Server \
|
||||
perl-Net-SNMP \
|
||||
perl-Net-Telnet \
|
||||
perl-OLE-Storage_Lite \
|
||||
perl-Object-Realize-Later \
|
||||
perl-Package-DeprecationManager \
|
||||
perl-Package-Stash \
|
||||
perl-Package-Stash-XS \
|
||||
perl-Params-Classify \
|
||||
perl-Params-Util \
|
||||
perl-Parse-RecDescent \
|
||||
perl-Proc-ProcessTable \
|
||||
perl-RPC-XML \
|
||||
perl-rrdtool \
|
||||
perl-Set-Scalar \
|
||||
perl-Socket6 \
|
||||
perl-Spiffy \
|
||||
perl-Spreadsheet-XLSX \
|
||||
perl-Spreadsheet-ParseExcel \
|
||||
perl-Spreadsheet-Read \
|
||||
perl-Spreadsheet-WriteExcel \
|
||||
perl-Spreadsheet-XLSX \
|
||||
perl-Sub-Exporter \
|
||||
perl-Sub-Exporter-Progressive \
|
||||
perl-Sub-Install \
|
||||
perl-Sub-Name \
|
||||
perl-Switch \
|
||||
perl-Task-Weaken \
|
||||
perl-Test-NoWarnings \
|
||||
perl-Test-Tester \
|
||||
perl-Text-CSV \
|
||||
perl-Text-CSV_XS \
|
||||
perl-Text-Diff \
|
||||
perl-Tie-IxHash \
|
||||
perl-Time-Local \
|
||||
perl-TimeDate \
|
||||
perl-Try-Tiny \
|
||||
perl-URI \
|
||||
perl-TermReadKey \
|
||||
perl-Term-ReadLine-Gnu \
|
||||
perl-Test-Base \
|
||||
perl-Text-Glob \
|
||||
perl-Unicode-Map \
|
||||
perl-User-Identity \
|
||||
perl-Variable-Magic \
|
||||
perl-WWW-Curl \
|
||||
perl-WWW-RobotRules \
|
||||
perl-XML-LibXML \
|
||||
perl-XML-NamespaceSupport \
|
||||
perl-XML-Parser \
|
||||
perl-XML-SAX \
|
||||
perl-XML-SAX-Base \
|
||||
perl-XML-Simple \
|
||||
perl-XML-XPath \
|
||||
perl-gettext \
|
||||
perl-libwww-perl \
|
||||
perl-namespace-clean \
|
||||
perl-URI \
|
||||
perl-YAML \
|
||||
perl-YAML-Tiny \
|
||||
perl-Text-CSV \
|
||||
perl-Time-HiRes \
|
||||
cpan \
|
||||
perl-App-cpanminus \
|
||||
unzip && yum clean all
|
||||
|
||||
#cc_109_all_rpm_install.sh part 2
|
||||
RUN yum -y install \
|
||||
alsa-lib \
|
||||
apr \
|
||||
apr-util \
|
||||
audiofile \
|
||||
autoconf \
|
||||
automake \
|
||||
cpp \
|
||||
curl \
|
||||
curl-devel \
|
||||
device-mapper-multipath \
|
||||
gcc \
|
||||
glib \
|
||||
glibc-devel \
|
||||
glibc-headers \
|
||||
iftop \
|
||||
imake \
|
||||
kernel-devel \
|
||||
kernel-headers \
|
||||
libc-client \
|
||||
libgomp \
|
||||
libidn-devel \
|
||||
libmcrypt \
|
||||
libnet \
|
||||
libogg \
|
||||
libcap \
|
||||
libpcap-devel \
|
||||
libpng-devel \
|
||||
libtermcap-devel \
|
||||
libvorbis \
|
||||
libxml2 \
|
||||
libxml2-devel \
|
||||
libxslt \
|
||||
libX11-devel \
|
||||
libXau-devel \
|
||||
libXdmcp-devel \
|
||||
mesa-libGL-devel \
|
||||
ncurses \
|
||||
ncurses-devel \
|
||||
openssl-devel \
|
||||
pkgconfig \
|
||||
pycairo \
|
||||
pygtk2 \
|
||||
pygtk2-libglade \
|
||||
pyorbit \
|
||||
screen \
|
||||
shared-mime-info \
|
||||
smartmontools \
|
||||
sox \
|
||||
speex \
|
||||
speex-devel \
|
||||
subversion \
|
||||
vim-enhanced \
|
||||
yum-utils \
|
||||
zlib-devel \
|
||||
gcc-c++ \
|
||||
gsm-devel \
|
||||
wget \
|
||||
patch \
|
||||
mutt \
|
||||
glibc.i686 \
|
||||
ImageMagick \
|
||||
htop \
|
||||
iftop \
|
||||
libuuid-devel \
|
||||
sipsak \
|
||||
jansson-devel \
|
||||
git \
|
||||
restic \
|
||||
python-pip \
|
||||
&& yum clean all
|
||||
|
||||
#cc_109_all_rpm_install.sh part 3
|
||||
RUN yum -y install \
|
||||
mod_ssl \
|
||||
php \
|
||||
php-cli \
|
||||
php-common \
|
||||
php-gd \
|
||||
php-imap \
|
||||
php-ldap \
|
||||
php-mbstring \
|
||||
php-mcrypt \
|
||||
php-mysql \
|
||||
php-pdo \
|
||||
php-pear \
|
||||
php-devel \
|
||||
gd-devel \
|
||||
php-odbc \
|
||||
php-xml \
|
||||
php-xmlrpc \
|
||||
sqlite-devel \
|
||||
&& yum clean all
|
||||
|
||||
RUN yum -y install \
|
||||
php-pecl-apcu \
|
||||
apcu-panel \
|
||||
php-pecl-zendopcache \
|
||||
&& yum clean all
|
||||
|
||||
RUN PREFIX='/usr/local' INSTALL_BASE='/usr/share/astguiclient/libs' cpanm Spreadsheet::Read --force
|
||||
RUN PREFIX='/usr/local' INSTALL_BASE='/usr/share/astguiclient/libs' cpanm IO::Scalar --force
|
||||
RUN PREFIX='/usr/local' INSTALL_BASE='/usr/share/astguiclient/libs' cpanm Net::Telnet --force
|
||||
RUN pip install j2cli
|
||||
|
||||
#cc_114_all_httpd_config.sh
|
||||
RUN sed -i -e 's/post_max_size =.*$/post_max_size = 256M/' /etc/php.ini \
|
||||
&& sed -i -e 's/max_execution_time =.*$/max_execution_time = 180/' /etc/php.ini \
|
||||
&& sed -i -e 's/max_input_time =.*$/max_input_time = 180/' /etc/php.ini \
|
||||
&& sed -i -e 's/upload_max_filesize =.*$/upload_max_filesize = 64M/' /etc/php.ini \
|
||||
&& sed -i -e 's/memory_limit =.*$/memory_limit = 256M/' /etc/php.ini \
|
||||
&& sed -i -e 's/^error_reporting =.*$/error_reporting = E_ALL \& ~E_DEPRECATED \& ~E_STRICT \& ~E_NOTICE/' /etc/php.ini \
|
||||
&& sed -i "s/^\;date\.timezone.*$/date\.timezone = \America\/Bogota\ /g" /etc/php.ini \
|
||||
&& sed -i -e 's/^;apc.shm_size.*$/apc.shm_size=256/' /etc/php.d/apcu.ini
|
||||
|
||||
|
||||
COPY docker/vicidial-http/conf/status.conf /etc/httpd/conf.d/
|
||||
|
||||
#cc_310_all_astguiclient_install.sh
|
||||
COPY docker/vicidial-http/conf/astguiclient.conf /etc/astguiclient.conf
|
||||
COPY docker/vicidial-http/conf/astguiclient.conf.j2 /etc/astguiclient.conf.j2
|
||||
|
||||
#cc_201_all_vicidial_svn_init.sh
|
||||
WORKDIR /usr/src/astguiclient
|
||||
#RUN svn checkout svn://svn.eflo.net:43690/agc_2-X/branches/agc_2.9
|
||||
COPY ./ ./
|
||||
|
||||
ENV TZ=America/Bogota
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
RUN perl install.pl --web-only --active_keepalives=X
|
||||
RUN ln -s /var/www/html/vicidial/welcome.php /var/www/html/index.php
|
||||
|
||||
RUN ln -sf /dev/stdout /var/log/httpd/access_log
|
||||
RUN ln -sf /dev/stderr /var/log/httpd/error_log
|
||||
|
||||
COPY extras/Sapian/voe-landing/dist/ /var/www/html/
|
||||
COPY docker/vicidial-http/vicidial-web-entrypoint.sh /vicidial-web-entrypoint.sh
|
||||
CMD ["/usr/sbin/apachectl", "-DFOREGROUND"]
|
||||
ENTRYPOINT ["/vicidial-web-entrypoint.sh"]
|
||||
|
||||
ARG BUILD_DATE
|
||||
ARG VCS_REF
|
||||
ARG VERSION
|
||||
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.name="vicidial-ccweb" \
|
||||
org.label-schema.description="Vicidial Docker Image ccweb Complete" \
|
||||
org.label-schema.url="https://www.sapian.cloud/vicidial-online-edition" \
|
||||
org.label-schema.vcs-url="https://git.sapian.com.co/Sapian/vicidial" \
|
||||
org.label-schema.maintainer="sebastian.rojo@sapian.com.co" \
|
||||
org.label-schema.vcs-ref=$VCS_REF \
|
||||
org.label-schema.vendor1="Vicidial" \
|
||||
org.label-schema.vendor2="Sapian" \
|
||||
org.label-schema.version=$VERSION \
|
||||
org.label-schema.vicidial-schema-version="1602"
|
@ -1,2 +1,5 @@
|
||||
# vicidial-webadmin-server
|
||||
|
||||
|
||||
# build
|
||||
sudo docker build --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') --build-arg VCS_REF=$(git rev-parse --short HEAD) -t sapian/vicidial-ccweb-admin:1602 -t us.gcr.io/ccoe-246623/sapian/vicidial-ccweb-agc:latest -t us.gcr.io/ccoe-246623/sapian/vicidial-ccweb-admin:1602-alpine3.16-r0 --build-arg VERSION=1602-alpine3.16-r0 .
|
@ -0,0 +1,5 @@
|
||||
localhost:2020 {
|
||||
bind {$ADDRESS}
|
||||
reverse_proxy localhost:8080
|
||||
tls internal
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
[global]
|
||||
; Log to stderr
|
||||
error_log = /dev/stderr
|
||||
display_errors = off
|
||||
display_startup_errors = Off
|
||||
php_flag[display_errors] = off
|
||||
php_flag[display_startup_errors] = off
|
||||
|
||||
[www]
|
||||
; The address on which to accept FastCGI requests.
|
||||
; Valid syntaxes are:
|
||||
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
|
||||
; a specific port;
|
||||
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
|
||||
; a specific port;
|
||||
; 'port' - to listen on a TCP socket to all addresses
|
||||
; (IPv6 and IPv4-mapped) on a specific port;
|
||||
; '/path/to/unix/socket' - to listen on a unix socket.
|
||||
; Note: This value is mandatory.
|
||||
listen = 127.0.0.1:9000
|
||||
|
||||
; Enable status page
|
||||
pm.status_path = /fpm-status
|
||||
|
||||
; Ondemand process manager
|
||||
pm = ondemand
|
||||
|
||||
; The number of child processes to be created when pm is set to 'static' and the
|
||||
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
|
||||
; This value sets the limit on the number of simultaneous requests that will be
|
||||
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
|
||||
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
|
||||
; CGI. The below defaults are based on a server without much resources. Don't
|
||||
; forget to tweak pm.* to fit your needs.
|
||||
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
|
||||
; Note: This value is mandatory.
|
||||
pm.max_children = 100
|
||||
|
||||
; The number of seconds after which an idle process will be killed.
|
||||
; Note: Used only when pm is set to 'ondemand'
|
||||
; Default Value: 10s
|
||||
pm.process_idle_timeout = 10s;
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries. For
|
||||
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default Value: 0
|
||||
pm.max_requests = 1000
|
||||
|
||||
; Make sure the FPM workers can reach the environment variables for configuration
|
||||
clear_env = no
|
||||
|
||||
; Catch output from PHP
|
||||
catch_workers_output = yes
|
||||
|
||||
; Remove the 'child 10 said into stderr' prefix in the log and only show the actual message
|
||||
decorate_workers_output = no
|
||||
|
||||
; Enable ping page to use in healthcheck
|
||||
ping.path = /fpm-ping
|
||||
|
||||
php_flag[display_errors] = off
|
||||
php_flag[display_startup_errors] = off
|
@ -0,0 +1,105 @@
|
||||
worker_processes 1;
|
||||
error_log stderr warn;
|
||||
pid /run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Define custom log format to include reponse times
|
||||
log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for" '
|
||||
'$request_time $upstream_response_time $pipe $upstream_cache_status';
|
||||
|
||||
access_log /dev/stdout main_timed;
|
||||
error_log /dev/stderr notice;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
# Write temporary files to /tmp so they can be created as a non-privileged user
|
||||
client_body_temp_path /tmp/client_temp;
|
||||
proxy_temp_path /tmp/proxy_temp_path;
|
||||
fastcgi_temp_path /tmp/fastcgi_temp;
|
||||
uwsgi_temp_path /tmp/uwsgi_temp;
|
||||
scgi_temp_path /tmp/scgi_temp;
|
||||
|
||||
# Default server definition
|
||||
server {
|
||||
listen [::]:8080 default_server;
|
||||
listen 8080 default_server;
|
||||
server_name _;
|
||||
|
||||
sendfile off;
|
||||
|
||||
root /var/www/html;
|
||||
index index.php index.html;
|
||||
|
||||
location / {
|
||||
# First attempt to serve request as file, then
|
||||
# as directory, then fall back to index.php
|
||||
try_files $uri $uri/ /index.php?q=$uri&$args;
|
||||
}
|
||||
|
||||
# Redirect server error pages to the static page /50x.html
|
||||
error_page 500 502 503 504 /50x.html;
|
||||
location = /50x.html {
|
||||
root /var/lib/nginx/html;
|
||||
}
|
||||
|
||||
# Allow kuberentes healtcheck
|
||||
location ~ ^/extras_sapian/health_check_Thohc5cohloh3saic5aj9efaechaepoo.php$ {
|
||||
access_log off;
|
||||
error_log off;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
# Pass the PHP scripts to PHP-FPM listening on 127.0.0.1:9000
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
|
||||
expires 5d;
|
||||
}
|
||||
|
||||
# Deny access to . files, for security
|
||||
location ~ /\. {
|
||||
log_not_found off;
|
||||
deny all;
|
||||
}
|
||||
|
||||
# Allow fpm ping and status from localhost
|
||||
location ~ ^/(fpm-status|fpm-ping)$ {
|
||||
access_log off;
|
||||
allow 127.0.0.1;
|
||||
deny all;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
}
|
||||
}
|
||||
|
||||
gzip on;
|
||||
gzip_proxied any;
|
||||
gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;
|
||||
gzip_vary on;
|
||||
gzip_disable "msie6";
|
||||
|
||||
# Include other server configs
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
server {
|
||||
listen localhost:9532;
|
||||
location /metrics {
|
||||
stub_status on;
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
[www]
|
||||
pm.status_path = /fpm-status
|
||||
ping.path = /fpm-ping
|
@ -0,0 +1,7 @@
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
; see https://bugs.php.net/bug.php?id=73886
|
||||
; and https://github.com/php/php-src/pull/2310
|
||||
; sapian: prefer never appears and using access.log fron ngingx
|
||||
; if this bug is fixed do access.log = /dev/null for avoid duplicity
|
||||
access.log = /proc/self/fd/1
|
@ -0,0 +1,8 @@
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
|
||||
[Date]
|
||||
date.timezone="America/Bogota"
|
||||
|
||||
[mail function]
|
||||
sendmail_path = /usr/sbin/ssmtp -t
|
@ -0,0 +1,8 @@
|
||||
# opcache.ini
|
||||
[opcache]
|
||||
zend_extension=opcache.so
|
||||
opcache.enable=1
|
||||
opcache.enable_cli=1
|
||||
opcache.memory_consumption=256
|
||||
opcache.interned_strings_buffer=32
|
||||
opcache.max_accelerated_files=10000
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
mailhub=mail:587
|
||||
# Are users allowed to set their own From: address?
|
||||
# YES - Allow the user to specify their own From: address
|
||||
# NO - Use the system generated From: address
|
||||
FromLineOverride=YES
|
||||
#
|
||||
|
@ -0,0 +1,23 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
logfile=/dev/null
|
||||
logfile_maxbytes=0
|
||||
pidfile=/run/supervisord.pid
|
||||
|
||||
[program:php-fpm]
|
||||
command=php-fpm -F -c /etc/php7
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
autorestart=false
|
||||
startretries=0
|
||||
|
||||
[program:nginx]
|
||||
command=nginx -g 'daemon off;'
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
autorestart=false
|
||||
startretries=0
|
@ -0,0 +1,35 @@
|
||||
# get the Sources
|
||||
|
||||
```bash
|
||||
# install dependencies
|
||||
git clone --recurse-submodules -j8 --branch agc_2.14_voe git@gogs.sapian.com.co:Sapian/vicidial.git
|
||||
```
|
||||
|
||||
# voe-landing
|
||||
|
||||
## Build Setup
|
||||
|
||||
|
||||
```bash
|
||||
# Goto the Sources
|
||||
$ cd extras/Sapian/voe-landing/
|
||||
|
||||
# install dependencies
|
||||
$ yarn install
|
||||
|
||||
# build for production and launch server
|
||||
$ yarn build --spa
|
||||
|
||||
```
|
||||
|
||||
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
|
||||
|
||||
# Docker Buil
|
||||
|
||||
```bash
|
||||
# Goto the Sources
|
||||
cd ~/Workspace/vicidial
|
||||
docker build -t sapian/vicidial-ccweb:1602 -t sapian/vicidial-ccweb:latest -t us.gcr.io/ccoe-246623/sapian/vicidial-ccweb:1602-r3 -t us.gcr.io/ccoe-246623/sapian/vicidial-ccweb:latest .
|
||||
docker push us.gcr.io/ccoe-246623/sapian/vicidial-ccweb:1602-r6
|
||||
docker push us.gcr.io/ccoe-246623/sapian/vicidial-ccweb:latest
|
||||
```
|
@ -0,0 +1,63 @@
|
||||
# astguiclient.conf - configuration elements for the astguiclient package
|
||||
# this is the astguiclient configuration file
|
||||
# all comments will be lost if you run install.pl again
|
||||
|
||||
# Paths used by astGUIclient
|
||||
PATHhome => /usr/share/astguiclient
|
||||
PATHlogs => /var/log/astguiclient
|
||||
PATHagi => /var/lib/asterisk/agi-bin
|
||||
PATHweb => /var/www/html
|
||||
PATHsounds => /var/lib/asterisk/sounds
|
||||
PATHmonitor => /var/spool/asterisk/monitor
|
||||
PATHDONEmonitor => /var/spool/recordings
|
||||
|
||||
# The IP address of this machine
|
||||
VARserver_ip => 169.254.217.250
|
||||
|
||||
# Database connection information
|
||||
VARDB_server => 127.0.0.1
|
||||
VARDB_database => asterisk
|
||||
VARDB_user => cron
|
||||
VARDB_pass => 1234
|
||||
VARDB_port => 3306
|
||||
|
||||
# Alpha-Numeric list of the astGUIclient processes to be kept running
|
||||
# (value should be listing of characters with no spaces: 1234568)
|
||||
# X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)
|
||||
# 1 - AST_update
|
||||
# 2 - AST_send_listen
|
||||
# 3 - AST_VDauto_dial
|
||||
# 4 - AST_VDremote_agents
|
||||
# 5 - AST_VDadapt (If multi-server system, this must only be on one server)
|
||||
# 6 - FastAGI_log
|
||||
# 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)
|
||||
# 8 - ip_relay (used for blind agent monitoring)
|
||||
# 9 - Timeclock auto logout
|
||||
VARactive_keepalives => X
|
||||
|
||||
# Asterisk version VICIDIAL is installed for
|
||||
VARasterisk_version => 1.8
|
||||
|
||||
# FTP recording archive connection information
|
||||
VARFTP_host => 169.254.217.250
|
||||
VARFTP_user => cron
|
||||
VARFTP_pass => test
|
||||
VARFTP_port => 21
|
||||
VARFTP_dir => RECORDINGS
|
||||
VARHTTP_path => http://169.254.217.250
|
||||
|
||||
# REPORT server connection information
|
||||
VARREPORT_host => 169.254.217.250
|
||||
VARREPORT_user => cron
|
||||
VARREPORT_pass => test
|
||||
VARREPORT_port => 21
|
||||
VARREPORT_dir => REPORTS
|
||||
|
||||
# Settings for FastAGI logging server
|
||||
VARfastagi_log_min_servers => 3
|
||||
VARfastagi_log_max_servers => 16
|
||||
VARfastagi_log_min_spare_servers => 2
|
||||
VARfastagi_log_max_spare_servers => 8
|
||||
VARfastagi_log_max_requests => 1000
|
||||
VARfastagi_log_checkfordead => 30
|
||||
VARfastagi_log_checkforwait => 60
|
@ -0,0 +1,103 @@
|
||||
# astguiclient.conf - configuration elements for the astguiclient package
|
||||
# this is the astguiclient configuration file
|
||||
# all comments will be lost if you run install.pl again
|
||||
|
||||
# Paths used by astGUIclient
|
||||
PATHhome => /usr/share/astguiclient
|
||||
PATHlogs => /var/log/astguiclient
|
||||
PATHagi => /var/lib/asterisk/agi-bin
|
||||
PATHweb => /var/www/html
|
||||
PATHsounds => /var/lib/asterisk/sounds
|
||||
PATHmonitor => /var/spool/asterisk/monitor
|
||||
PATHDONEmonitor => /var/spool/recordings
|
||||
|
||||
# The IP address of this machine
|
||||
{% if CCWEB_SERVICE_HOST is defined -%}
|
||||
VARserver_ip => {{CCWEB_SERVICE_HOST}}
|
||||
{%- else -%}
|
||||
VARserver_ip => 10.51.0.60
|
||||
{%- endif %}
|
||||
|
||||
|
||||
# Database connection information
|
||||
{% if VICDIAL_DB is defined -%}
|
||||
VARDB_server => {{VICDIAL_DB}}
|
||||
{%- else -%}
|
||||
VARDB_server => 10.51.0.60
|
||||
{%- endif %}
|
||||
|
||||
{% if VICDIAL_DB_database is defined -%}
|
||||
VARDB_database => {{VICDIAL_DB_database}}
|
||||
{%- else -%}
|
||||
VARDB_database => asterisk
|
||||
{%- endif %}
|
||||
|
||||
{% if VICDIAL_DB_user is defined -%}
|
||||
VARDB_user => {{VICDIAL_DB_user}}
|
||||
{%- else -%}
|
||||
VARDB_user => ccweb
|
||||
{%- endif %}
|
||||
|
||||
{% if VICDIAL_DB_pass is defined -%}
|
||||
VARDB_pass => {{VICDIAL_DB_pass}}
|
||||
{%- else -%}
|
||||
VARDB_pass => 1234
|
||||
{%- endif %}
|
||||
|
||||
{% if VICDIAL_DB_port is defined -%}
|
||||
VARDB_port => {{VICDIAL_DB_port}}
|
||||
{%- else -%}
|
||||
VARDB_port => 3306
|
||||
{%- endif %}
|
||||
|
||||
# Database Custom connection information
|
||||
VARDB_custom_user => ccwebcustom
|
||||
{% if VICDIAL_DB_pass is defined -%}
|
||||
VARDB_custom_pass => {{VICDIAL_DB_pass}}
|
||||
{%- else -%}
|
||||
VARDB_custom_pass => 1234
|
||||
{%- endif %}
|
||||
|
||||
# Alpha-Numeric list of the astGUIclient processes to be kept running
|
||||
# (value should be listing of characters with no spaces: 1234568)
|
||||
# X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)
|
||||
# 1 - AST_update
|
||||
# 2 - AST_send_listen
|
||||
# 3 - AST_VDauto_dial
|
||||
# 4 - AST_VDremote_agents
|
||||
# 5 - AST_VDadapt (If multi-server system, this must only be on one server)
|
||||
# 6 - FastAGI_log
|
||||
# 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)
|
||||
# 8 - ip_relay (used for blind agent monitoring)
|
||||
# 9 - Timeclock auto logout
|
||||
VARactive_keepalives => X
|
||||
|
||||
# Asterisk version VICIDIAL is installed for
|
||||
VARasterisk_version => 13.24.1
|
||||
|
||||
# FTP recording archive connection information
|
||||
VARFTP_host => 169.254.217.250
|
||||
VARFTP_user => cron
|
||||
VARFTP_pass => test
|
||||
VARFTP_port => 21
|
||||
VARFTP_dir => RECORDINGS
|
||||
VARHTTP_path => http://169.254.217.250
|
||||
|
||||
# REPORT server connection information
|
||||
VARREPORT_host => 169.254.217.250
|
||||
VARREPORT_user => cron
|
||||
VARREPORT_pass => test
|
||||
VARREPORT_port => 21
|
||||
VARREPORT_dir => REPORTS
|
||||
|
||||
# Settings for FastAGI logging server
|
||||
VARfastagi_log_min_servers => 3
|
||||
VARfastagi_log_max_servers => 16
|
||||
VARfastagi_log_min_spare_servers => 2
|
||||
VARfastagi_log_max_spare_servers => 8
|
||||
VARfastagi_log_max_requests => 1000
|
||||
VARfastagi_log_checkfordead => 30
|
||||
VARfastagi_log_checkforwait => 60
|
||||
|
||||
# Expected DB Schema version for this install
|
||||
ExpectedDBSchema => 1602
|
@ -0,0 +1,8 @@
|
||||
ExtendedStatus On
|
||||
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
Allow from 127.0.0.1
|
||||
</Location>
|
@ -0,0 +1,9 @@
|
||||
ExtendedStatus On
|
||||
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
Allow from 127.0.0.1
|
||||
</Location>
|
||||
|
@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Process templates
|
||||
#find /etc/ -name '*.j2' | while read template; do
|
||||
# replace templated values with environment variables of the same name
|
||||
#j2 ${template} > /etc/asterisk/$(basename ${template} .j2)
|
||||
# remove the template once processed
|
||||
#rm -f ${template}
|
||||
#done
|
||||
|
||||
j2 /etc/astguiclient.conf.j2 > /etc/astguiclient.conf
|
||||
|
||||
if [[ -z "${LOGO_URL}" ]]; then
|
||||
echo "Using default Vicidial Logo"
|
||||
else
|
||||
curl -o /var/www/html/images/vicidial_admin_web_logo.png ${LOGO_URL}
|
||||
rm /var/www/html/images/VICIchat_powered_logo.png
|
||||
ln -s /var/www/html/images/vicidial_admin_web_logo.png /var/www/html/images/VICIchat_powered_logo.png
|
||||
fi
|
||||
|
||||
if [[ -z "${DEV}" ]]; then
|
||||
echo "production MODE"
|
||||
#cp "$PHP_INI_DIR/php.ini-production" /etc/php7/php-fpm.d/php.ini
|
||||
else
|
||||
echo "dev MODE"
|
||||
#cp "$PHP_INI_DIR/php.ini-development" /etc/php7/php-fpm.d/php.ini
|
||||
touch /var/www/html/agc/phpinfo.php
|
||||
echo '<?php phpinfo(); ?>' >> /var/www/html/agc/phpinfo.php
|
||||
echo '<?php (is_array(opcache_get_status()) ? 'enabled' : 'disabled'); ?>' >> /var/www/html/agc/opcache.php
|
||||
|
||||
fi
|
||||
|
||||
|
||||
exec "$@"
|
@ -0,0 +1,4 @@
|
||||
<?php
|
||||
$date = new DateTime();
|
||||
echo $date->getTimestamp();
|
||||
?>
|
@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
@ -0,0 +1,34 @@
|
||||
apiVersion: v2
|
||||
name: ccagc
|
||||
description: Vicidial Webserver Server.
|
||||
type: application
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 1.8.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
appVersion: 2.14b0.5-1602-r24
|
||||
|
||||
home: https://git.sapian.com.co/Sapian/callcenter-online-editon
|
||||
icon: https://www.sapian.cloud/wp-content/uploads/2020/05/Logo_CC_72dpi.png
|
||||
keywords:
|
||||
- web
|
||||
- application
|
||||
- php
|
||||
- ccagc
|
||||
- perl
|
||||
- vicidial
|
||||
- sapian
|
||||
- voe
|
||||
- prometheus
|
||||
sources:
|
||||
- https://git.sapian.com.co/Sapian/callcenter-online-editon
|
||||
- https://git.sapian.com.co/Sapian/vicidial/src/agc_2.14_voe
|
||||
- https://github.com/bitnami/bitnami-docker-apache-exporter
|
||||
|
||||
annotations:
|
||||
category: Callcenter
|
@ -0,0 +1,12 @@
|
||||
|
||||
# 1.8.0
|
||||
|
||||
* Update template for certificates used for apiVersion cert-manager.io/v1
|
||||
|
||||
# 1.7.0
|
||||
|
||||
* ADD mail smarthost point to service/mail in the namespaces
|
||||
|
||||
## 1.5.0
|
||||
|
||||
* Add Middleware to redirect http to https
|
@ -0,0 +1,178 @@
|
||||
# Apache
|
||||
|
||||
The [Apache HTTP Server Project](https://httpd.apache.org/) is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
|
||||
|
||||
The Apache HTTP Server ("httpd") was launched in 1995 and it has been the most popular web server on the Internet since April 1996. It has celebrated its 20th birthday as a project in February 2015.
|
||||
|
||||
## TL;DR
|
||||
|
||||
```bash
|
||||
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
$ helm install my-release bitnami/apache
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
||||
Bitnami charts for Helm are carefully engineered, actively maintained and are the quickest and easiest way to deploy containers on a Kubernetes cluster that are ready to handle production workloads.
|
||||
|
||||
This chart bootstraps a [Apache](https://github.com/bitnami/bitnami-docker-apache) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
|
||||
|
||||
Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment and management of Helm Charts in clusters. This Helm chart has been tested on top of [Bitnami Kubernetes Production Runtime](https://kubeprod.io/) (BKPR). Deploy BKPR to get automated TLS certificates, logging and monitoring for your applications.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.12+
|
||||
- Helm 2.12+ or Helm 3.0-beta3+
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```bash
|
||||
$ helm install ccagc --set externalDatabase.host=mariadb-cc-01-med-la27-andar-local.frp.svc.cluster.local --set externalDatabase.user=chat --set externalDatabase.password=changeme --set logoUrl=https://minio.sapian.cloud/sapian-hackmd-public-bucket/uploads/upload_e1954dac79773def38ce541c39ddac13.png .
|
||||
```
|
||||
|
||||
These commands deploy Apache on the Kubernetes cluster in the default configuration.
|
||||
|
||||
> **Tip**: List all releases using `helm list`
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` deployment:
|
||||
|
||||
```bash
|
||||
$ helm delete my-release
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Parameters
|
||||
|
||||
The following tables lists the configurable parameters of the Apache chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|----------------------------------|---------------------------------------------------------|--------------------------------------------------------------|
|
||||
| `global.imageRegistry` | Global Docker image registry | `nil` |
|
||||
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
|
||||
| `image.registry` | Apache Docker image registry | `docker.io` |
|
||||
| `image.repository` | Apache Docker image name | `bitnami/apache` |
|
||||
| `image.tag` | Apache Docker image tag | `{TAG_NAME}` |
|
||||
| `image.pullPolicy` | Apache Docker image pull policy | `Always` |
|
||||
| `image.pullSecrets` | Specify Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
|
||||
| `git.registry` | Git image registry | `docker.io` |
|
||||
| `git.repository` | Git image name | `bitnami/git` |
|
||||
| `git.tag` | Git image tag | `{TAG_NAME}` |
|
||||
| `git.pullPolicy` | Git image pull policy | `Always` |
|
||||
| `git.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
|
||||
| `replicaCount` | Number of replicas of the Apache deployment | `docker.io` |
|
||||
| `htdocsConfigMap` | ConfigMap with the server static content | `nil` |
|
||||
| `htdocsPVC` | PVC with the server static content | `nil` |
|
||||
| `vhostsConfigMap` | ConfigMap with the virtual hosts content | `nil` |
|
||||
| `httpdConfConfigMap` | ConfigMap with the httpd.conf content | `nil` |
|
||||
| `cloneHtdocsFromGit.enabled` | Get the server static content from a git repository | `false` |
|
||||
| `cloneHtdocsFromGit.repository` | Repository to clone static content from | `nil` |
|
||||
| `cloneHtdocsFromGit.branch` | Branch inside the git repository | `nil` |
|
||||
| `cloneHtdocsFromGit.interval` | Interval for sidecar container pull from the repository | `60` |
|
||||
| `cloneHtdocsFromGit.resources` | Init container git resource requests/limit | `{}` |
|
||||
| `podAnnotations` | Pod annotations | `{}` |
|
||||
| `livenessProbe.enabled` | Enable liveness probe | `true` |
|
||||
| `livenessProbe.path` | Path to access on the HTTP server | `/` |
|
||||
| `readinessProbe.enabled` | Enable readiness probe | `true` |
|
||||
| `readinessProbe.path` | Path to access on the HTTP server | `/` |
|
||||
| `ingress.enabled` | Enable ingress controller resource | `false` |
|
||||
| `ingress.hostname` | Default host for the ingress resource | `example.local` |
|
||||
| `ingress.certManager` | Add annotations for cert-manager | `false` |
|
||||
| `ingress.annotations` | Ingress annotations | `[]` |
|
||||
| `ingress.hosts[0].name` | Hostname to your Apache installation | `example.local` |
|
||||
| `ingress.hosts[0].path` | Path within the url structure | `/` |
|
||||
| `ingress.tls[0].hosts[0]` | TLS hosts | `example.local` |
|
||||
| `ingress.tls[0].secretName` | TLS Secret (certificates) | `example.local-tls` |
|
||||
| `ingress.secrets[0].name` | TLS Secret Name | `nil` |
|
||||
| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` |
|
||||
| `ingress.secrets[0].key` | TLS Secret Key | `nil` |
|
||||
| `affinity` | Map of node/pod affinities | `{}` (The value is evaluated as a template) |
|
||||
| `nodeSelector` | Node labels for pod assignment | `{}` (The value is evaluated as a template) |
|
||||
| `tolerations` | Tolerations for pod assignment | `[]` (The value is evaluated as a template) |
|
||||
| `metrics.enabled` | Start a side-car prometheus exporter | `false` |
|
||||
| `metrics.image.registry` | Apache exporter image registry | `docker.io` |
|
||||
| `metrics.image.repository` | Apache exporter image name | `lusotycoon/apache-exporter` |
|
||||
| `metrics.image.tag` | Apache exporter image tag | `v0.5.0` |
|
||||
| `metrics.image.pullPolicy` | Apache exporter image pull policy | `IfNotPresent` |
|
||||
| `metrics.image.pullSecrets` | Specify Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
|
||||
| `metrics.podAnnotations` | Additional annotations for Metrics exporter pod | `{prometheus.io/scrape: "true", prometheus.io/port: "9117"}` |
|
||||
| `metrics.resources` | Exporter resource requests/limit | {} |
|
||||
| `service.type` | Kubernetes Service type | `LoadBalancer` |
|
||||
| `service.port` | Service HTTP port | `80` |
|
||||
| `service.httpsPort` | Service HTTPS port | `443` |
|
||||
| `service.nodePorts.http` | Kubernetes http node port | `""` |
|
||||
| `service.nodePorts.https` | Kubernetes https node port | `""` |
|
||||
| `service.externalTrafficPolicy` | Enable client source IP preservation | `Cluster` |
|
||||
| `service.loadBalancerIP` | LoadBalancer service IP address | `""` |
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```bash
|
||||
$ helm install my-release \
|
||||
--set imagePullPolicy=Always \
|
||||
bitnami/apache
|
||||
```
|
||||
|
||||
The above command sets the `imagePullPolicy` to `Always`.
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
|
||||
|
||||
```bash
|
||||
$ helm install my-release -f values.yaml bitnami/apache
|
||||
```
|
||||
|
||||
> **Tip**: You can use the default [values.yaml](values.yaml)
|
||||
|
||||
## Configuration and installation details
|
||||
|
||||
### [Rolling VS Immutable tags](https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/)
|
||||
|
||||
It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image.
|
||||
|
||||
Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist.
|
||||
|
||||
### Deploying your custom web application
|
||||
|
||||
The Apache chart allows you to deploy a custom web application using one of the following methods:
|
||||
|
||||
- Cloning from a git repository: Set `cloneHtdocsFromGit.enabled` to `true` and set the repository and branch using the `cloneHtdocsFromGit.repository` and `cloneHtdocsFromGit.branch` parameters. A sidecar will also pull the latest changes in an interval set by `cloneHtdocsFromGit.interval`.
|
||||
- Providing a ConfigMap: Set the `htdocsConfigMap` value to mount a ConfigMap in the Apache htdocs folder.
|
||||
- Using an existing PVC: Set the `htdocsPVC` value to mount an PersistentVolumeClaim with the web application content.
|
||||
|
||||
You can deploy a example web application using git deploying the chart with the following parameters:
|
||||
|
||||
```console
|
||||
cloneHtdocsFromGit.enabled=true
|
||||
cloneHtdocsFromGit.repository=https://github.com/mdn/beginner-html-site-styled.git
|
||||
cloneHtdocsFromGit.branch=master
|
||||
```
|
||||
|
||||
To use your own `httpd.conf` file you can mount it using the `httpdConfConfigMap` parameter, which is the name of a Config Map with the contents of your `httpd.conf`. Additionaly, you can copy your `httpd.conf` to `/files/httpd.conf` in your current working directory to mount it to the container.
|
||||
|
||||
You may also want to mount different virtual host configurations. This can be done using the `vhostsConfigMap` value. This is a pointer to a ConfigMap with the desired Apache virtual host configurations. You can also copy your virtual host configurations under the `files/vhosts/` directory in your current working directory to mount them as a Config Map to the container.
|
||||
|
||||
## Notable changes
|
||||
|
||||
### 7.0.0
|
||||
|
||||
This release updates the Bitnami Apache container to `2.4.41-debian-9-r40`, which is based on Bash instead of Node.js.
|
||||
|
||||
### 6.0.0
|
||||
|
||||
This release allows you to use your custom static applicaton. In order to do so, check [this section](#deploying-your-custom-web-application).
|
||||
|
||||
## Upgrading
|
||||
|
||||
### To 2.0.0
|
||||
|
||||
Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments.
|
||||
Use the workaround below to upgrade from versions previous to 2.0.0. The following example assumes that the release name is apache:
|
||||
|
||||
```console
|
||||
$ kubectl patch deployment apache --type=json -p='[{"op": "remove", "path": "/spec/selector/matchLabels/chart"}]'
|
||||
```
|
||||
|
@ -0,0 +1,21 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "ccagc.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "ccagc.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "ccagc.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "ccagc.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
|
||||
{{- end }}
|
@ -0,0 +1,133 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "ccagc.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "ccagc.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "ccagc.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "ccagc.labels" -}}
|
||||
helm.sh/chart: {{ include "ccagc.chart" . }}
|
||||
{{ include "ccagc.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create pod labels for ccagc
|
||||
*/}}
|
||||
{{- define "ccagc.podLabels" -}}
|
||||
{{- if .Values.podLabels }}
|
||||
{{ toYaml .Values.podLabels }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "ccagc.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "ccagc.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "ccagc.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "ccagc.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Return the proper Vicidial ccagc image name
|
||||
*/}}
|
||||
{{- define "ccagc.image" -}}
|
||||
{{- $registryName := .Values.image.registry -}}
|
||||
{{- $repositoryName := .Values.image.repository -}}
|
||||
{{- $tag := .Values.image.tag | toString -}}
|
||||
{{/*
|
||||
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
|
||||
but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
|
||||
Also, we can't use a single if because lazy evaluation is not an option
|
||||
*/}}
|
||||
{{- if .Values.global }}
|
||||
{{- if .Values.global.imageRegistry }}
|
||||
{{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper image name (for the metrics image)
|
||||
*/}}
|
||||
{{- define "ccagc.metrics.image" -}}
|
||||
{{- $registryName := .Values.metrics.image.registry -}}
|
||||
{{- $repositoryName := .Values.metrics.image.repository -}}
|
||||
{{- $tag := .Values.metrics.image.tag | toString -}}
|
||||
{{/*
|
||||
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
|
||||
but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
|
||||
Also, we can't use a single if because lazy evaluation is not an option
|
||||
*/}}
|
||||
{{- if .Values.global }}
|
||||
{{- if .Values.global.imageRegistry }}
|
||||
{{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "ccagc.databaseSecretName" -}}
|
||||
{{- printf "%s-%s" .Release.Name "externaldb" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the appropriate apiVersion for deployment.
|
||||
*/}}
|
||||
{{- define "ccagc.deployment.apiVersion" -}}
|
||||
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- print "extensions/v1beta1" -}}
|
||||
{{- else -}}
|
||||
{{- print "apps/v1" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@ -0,0 +1,22 @@
|
||||
{{- if .Values.ingressRoute.tls.enabled -}}
|
||||
{{- $fullName := include "ccagc.fullname" . -}}
|
||||
{{- $Host := .Values.ingressRoute.host -}}
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingressRoute.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
secretName: {{ printf "%s-%s" .Release.Name "tls-le" }}
|
||||
issuerRef:
|
||||
# The issuer created previously
|
||||
name: letsencrypt-production-issuer
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- {{ $Host | quote }}
|
||||
{{- end }}
|
@ -0,0 +1,135 @@
|
||||
apiVersion: {{ template "ccagc.deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "ccagc.fullname" . }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- include "ccagc.podLabels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "ccagc.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "ccagc.selectorLabels" . | nindent 8 }}
|
||||
{{- include "ccagc.podLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "ccagc.serviceAccountName" . }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
image: {{ template "ccagc.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
- name: VOE
|
||||
value: "1"
|
||||
- name: VICDIAL_DB
|
||||
value: {{ required "A valid .Values.externalDatabase.host entry required!" .Values.externalDatabase.host | quote }}
|
||||
- name: VICDIAL_DB_port
|
||||
value: {{ required "A valid .Values.externalDatabase.port entry required!" .Values.externalDatabase.port | quote }}
|
||||
- name: VICDIAL_DB_database
|
||||
value: {{ required "A valid .Values.externalDatabase.database entry required!" .Values.externalDatabase.database | quote }}
|
||||
- name: VICDIAL_DB_user
|
||||
value: {{ required "A valid .Values.externalDatabase.user entry required!" .Values.externalDatabase.user | quote }}
|
||||
- name: LOGO_URL
|
||||
value: {{ .Values.logoUrl | quote }}
|
||||
- name: VICDIAL_DB_pass
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "ccagc.databaseSecretName" . }}
|
||||
key: mariadb-root-password
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /extras_sapian/health_check_Thohc5cohloh3saic5aj9efaechaepoo.php
|
||||
port: http
|
||||
initialDelaySeconds: 180
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /extras_sapian/health_check_Thohc5cohloh3saic5aj9efaechaepoo.php
|
||||
port: http
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 3
|
||||
periodSeconds: 5
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- if .Values.metrics.nginx.enabled }}
|
||||
- name: nginx-metrics
|
||||
image: "{{ .Values.metrics.nginx.image.repository }}:{{ .Values.metrics.nginx.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.metrics.nginx.image.pullPolicy | quote }}
|
||||
command: ['/usr/bin/exporter', '-nginx.scrape-uri', 'http://127.0.0.1:9532/metrics', '-nginx.retries', '5']
|
||||
ports:
|
||||
- name: nginx-metrics
|
||||
containerPort: 9113
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: nginx-metrics
|
||||
initialDelaySeconds: 15
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: nginx-metrics
|
||||
initialDelaySeconds: 5
|
||||
timeoutSeconds: 1
|
||||
{{- if .Values.metrics.nginx.resources }}
|
||||
resources: {{- toYaml .Values.metrics.nginx.resources | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.phpfpm.enabled }}
|
||||
- name: phpfpm-metrics
|
||||
image: "{{ .Values.metrics.phpfpm.image.repository }}:{{ .Values.metrics.phpfpm.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.metrics.phpfpm.image.pullPolicy | quote }}
|
||||
args: ["--phpfpm.scrape-uri", "tcp://127.0.0.1:9000/fpm-status"]
|
||||
ports:
|
||||
- name: phpfpm-metrics
|
||||
containerPort: 9253
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: phpfpm-metrics
|
||||
initialDelaySeconds: 15
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: phpfpm-metrics
|
||||
initialDelaySeconds: 5
|
||||
timeoutSeconds: 1
|
||||
{{- if .Values.metrics.phpfpm.resources }}
|
||||
resources: {{- toYaml .Values.metrics.phpfpm.resources | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
@ -0,0 +1,8 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ printf "%s-%s" .Release.Name "externaldb" }}
|
||||
labels: {{- include "ccagc.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
mariadb-root-password: {{ required "A MySQL Database Password is required!" .Values.externalDatabase.password | b64enc | quote }}
|
@ -0,0 +1,28 @@
|
||||
{{- if .Values.autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2beta1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "ccagc.fullname" . }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "ccagc.fullname" . }}
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,28 @@
|
||||
{{- if .Values.ingressRoute.enabled -}}
|
||||
{{- $fullName := include "ccagc.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
{{- $Host := .Values.ingressRoute.host -}}
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: https-{{ $fullName }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingressRoute.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`{{ $Host }}`) && PathPrefix(`/agc/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ $fullName }}
|
||||
port: {{ $svcPort }}
|
||||
{{- if .Values.ingressRoute.tls.enabled }}
|
||||
tls:
|
||||
secretName: {{ printf "%s-%s" .Release.Name "tls-le" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,17 @@
|
||||
{{- if .Values.ingressRoute.enabled -}}
|
||||
{{- $fullName := include "ccagc.fullname" . -}}
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: https-redirect-{{ $fullName }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingressRoute.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
redirectScheme:
|
||||
scheme: https
|
||||
permanent: true
|
||||
{{- end }}
|
@ -0,0 +1,26 @@
|
||||
{{- if .Values.ingressRoute.enabled -}}
|
||||
{{- $fullName := include "ccagc.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
{{- $Host := .Values.ingressRoute.host -}}
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: http-{{ $fullName }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingressRoute.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
entryPoints:
|
||||
- web
|
||||
routes:
|
||||
- match: Host(`{{ $Host }}`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ $fullName }}
|
||||
port: {{ $svcPort }}
|
||||
middlewares:
|
||||
- name: https-redirect-{{ $fullName }}
|
||||
{{- end }}
|
@ -0,0 +1,41 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "ccagc.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ . }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,25 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "ccagc.fullname" . }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
{{- if .Values.metrics.nginx.enabled }}
|
||||
- name: nginx-metrics
|
||||
port: 9113
|
||||
targetPort: nginx-metrics
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.phpfpm.enabled }}
|
||||
- name: phpfpm-metrics
|
||||
port: 9253
|
||||
targetPort: phpfpm-metrics
|
||||
{{- end }}
|
||||
selector:
|
||||
{{- include "ccagc.selectorLabels" . | nindent 4 }}
|
@ -0,0 +1,12 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "ccagc.serviceAccountName" . }}
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -0,0 +1,28 @@
|
||||
{{- if .Values.metrics.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "ccagc.fullname" . }}-nginx
|
||||
{{- if .Values.metrics.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
labels: {{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- range $key, $value := .Values.metrics.serviceMonitor.selector }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels: {{- include "ccagc.labels" . | nindent 6 }}
|
||||
endpoints:
|
||||
- port: nginx-metrics
|
||||
path: /metrics
|
||||
{{- if .Values.metrics.serviceMonitor.interval }}
|
||||
interval: {{ .Values.metrics.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace }}
|
||||
{{- end }}
|
@ -0,0 +1,28 @@
|
||||
{{- if .Values.metrics.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "ccagc.fullname" . }}-phpfpm
|
||||
{{- if .Values.metrics.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
labels: {{- include "ccagc.labels" . | nindent 4 }}
|
||||
{{- range $key, $value := .Values.metrics.serviceMonitor.selector }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels: {{- include "ccagc.labels" . | nindent 6 }}
|
||||
endpoints:
|
||||
- port: phpfpm-metrics
|
||||
path: /metrics
|
||||
{{- if .Values.metrics.serviceMonitor.interval }}
|
||||
interval: {{ .Values.metrics.serviceMonitor.interval }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
{{- end }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace }}
|
||||
{{- end }}
|
@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: "{{ include "ccagc.fullname" . }}-test-connection"
|
||||
labels:
|
||||
{{- include "ccagc.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
"helm.sh/hook": test-success
|
||||
spec:
|
||||
containers:
|
||||
- name: wget
|
||||
image: busybox
|
||||
command: ['wget']
|
||||
args: ['{{ include "ccagc.fullname" . }}:{{ .Values.service.port }}']
|
||||
restartPolicy: Never
|
@ -0,0 +1,324 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"affinity": {
|
||||
"type": "object"
|
||||
},
|
||||
"autoscaling": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"maxReplicas": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minReplicas": {
|
||||
"type": "integer"
|
||||
},
|
||||
"targetCPUUtilizationPercentage": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"externalDatabase": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"database": {
|
||||
"type": "string"
|
||||
},
|
||||
"host": {
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"type": "string"
|
||||
},
|
||||
"port": {
|
||||
"type": "integer"
|
||||
},
|
||||
"user": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"fullnameOverride": {
|
||||
"type": "string"
|
||||
},
|
||||
"image": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"pullPolicy": {
|
||||
"type": "string"
|
||||
},
|
||||
"registry": {
|
||||
"type": "string"
|
||||
},
|
||||
"repository": {
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"imagePullSecrets": {
|
||||
"type": "array"
|
||||
},
|
||||
"ingress": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"annotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"hosts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"host": {
|
||||
"type": "string"
|
||||
},
|
||||
"paths": {
|
||||
"type": "array"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tls": {
|
||||
"type": "array"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ingressRoute": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"accessControlAllowOriginList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"annotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"cors": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"host": {
|
||||
"type": "string"
|
||||
},
|
||||
"tls": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"metrics": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"nginx": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"image": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"pullPolicy": {
|
||||
"type": "string"
|
||||
},
|
||||
"repository": {
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"podAnnotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"resources": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limits": {
|
||||
"type": "object"
|
||||
},
|
||||
"requests": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"annotations": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prometheus.io/port": {
|
||||
"type": "string"
|
||||
},
|
||||
"prometheus.io/scrape": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"phpfpm": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"image": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"pullPolicy": {
|
||||
"type": "string"
|
||||
},
|
||||
"repository": {
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"podAnnotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"resources": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"limits": {
|
||||
"type": "object"
|
||||
},
|
||||
"requests": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"annotations": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prometheus.io/port": {
|
||||
"type": "string"
|
||||
},
|
||||
"prometheus.io/scrape": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"port": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"serviceMonitor": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"selector": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prometheus": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nameOverride": {
|
||||
"type": "string"
|
||||
},
|
||||
"nodeSelector": {
|
||||
"type": "object"
|
||||
},
|
||||
"podAnnotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"podLabels": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"app.kubernetes.io/voe-type": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"podSecurityContext": {
|
||||
"type": "object"
|
||||
},
|
||||
"replicaCount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"resources": {
|
||||
"type": "object"
|
||||
},
|
||||
"securityContext": {
|
||||
"type": "object"
|
||||
},
|
||||
"service": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"port": {
|
||||
"type": "integer"
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"serviceAccount": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"annotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"create": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tolerations": {
|
||||
"type": "array"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"externalDatabase": {
|
||||
"type": "object",
|
||||
"title": "External Database Details",
|
||||
"description": "If MariaDB is disabled. Use this section to specify the external database details",
|
||||
"form": true,
|
||||
"properties": {
|
||||
"host": {
|
||||
"type": "string",
|
||||
"form": true,
|
||||
"title": "Database Host"
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"form": true,
|
||||
"title": "Database Username"
|
||||
},
|
||||
"password": {
|
||||
"type": "string",
|
||||
"form": true,
|
||||
"title": "Database Password"
|
||||
},
|
||||
"database": {
|
||||
"type": "string",
|
||||
"form": true,
|
||||
"title": "Database Name"
|
||||
},
|
||||
"port": {
|
||||
"type": "integer",
|
||||
"form": true,
|
||||
"title": "Database Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ingressRoute": {
|
||||
"type": "object",
|
||||
"title": "Traefik Ingress Route Details",
|
||||
"form": true,
|
||||
"properties": {
|
||||
"annotations": {
|
||||
"type": "object"
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"form": true
|
||||
},
|
||||
"host": {
|
||||
"type": "string",
|
||||
"form": true,
|
||||
"title": "Use a custom hostname",
|
||||
"description": "Enable the ingress resource that allows you to access the ccagc installation."
|
||||
},
|
||||
"tls": {
|
||||
"type": "object",
|
||||
"form": true,
|
||||
"title": "Create a TLS secret for IngressRoute",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"form": true,
|
||||
"title": "Create a TLS secret",
|
||||
"description": "Enable TLS resource that allows you to access the ccagc installation via https."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"replicaCount": {
|
||||
"type": "integer",
|
||||
"form": true,
|
||||
"title": "Number of Replicas"
|
||||
},
|
||||
"metrics": {
|
||||
"type": "object",
|
||||
"form": true,
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"form": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,250 @@
|
||||
# Default values for ccagc.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
registry: us.gcr.io
|
||||
repository: ccoe-246623/sapian/vicidial-ccweb-agc
|
||||
tag: 1602-r24
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||
##
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
# pullSecrets:
|
||||
# - myRegistryKeySecretName
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
#logoUrl: https://sapian.voe.dialbox.cloud/vicidial/images/vicidial_admin_web_logoSAPIAN.png
|
||||
|
||||
externalDatabase:
|
||||
## Database host
|
||||
host: localhost
|
||||
|
||||
## Database host
|
||||
port: 3306
|
||||
|
||||
## Database user
|
||||
# Todo: Change to ccagc on ccdb helm/chart
|
||||
user: ccweb
|
||||
|
||||
## Database password
|
||||
password: ""
|
||||
|
||||
## Database name
|
||||
database: asterisk
|
||||
|
||||
## Additional pod labels
|
||||
##
|
||||
podLabels:
|
||||
app.kubernetes.io/voe-type: webapp
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name: ""
|
||||
|
||||
podAnnotations: {}
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
ingressRoute:
|
||||
enabled: true
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
host: chart-example.agc.voe.dialbox.cloud
|
||||
tls:
|
||||
enabled: true
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: chart-example.local
|
||||
paths: []
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 100
|
||||
targetCPUUtilizationPercentage: 80
|
||||
# targetMemoryUtilizationPercentage: 80
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
## Prometheus Exporter / Metrics
|
||||
##
|
||||
metrics:
|
||||
enabled: true
|
||||
nginx:
|
||||
enabled: true
|
||||
|
||||
## NGINX Prometheus Exporter image
|
||||
## ref: https://hub.docker.com/r/nginx/nginx-prometheus-exporter/tags/
|
||||
##
|
||||
image:
|
||||
repository: docker.io/nginx/nginx-prometheus-exporter
|
||||
tag: 0.8.0
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
# pullSecrets:
|
||||
# - myRegistryKeySecretName
|
||||
|
||||
## Prometheus exporter pods' annotation and labels
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
podAnnotations: {}
|
||||
|
||||
## Prometheus exporter service parameters
|
||||
##
|
||||
service:
|
||||
## NGINX Prometheus exporter port
|
||||
##
|
||||
port: 9113
|
||||
## Annotations for the Prometheus exporter service
|
||||
##
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "{{ .Values.metrics.nginx.service.port }}"
|
||||
|
||||
## NGINX Prometheus exporter resource requests and limits
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
requests: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
phpfpm:
|
||||
enabled: true
|
||||
|
||||
## phpfpm Exporter image
|
||||
## ref: https://hub.docker.com/r/hipages/php-fpm_exporter
|
||||
##
|
||||
image:
|
||||
repository: docker.io/hipages/php-fpm_exporter
|
||||
tag: 2.0.1
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
##
|
||||
# pullSecrets:
|
||||
# - myRegistryKeySecretName
|
||||
|
||||
## Prometheus exporter pods' annotation and labels
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
podAnnotations: {}
|
||||
|
||||
## Prometheus exporter service parameters
|
||||
##
|
||||
service:
|
||||
## NGINX Prometheus exporter port
|
||||
##
|
||||
port: 9253
|
||||
## Annotations for the Prometheus exporter service
|
||||
##
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "{{ .Values.metrics.phpfpm.service.port }}"
|
||||
|
||||
## NGINX Prometheus exporter resource requests and limits
|
||||
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
||||
##
|
||||
resources:
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
limits: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
requests: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
|
||||
## Prometheus Operator ServiceMonitor configuration
|
||||
##
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
## Namespace in which Prometheus is running
|
||||
##
|
||||
# namespace: monitoring
|
||||
|
||||
## Interval at which metrics should be scraped.
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
|
||||
##
|
||||
# interval: 10s
|
||||
|
||||
## Timeout after which the scrape is ended
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
|
||||
##
|
||||
# scrapeTimeout: 10s
|
||||
|
||||
## ServiceMonitor selector labels
|
||||
## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
|
||||
##
|
||||
# selector:
|
||||
# prometheus: kube-prometheus
|
Loading…
Reference in new issue