Skip to content

Instantly share code, notes, and snippets.

@ll911
Last active September 23, 2017 00:21
Show Gist options
  • Save ll911/b6357021dd91d66a608c6d452b6ddb66 to your computer and use it in GitHub Desktop.
Save ll911/b6357021dd91d66a608c6d452b6ddb66 to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: Template
labels:
template: nexus3-persistent-template
metadata:
name: nexus3-persistent
annotations:
description: Sonatype Nexus 3 persistent template
tags: ci,nexus
objects:
- apiVersion: v1
kind: ImageStream
metadata:
labels:
app: ${SERVICE_NAME}
name: ${SERVICE_NAME}
spec:
tags:
- from:
kind: DockerImage
name: docker.io/sonatype/nexus3:${NEXUS_VERSION}
name: ${NEXUS_VERSION}
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: ${SERVICE_NAME}
name: ${SERVICE_NAME}
spec:
replicas: 1
selector:
deploymentconfig: ${SERVICE_NAME}
strategy:
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailable: 0
timeoutSeconds: 600
updatePeriodSeconds: 1
post:
failurePolicy: Abort
execNewPod:
containerName: ${SERVICE_NAME}
command:
- "/bin/bash"
- "-c"
- "curl -o /tmp/nexus-functions -s https://raw.githubusercontent.com/OpenShiftDemos/nexus/master/scripts/nexus-functions; source /tmp/nexus-functions; add_nexus3_redhat_repos admin admin123 http://${SERVICE_NAME}:8081"
type: Rolling
template:
metadata:
labels:
deploymentconfig: ${SERVICE_NAME}
spec:
containers:
- env:
- name: CONTEXT_PATH
value: /
image: ' '
imagePullPolicy: IfNotPresent
livenessProbe:
exec:
command:
- echo
- ok
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: ${SERVICE_NAME}
ports:
- containerPort: 8081
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: 8081
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
terminationMessagePath: /dev/termination-log
volumeMounts:
- mountPath: /nexus-data
name: ${SERVICE_NAME}-data
dnsPolicy: ClusterFirst
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: ${SERVICE_NAME}-data
persistentVolumeClaim:
claimName: ${SERVICE_NAME}-pv
test: false
triggers:
- type: ConfigChange
- imageChangeParams:
automatic: true
containerNames:
- ${SERVICE_NAME}
from:
kind: ImageStreamTag
name: ${SERVICE_NAME}3:${NEXUS_VERSION}
type: ImageChange
- apiVersion: v1
kind: Service
metadata:
labels:
app: ${SERVICE_NAME}
name: ${SERVICE_NAME}
spec:
ports:
- name: 8081-tcp
port: 8081
protocol: TCP
targetPort: 8081
selector:
deploymentconfig: ${SERVICE_NAME}
sessionAffinity: None
type: ClusterIP
- apiVersion: v1
kind: Route
metadata:
labels:
app: ${SERVICE_NAME}
name: ${SERVICE_NAME}
spec:
port:
targetPort: 8081-tcp
to:
kind: Service
name: ${SERVICE_NAME}
weight: 100
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: ${SERVICE_NAME}
name: ${SERVICE_NAME}-pv
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: ${VOLUME_CAPACITY}
parameters:
- description: Sonatype Nexus service name
displayName: Sonatype Nexus service name
name: SERVICE_NAME
required: true
value: nexus
- description: Sonatype Nexus version
displayName: Sonatype Nexus version
name: NEXUS_VERSION
required: true
value: latest
- description: Volume space available for Sonatype Nexus e.g. 512Mi, 2Gi
name: VOLUME_CAPACITY
required: true
value: 2Gi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment