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: type: Recreate template: metadata: labels: deploymentconfig: ${SERVICE_NAME} spec: containers: - env: - name: CONTEXT_PATH value: / - name: INSTALL4J_ADD_VM_PARAMS value: -Xms1200m -Xmx1200m -Djava.util.prefs.userRoot=/nexus-data/ 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: 2Gi 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: - 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: 3.2.1 - description: Volume space available for Sonatype Nexus e.g. 512Mi, 2Gi name: VOLUME_CAPACITY required: true value: 2Gi