mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-21 06:45:49 +00:00
publicando versão funcional openshift template
This commit is contained in:
parent
181b5e3ee7
commit
2b52f042be
4 changed files with 237 additions and 49 deletions
|
@ -1,5 +0,0 @@
|
||||||
FROM docker.io/maven:latest
|
|
||||||
WORKDIR /
|
|
||||||
ADD target/spring-petclinic-1.5.1.jar .
|
|
||||||
EXPOSE 8080
|
|
||||||
CMD java -jar spring-petclinic-1.5.1.jar
|
|
22
Jenkinsfile
vendored
22
Jenkinsfile
vendored
|
@ -1,22 +0,0 @@
|
||||||
node('Slave_AWS'){
|
|
||||||
stage('Checkout')
|
|
||||||
{
|
|
||||||
git 'https://github.com/spring-projects/spring-petclinic.git'
|
|
||||||
}
|
|
||||||
stage('Build')
|
|
||||||
{
|
|
||||||
//sh 'docker run --rm --name build_maven -v $(pwd):/app docker.io/maven:alpine bash -c "cd app;mvn clean install"'
|
|
||||||
}
|
|
||||||
stage('Sonarqube')
|
|
||||||
{
|
|
||||||
sh 'docker run --rm --name maven -v $(pwd):/app docker.io/maven:alpine bash -c "cd app; mvn clean install cobertura:cobertura -Dcobertura.report.format=xml sonar:sonar -Dsonar.host.url=http://34.205.24.188:9000"'
|
|
||||||
}
|
|
||||||
stage('Unit Test')
|
|
||||||
{
|
|
||||||
junit 'target/surefire-reports/*.xml'
|
|
||||||
}
|
|
||||||
stage('Archive artifact')
|
|
||||||
{
|
|
||||||
archiveArtifacts 'target/spring-petclinic-1.5.1.jar'
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
- apiVersion: v1
|
|
||||||
kind: BuildConfig
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
description: Define como empacotar o APP
|
|
||||||
name: petclinic-docker
|
|
||||||
spec:
|
|
||||||
output:
|
|
||||||
to:
|
|
||||||
kind: ImageStreamTag
|
|
||||||
name: petclinic-docker:latest
|
|
||||||
source:
|
|
||||||
type: Binary
|
|
||||||
strategy:
|
|
||||||
dockerStrategy:
|
|
||||||
dockerfilePath: Dockerfile
|
|
||||||
- apiVersion: v1
|
|
||||||
kind: ImageStream
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
description: Acompanha as mudanças na imagem do aplicativo
|
|
||||||
name: petclinic-docker
|
|
237
openshift/petclinic-web-app.yaml
Normal file
237
openshift/petclinic-web-app.yaml
Normal file
|
@ -0,0 +1,237 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Template
|
||||||
|
metadata:
|
||||||
|
name: petclinic-web-app
|
||||||
|
parameters:
|
||||||
|
- name: APP_NAME
|
||||||
|
description: The name assigned to all of the application objects defined in this template.
|
||||||
|
displayName: Application Name
|
||||||
|
required: true
|
||||||
|
value: petclinic-web-app
|
||||||
|
- name: GIT_SOURCE_URL
|
||||||
|
description: The source URL for the application
|
||||||
|
displayName: Source URL
|
||||||
|
required: true
|
||||||
|
value: https://github.com/alexbaptista/spring-petclinic.git
|
||||||
|
- name: GIT_SOURCE_REF
|
||||||
|
description: The source Ref for the application
|
||||||
|
displayName: Source Ref
|
||||||
|
required: true
|
||||||
|
value: master
|
||||||
|
- description: Github trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted.
|
||||||
|
displayName: GitHub Webhook Secret
|
||||||
|
from: '[a-zA-Z0-9]{40}'
|
||||||
|
generate: expression
|
||||||
|
name: GITHUB_WEBHOOK_SECRET
|
||||||
|
required: true
|
||||||
|
- description: A secret string used to configure the Generic webhook.
|
||||||
|
displayName: Generic Webhook Secret
|
||||||
|
from: '[a-zA-Z0-9]{40}'
|
||||||
|
generate: expression
|
||||||
|
name: GENERIC_WEBHOOK_SECRET
|
||||||
|
required: true
|
||||||
|
objects:
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: ImageStream
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
name: ${APP_NAME}
|
||||||
|
spec: {}
|
||||||
|
status:
|
||||||
|
dockerImageRepository: ""
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: BuildConfig
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
pipeline.alpha.openshift.io/uses: '[{"name": "${NAME}", "namespace": "", "kind": "DeploymentConfig"}]'
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
name: ${APP_NAME}-pipeline
|
||||||
|
name: ${APP_NAME}-pipeline
|
||||||
|
spec:
|
||||||
|
strategy:
|
||||||
|
jenkinsPipelineStrategy:
|
||||||
|
jenkinsfile: |-
|
||||||
|
try {
|
||||||
|
timeout(time: 20, unit: 'MINUTES') {
|
||||||
|
def appName="${APP_NAME}"
|
||||||
|
def project=""
|
||||||
|
|
||||||
|
node {
|
||||||
|
stage("Initialize") {
|
||||||
|
project = env.PROJECT_NAME
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
node("maven") {
|
||||||
|
stage("Checkout") {
|
||||||
|
git url: "${GIT_SOURCE_URL}", branch: "${GIT_SOURCE_REF}"
|
||||||
|
}
|
||||||
|
stage("Build JAR") {
|
||||||
|
sh "mvn clean install"
|
||||||
|
stash name:"jar", includes:"target/spring-petclinic-1.5.1.jar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
node {
|
||||||
|
stage("Build Image") {
|
||||||
|
unstash name:"jar"
|
||||||
|
sh "oc start-build ${appName}-docker --from-file=target/spring-petclinic-1.5.1.jar -n ${project}"
|
||||||
|
openshiftVerifyBuild bldCfg: "${appName}-docker", namespace: project, waitTime: '20', waitUnit: 'min'
|
||||||
|
}
|
||||||
|
stage("Deploy") {
|
||||||
|
openshiftDeploy deploymentConfig: appName, namespace: project
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
echo "in catch block"
|
||||||
|
echo "Caught: ${err}"
|
||||||
|
currentBuild.result = 'FAILURE'
|
||||||
|
throw err
|
||||||
|
}
|
||||||
|
type: JenkinsPipeline
|
||||||
|
triggers:
|
||||||
|
- github:
|
||||||
|
secret: "${GITHUB_WEBHOOK_SECRET}"
|
||||||
|
type: GitHub
|
||||||
|
- generic:
|
||||||
|
secret: "${GENERIC_WEBHOOK_SECRET}"
|
||||||
|
type: Generic
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: BuildConfig
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: ${APP_NAME}-docker
|
||||||
|
name: ${APP_NAME}-docker
|
||||||
|
spec:
|
||||||
|
output:
|
||||||
|
to:
|
||||||
|
kind: ImageStreamTag
|
||||||
|
name: ${APP_NAME}:latest
|
||||||
|
postCommit: {}
|
||||||
|
resources: {}
|
||||||
|
runPolicy: Serial
|
||||||
|
source:
|
||||||
|
dockerfile: |-
|
||||||
|
FROM docker.io/maven:alpine
|
||||||
|
WORKDIR /
|
||||||
|
ADD spring-petclinic-1.5.1.jar .
|
||||||
|
EXPOSE 8080
|
||||||
|
CMD java -jar spring-petclinic-1.5.1.jar
|
||||||
|
binary:
|
||||||
|
asFile: spring-petclinic-1.5.1.jar
|
||||||
|
type: Docker
|
||||||
|
strategy:
|
||||||
|
dockerStrategy:
|
||||||
|
from:
|
||||||
|
kind: DockerImage
|
||||||
|
name: docker.io/maven:alpine
|
||||||
|
type: Docker
|
||||||
|
triggers: []
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: DeploymentConfig
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
name: ${APP_NAME}
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
deploymentconfig: ${APP_NAME}
|
||||||
|
strategy:
|
||||||
|
rollingParams:
|
||||||
|
intervalSeconds: 1
|
||||||
|
maxSurge: 25%
|
||||||
|
maxUnavailable: 25%
|
||||||
|
timeoutSeconds: 600
|
||||||
|
updatePeriodSeconds: 1
|
||||||
|
type: Rolling
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
deploymentconfig: ${APP_NAME}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: ${APP_NAME}:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: ${APP_NAME}
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
resources: {}
|
||||||
|
terminationMessagePath: /dev/termination-log
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8080
|
||||||
|
scheme: HTTP
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
timeoutSeconds: 2
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8080
|
||||||
|
scheme: HTTP
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
timeoutSeconds: 2
|
||||||
|
periodSeconds: 10
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 3
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
restartPolicy: Always
|
||||||
|
securityContext: {}
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
test: false
|
||||||
|
triggers:
|
||||||
|
- type: ConfigChange
|
||||||
|
- imageChangeParams:
|
||||||
|
automatic: true
|
||||||
|
containerNames:
|
||||||
|
- ${APP_NAME}
|
||||||
|
from:
|
||||||
|
kind: ImageStreamTag
|
||||||
|
name: ${APP_NAME}:latest
|
||||||
|
type: ImageChange
|
||||||
|
status: {}
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
openshift.io/generated-by: OpenShiftNewApp
|
||||||
|
labels:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
name: ${APP_NAME}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: 8080-tcp
|
||||||
|
port: 8080
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8080
|
||||||
|
selector:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
deploymentconfig: ${APP_NAME}
|
||||||
|
sessionAffinity: None
|
||||||
|
type: ClusterIP
|
||||||
|
status:
|
||||||
|
loadBalancer: {}
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: Route
|
||||||
|
metadata:
|
||||||
|
name: ${APP_NAME}
|
||||||
|
labels:
|
||||||
|
app: ${APP_NAME}
|
||||||
|
spec:
|
||||||
|
to:
|
||||||
|
kind: Service
|
||||||
|
name: ${APP_NAME}
|
||||||
|
weight: 100
|
||||||
|
port:
|
||||||
|
targetPort: 8080-tcp
|
||||||
|
wildcardPolicy: None
|
Loading…
Reference in a new issue