[15.02.20] kubernetes configs and application yamls
This commit is contained in:
parent
f2be9dfb4b
commit
4615c1a0c1
@ -2,5 +2,4 @@ FROM openjdk:8-jre-alpine
|
||||
MAINTAINER Andrew Sotheran <cryptosky.user@gmail.com>
|
||||
COPY /target/cryptosky-db-gateway.jar /home
|
||||
EXPOSE 9090
|
||||
CMD ["/bin/bash"]
|
||||
CMD ["java", "-jar", "/home/cryptosky-db-gateway.jar"]
|
||||
@ -26,6 +26,28 @@ String get_application_version() {
|
||||
"${pom.version}-b${env.BUILD_NUMBER}"
|
||||
}
|
||||
|
||||
@NonCPS
|
||||
def applyResource(String environment, String resourcePath, Map<String, Object> parameters) {
|
||||
String command = "kubectl apply --filename ${resourcePath}"
|
||||
parameters.each { String key, Object value ->
|
||||
command += " --param=${key}='${value}'"
|
||||
}
|
||||
command += "| oc --namespace ${environment} apply --filename -"
|
||||
|
||||
sh "${command}"
|
||||
}
|
||||
|
||||
def updateBuildResources(String environment) {
|
||||
Map<String, Object> buildConfigParameters = [
|
||||
RESOURCE_NAME : env.APPLICATION_NAME,
|
||||
APP_LABEL : env.APPLICATION_LABEL,
|
||||
DOCKER_REGISTRY: env.DOCKER_REGISTRY,
|
||||
IMAGE_VERSION : env.APPLICATION_VERSION
|
||||
]
|
||||
|
||||
applyResource(environment, 'configuration/templates/build-config.yaml', buildConfigParameters)
|
||||
}
|
||||
|
||||
def deploy( Integer replicas ) {
|
||||
// rollout latest
|
||||
// get rollout status
|
||||
@ -61,6 +83,7 @@ try {
|
||||
stage('Build Image') {
|
||||
mvn 'clean package -DskipTests'
|
||||
|
||||
sh "sed -i 's/BUILD_NUMBER/${env.APPLICATION_VERSION}/g' deploy-config.yaml"
|
||||
// Update build config for kubernetes
|
||||
// Update Service yaml for kubernetes
|
||||
// Update route yaml for kubernetes
|
||||
|
||||
118
configuration/templates/deploy-config.yaml
Normal file
118
configuration/templates/deploy-config.yaml
Normal file
@ -0,0 +1,118 @@
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
name: db-gateway
|
||||
name: db-gateway
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
app: db-gateway
|
||||
strategy:
|
||||
type: Rolling
|
||||
rollingParams:
|
||||
updatePeriodSeconds: 1
|
||||
intervalSeconds: 1
|
||||
timeoutSeconds: 300
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: db-gateway
|
||||
spec:
|
||||
containers:
|
||||
- name: db-gateway
|
||||
image: registry.cryptosky.me:4243/
|
||||
env:
|
||||
- name: KUBERNETES_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: CONTAINER_CORE_LIMIT
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
resource: limits.cpu
|
||||
- name: CONTAINER_MAX_MEMORY
|
||||
valueFrom:
|
||||
resourceFieldRef:
|
||||
resource: limits.memory
|
||||
|
||||
- name: JDBC_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: jdbc
|
||||
key: jdbc.url
|
||||
- name: JDBC_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: jdbc
|
||||
key: jdbc.username
|
||||
- name: JDBC_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: jdbc
|
||||
key: jdbc.password
|
||||
- name: TZ
|
||||
value: Europe/London
|
||||
image: ${IMAGE}:${IMAGE_VERSION}
|
||||
imagePullPolicy: Always
|
||||
name: db-gateway
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: ${LIVENESS_PATH}
|
||||
port: 9090
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 30
|
||||
timeoutSeconds: 1
|
||||
successThreshold: 1
|
||||
failureThreshold: 3
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: ${READINESS_PATH}
|
||||
port: 9090
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 5
|
||||
timeoutSeconds: 1
|
||||
successThreshold: 1
|
||||
failureThreshold: 10
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 128Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
restartPolicy: Always
|
||||
triggers: []
|
||||
parameters:
|
||||
- name: RESOURCE_NAME
|
||||
displayName: Resource Name
|
||||
description: The name of the deployment configuration resource that also matches other resources.
|
||||
required: true
|
||||
- name: APP_LABEL
|
||||
displayName: Application Label
|
||||
description: Name of the application label that should be used in all resources.
|
||||
required: true
|
||||
- name: IMAGE
|
||||
displayName: Image Reference
|
||||
description: Complete reference to an image in external Docker Registry.
|
||||
required: true
|
||||
- name: IMAGE_VERSION
|
||||
displayName: Image Version
|
||||
description: Version of specific image to pull from external Docker registry.
|
||||
required: true
|
||||
- name: LIVENESS_PATH
|
||||
displayName: Liveness Probe Path
|
||||
description: Path to use in HTTP Get for the liveness probe.
|
||||
value: /health
|
||||
required: false
|
||||
- name: READINESS_PATH
|
||||
displayName: Readiness Probe Path
|
||||
description: Path to use in HTTP Get for the readiness probe.
|
||||
value: /info
|
||||
required: false
|
||||
- name: SPRING_PROFILES_ACTIVE
|
||||
displayName: Spring Profiles Active
|
||||
description: The active Spring profile(s)
|
||||
required: false
|
||||
24
src/main/resources/application.yaml
Normal file
24
src/main/resources/application.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
spring:
|
||||
application:
|
||||
name: @project.artifactId@
|
||||
datasource:
|
||||
url: ${JDBC_URL}
|
||||
username: ${JDBC_USERNAME}
|
||||
password: ${JDBC_PASSWORD}
|
||||
driver-class-name: org.postgresql.Driver
|
||||
hikari:
|
||||
maximum-pool-size: 100
|
||||
minimum-idle: 1
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: validate
|
||||
show-sql: true
|
||||
properties:
|
||||
org.hibernate.envers.revision_field_name: revision_id
|
||||
org.hibernate.envers.revision_type_field_name: revision_type
|
||||
org.hibernate.jdbc.lob.non_contextual_creation: true
|
||||
format_sql: true
|
||||
database: postgresql
|
||||
|
||||
server:
|
||||
port: 9090
|
||||
Loading…
x
Reference in New Issue
Block a user