Представленный шаблон позволяет развернуть сервис eltex-bob в кластере OpenShift.
Подготовка к установке:
Порядок установки:
применить шаблон при помощи команды
oc apply -f eltex-bob-template.yaml |



kind: Template
apiVersion: v1
metadata:
name: eltex-bob-template
annotations:
description: "Eltex-bob application template"
openshift.io/display-name: "The Eltex BOB"
openshift.io/provider-display-name: "Eltex"
iconClass: "icon-openjdk"
objects:
- apiVersion: v1
kind: ConfigMap
metadata:
name: ${INSTANCE_NAME}-config
data:
application.properties: |-
spring.application.name=bob
spring.datasource.url=${DB_URL}
spring.datasource.hikari.maximum-pool-size=1
spring.datasource.username=${DB_LOGIN}
spring.datasource.password=${DB_PASS}
domain_search.mask=${AP_SEARCH_MASK}
domain_search.regex=^root/Ap/(.*)$
domain_search.replacement=$1
vsp_search.regex=/(\\d{2,}[-_]\\d{2,})[^/]*$
log.include.stacktrace=false
mac.splitter=":"
auth.enabled=false
auth.username=user
auth.password=password
excel.config.file=/etc/eltex-bob/excel_config.yaml
server.port=9190
excel_config.yaml: |-
vspExcelFile: /etc/eltex-bob/vsp.xlsx
vspSheetName: Операторы
type: NUMBER
columns:
vsp: 5
bank: 2
region: 12
office: 3
address: 9
city: 8
log4j2.xml: |-
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="maxSize" value="5MB"/>
<Property name="maxCount" value="7"/>
<Property name="logDir" value="/var/log/eltex-bob"/>
<Property name="defaultPattern" value="%d{ISO8601} [%t] %-5p %logger{1} %C{1}.%M(line:%L). %m%n"/>
<Property name="gelfHost" value="udp:lab3-test.eltex.loc"/>
<Property name="gelfPort" value="12201"/>
<Property name="gelfLevel" value="OFF"/>
<Property name="filenamePrefix" value="eltex-bob"/>
</Properties>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout>
<Pattern>${defaultPattern}</Pattern>
</PatternLayout>
</Console>
<Gelf name="Gelf"
host="${gelfHost}"
port="${gelfPort}"
version="1.1"
facility="${filenamePrefix}"
extractStackTrace="true"
originHost="%host{fqdn}"
maximumMessageSize="8192" >
<Field name="thread" pattern="%t" />
<Field name="level" pattern="%level" />
<Field name="severity" pattern="%-5level" />
<Field name="logger" pattern="%logger{1}" />
<Field name="location" pattern="%C{1}.%M(line:%L)" />
</Gelf>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="Gelf" level="${gelfLevel}"/>
</Root>
</Loggers>
</Configuration>
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: ${INSTANCE_NAME}
name: ${INSTANCE_NAME}
spec:
replicas: 1
selector:
app: ${INSTANCE_NAME}
strategy:
type: "Rolling"
template:
metadata:
labels:
app: ${INSTANCE_NAME}
spec:
containers:
- name: ${INSTANCE_NAME}-container
image: ${IMAGE_NAME}
volumeMounts:
- name: config-volume
mountPath: /etc/eltex-bob/application.properties
subPath: application.properties
- name: config-volume
mountPath: /etc/eltex-bob/excel_config.yaml
subPath: excel_config.yaml
- name: config-volume
mountPath: /etc/eltex-bob/log4j2.xml
subPath: log4j2.xml
livenessProbe:
httpGet:
path: /actuator/health
port: 9190
scheme: HTTP
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /GetAPList
port: 9190
scheme: HTTP
initialDelaySeconds: 30
volumes:
- name: config-volume
configMap:
name: ${INSTANCE_NAME}-config
items:
- key: application.properties
path: application.properties
- key: excel_config.yaml
path: excel_config.yaml
- key: log4j2.xml
path: log4j2.xml
triggers:
- type: "ConfigChange"
- apiVersion: v1
kind: Service
metadata:
name: ${INSTANCE_NAME}-service
spec:
ports:
- port: 9190
protocol: TCP
selector:
app: ${INSTANCE_NAME}
- apiVersion: v1
kind: Route
metadata:
name: ${INSTANCE_NAME}-route
spec:
to:
kind: Service
name: ${INSTANCE_NAME}-service
parameters:
- name: INSTANCE_NAME
displayName: Name of service
description: Name of service in openshift
required: true
value: eltex-bob
- name: IMAGE_NAME
displayName: Image name
description: Image name or pull spec
required: true
value: hub.eltex-co.ru/softwlc/eltex-bob:latest
- name: DB_URL
displayName: Database connection string
description: Database for eltex-bob
required: true
value: jdbc:mysql://lab3.eltex.loc:3306/eltex_ems?useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
- name: DB_LOGIN
displayName: Database login
description: Database login
required: true
value: root
- name: DB_PASS
displayName: Database password
description: Database password
required: true
value: root
- name: AP_SEARCH_MASK
displayName: AP search domain mask
description: AP search domain mask
required: true
value: "[a-zA-Z0-9.-_]*.ap.root"
message: "... The Eltex Bob with name ${INSTANCE_NAME} is starting ..."
|