apiVersion: v1 kind: Template labels: template: jenkins-persistent-template app: jenkins message: A Jenkins service has been created in your project. Log into Jenkins with your OpenShift account. The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template. metadata: annotations: description: |- Jenkins service, with persistent storage. NOTE: You must have persistent volumes available in your cluster to use this template. iconClass: icon-jenkins openshift.io/display-name: Jenkins (Persistent) tags: instant-app,jenkins template.openshift.io/documentation-url: https://docs.openshift.org/latest/using_images/other_images/jenkins.html template.openshift.io/long-description: This template deploys a Jenkins server capable of managing OpenShift Pipeline builds and supporting OpenShift-based oauth login. template.openshift.io/provider-display-name: Red Hat, Inc. template.openshift.io/support-url: https://access.redhat.com name: jenkins-persistent objects: - apiVersion: v1 kind: Route metadata: annotations: template.openshift.io/expose-uri: http://{.spec.host}{.spec.path} name: ${JENKINS_SERVICE_NAME} spec: tls: insecureEdgeTerminationPolicy: Redirect termination: edge to: kind: Service name: ${JENKINS_SERVICE_NAME} - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ${JENKINS_SERVICE_NAME} spec: accessModes: - ReadWriteOnce resources: requests: storage: ${VOLUME_CAPACITY} - apiVersion: v1 kind: DeploymentConfig metadata: annotations: template.alpha.openshift.io/wait-for-ready: "true" name: ${JENKINS_SERVICE_NAME} spec: replicas: 1 selector: name: ${JENKINS_SERVICE_NAME} strategy: type: Recreate template: metadata: labels: name: ${JENKINS_SERVICE_NAME} spec: containers: - capabilities: {} env: - name: OPENSHIFT_ENABLE_OAUTH value: ${ENABLE_OAUTH} - name: JAVA_GC_OPTS value: ${JAVA_GC_OPTS} - name: OPENSHIFT_ENABLE_REDIRECT_PROMPT value: "true" - name: OPENSHIFT_JENKINS_JVM_ARCH value: ${JVM_ARCH} - name: JENKINS_OPTS value: ${JENKINS_OPTS} - name: KUBERNETES_MASTER value: https://kubernetes.default:443 - name: KUBERNETES_TRUST_CERTIFICATES value: "true" - name: JNLP_SERVICE_NAME value: ${JNLP_SERVICE_NAME} image: ' ' imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 30 httpGet: path: /login port: 8080 initialDelaySeconds: 420 timeoutSeconds: 3 name: jenkins readinessProbe: httpGet: path: /login port: 8080 initialDelaySeconds: 3 timeoutSeconds: 3 resources: limits: memory: ${MEMORY_LIMIT} requests: memory: 512Mi securityContext: capabilities: {} privileged: false terminationMessagePath: /dev/termination-log volumeMounts: - mountPath: /var/lib/jenkins name: ${JENKINS_SERVICE_NAME}-data dnsPolicy: ClusterFirst restartPolicy: Always serviceAccountName: ${JENKINS_SERVICE_NAME} volumes: - name: ${JENKINS_SERVICE_NAME}-data persistentVolumeClaim: claimName: ${JENKINS_SERVICE_NAME} triggers: - imageChangeParams: automatic: true containerNames: - jenkins from: kind: ImageStreamTag name: ${JENKINS_IMAGE_STREAM_TAG} namespace: ${NAMESPACE} lastTriggeredImage: "" type: ImageChange - type: ConfigChange - apiVersion: v1 kind: ServiceAccount metadata: annotations: serviceaccounts.openshift.io/oauth-redirectreference.jenkins: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"${JENKINS_SERVICE_NAME}"}}' name: ${JENKINS_SERVICE_NAME} - apiVersion: v1 groupNames: null kind: RoleBinding metadata: name: ${JENKINS_SERVICE_NAME}_edit roleRef: name: edit subjects: - kind: ServiceAccount name: ${JENKINS_SERVICE_NAME} - apiVersion: v1 kind: Service metadata: name: ${JNLP_SERVICE_NAME} spec: ports: - name: agent nodePort: 0 port: 50000 protocol: TCP targetPort: 50000 selector: name: ${JENKINS_SERVICE_NAME} sessionAffinity: None type: ClusterIP - apiVersion: v1 kind: Service metadata: annotations: service.alpha.openshift.io/dependencies: '[{"name": "${JNLP_SERVICE_NAME}", "namespace": "", "kind": "Service"}]' service.openshift.io/infrastructure: "true" name: ${JENKINS_SERVICE_NAME} spec: ports: - name: web nodePort: 0 port: 80 protocol: TCP targetPort: 8080 selector: name: ${JENKINS_SERVICE_NAME} sessionAffinity: None type: ClusterIP parameters: - description: The name of the OpenShift Service exposed for the Jenkins container. displayName: Jenkins Service Name name: JENKINS_SERVICE_NAME value: jenkins - description: The name of the service used for master/slave communication. displayName: Jenkins JNLP Service Name name: JNLP_SERVICE_NAME value: jenkins-jnlp - description: Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'. displayName: Enable OAuth in Jenkins name: ENABLE_OAUTH value: "true" - description: Whether Jenkins runs with a 32 bit (i386) or 64 bit (x86_64) JVM. displayName: Jenkins JVM Architecture name: JVM_ARCH value: i386 - description: Maximum amount of memory the container can use. displayName: Memory Limit name: MEMORY_LIMIT value: 512Mi - description: Container Group opts displayName: Container Group opts name: JAVA_GC_OPTS - description: Volume space available for data, e.g. 512Mi, 2Gi. displayName: Volume Capacity name: VOLUME_CAPACITY required: true value: 1Gi - description: The OpenShift Namespace where the Jenkins ImageStream resides. displayName: Jenkins ImageStream Namespace name: NAMESPACE value: openshift - description: Name of the ImageStreamTag to be used for the Jenkins image. displayName: Jenkins ImageStreamTag name: JENKINS_IMAGE_STREAM_TAG value: jenkins:latest - description: Jenkins Arguments displayName: Jenkins Arguments name: JENKINS_OPTS value: --sessionTimeout=0