Skip to content

Instantly share code, notes, and snippets.

@blues-man
Last active May 23, 2018 14:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blues-man/b34788703025163bb8c256ae9aac00aa to your computer and use it in GitHub Desktop.
Save blues-man/b34788703025163bb8c256ae9aac00aa 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:
recreateParams:
timeoutSeconds: 600
post:
failurePolicy: Abort
execNewPod:
containerName: ${SERVICE_NAME}
env:
- name: "HTTP_PROXY"
value: "http://136.155.228.107:3128"
- name: "HTTPS_PROXY"
value: "https://136.155.228.107:3128"
- name: "http_proxy"
value: "http://136.155.228.107:3128"
- name: "https_proxy"
value: "https://136.155.228.107:3128"
- name: "NO_PROXY"
value: ".cluster.local,.svc,.test.sll.se,10.180.128.32,10.180.128.33,10.180.128.34,172.30.0.0/16,10.1.0.0/16,satellite6.karolinska.se"
- name: "no_proxy"
value: ".cluster.local,.svc,.test.sll.se,10.180.128.32,10.180.128.33,10.180.128.34,172.30.0.0/16,10.1.0.0/16,satellite6.karolinska.se"
command:
- "/bin/bash"
- "-c"
- "curl -o /tmp/nexus-functions -s https://gist.githubusercontent.com/blues-man/ac195f2b0944c1425cbc70469ed6a719/raw/116c8b527edeb7e446848de72f0ec11aa95f8744/functions; source /tmp/nexus-functions; add_nexus3_redhat_repos admin admin123 http://${SERVICE_NAME}:8081"
type: Recreate
template:
metadata:
labels:
deploymentconfig: ${SERVICE_NAME}
spec:
containers:
- env:
- name: CONTEXT_PATH
value: /
- name: "HTTP_PROXY"
value: "http://136.155.228.107:3128"
- name: "HTTPS_PROXY"
value: "https://136.155.228.107:3128"
- name: "http_proxy"
value: "http://136.155.228.107:3128"
- name: "https_proxy"
value: "https://136.155.228.107:3128"
- name: "NO_PROXY"
value: ".cluster.local,.svc,.test.sll.se,10.180.128.32,10.180.128.33,10.180.128.34,172.30.0.0/16,10.1.0.0/16,satellite6.karolinska.se"
- name: "no_proxy"
value: ".cluster.local,.svc,.test.sll.se,10.180.128.32,10.180.128.33,10.180.128.34,172.30.0.0/16,10.1.0.0/16,satellite6.karolinska.se"
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:
limits:
memory: ${MAX_MEMORY}
requests:
memory: 512Mi
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}:${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:
- displayName: Sonatype Nexus service name
name: SERVICE_NAME
required: true
value: nexus
- displayName: Sonatype Nexus version
name: NEXUS_VERSION
required: true
value: 3.6.0
- description: Volume space available for Sonatype Nexus e.g. 512Mi, 2Gi
displayName: Volume Space for Nexus
name: VOLUME_CAPACITY
required: true
value: 2Gi
- description: Max memory allocated to the Nexus pod
displayName: Max Memory
name: MAX_MEMORY
required: true
value: 1Gi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment