New file |
| | |
| | | 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: 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} |
| | | 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 |