|
|
|
@ -0,0 +1,295 @@ |
|
|
|
{ |
|
|
|
"kind": "Template", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "jenkins-pipeline-persistent", |
|
|
|
"creationTimestamp": null, |
|
|
|
"annotations": { |
|
|
|
"description": "Jenkins service, with persistent storage.\nYou must have persistent volumes available in your cluster to use this template.", |
|
|
|
"iconClass": "icon-jenkins", |
|
|
|
"tags": "instant-app,jenkins" |
|
|
|
} |
|
|
|
}, |
|
|
|
"message": "A Jenkins service has been created in your project. The username/password are admin/${JENKINS_PASSWORD}. The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.", |
|
|
|
"objects": [ |
|
|
|
{ |
|
|
|
"kind": "Route", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}", |
|
|
|
"creationTimestamp": null |
|
|
|
}, |
|
|
|
"spec": { |
|
|
|
"host" : "edivorce-jenkins.pathfinder.gov.bc.ca", |
|
|
|
"to": { |
|
|
|
"kind": "Service", |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
}, |
|
|
|
"tls": { |
|
|
|
"termination": "edge", |
|
|
|
"insecureEdgeTerminationPolicy": "Redirect" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"kind": "PersistentVolumeClaim", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
}, |
|
|
|
"spec": { |
|
|
|
"accessModes": [ |
|
|
|
"ReadWriteOnce" |
|
|
|
], |
|
|
|
"resources": { |
|
|
|
"requests": { |
|
|
|
"storage": "${VOLUME_CAPACITY}" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"kind": "DeploymentConfig", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}", |
|
|
|
"creationTimestamp": null |
|
|
|
}, |
|
|
|
"spec": { |
|
|
|
"strategy": { |
|
|
|
"type": "Recreate" |
|
|
|
}, |
|
|
|
"triggers": [ |
|
|
|
{ |
|
|
|
"type": "ImageChange", |
|
|
|
"imageChangeParams": { |
|
|
|
"automatic": true, |
|
|
|
"containerNames": [ |
|
|
|
"jenkins" |
|
|
|
], |
|
|
|
"from": { |
|
|
|
"kind": "ImageStreamTag", |
|
|
|
"name": "${JENKINS_IMAGE_STREAM_TAG}", |
|
|
|
"namespace": "${NAMESPACE}" |
|
|
|
}, |
|
|
|
"lastTriggeredImage": "" |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"type": "ConfigChange" |
|
|
|
} |
|
|
|
], |
|
|
|
"replicas": 1, |
|
|
|
"selector": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
}, |
|
|
|
"template": { |
|
|
|
"metadata": { |
|
|
|
"creationTimestamp": null, |
|
|
|
"labels": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
} |
|
|
|
}, |
|
|
|
"spec": { |
|
|
|
"serviceAccountName": "${JENKINS_SERVICE_NAME}", |
|
|
|
"containers": [ |
|
|
|
{ |
|
|
|
"name": "jenkins", |
|
|
|
"image": " ", |
|
|
|
"readinessProbe": { |
|
|
|
"timeoutSeconds": 3, |
|
|
|
"initialDelaySeconds": 3, |
|
|
|
"httpGet": { |
|
|
|
"path": "/login", |
|
|
|
"port": 8080 |
|
|
|
} |
|
|
|
}, |
|
|
|
"livenessProbe": { |
|
|
|
"timeoutSeconds": 3, |
|
|
|
"initialDelaySeconds": 120, |
|
|
|
"httpGet": { |
|
|
|
"path": "/login", |
|
|
|
"port": 8080 |
|
|
|
} |
|
|
|
}, |
|
|
|
"env": [ |
|
|
|
{ |
|
|
|
"name": "JENKINS_PASSWORD", |
|
|
|
"value": "${JENKINS_PASSWORD}" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "KUBERNETES_MASTER", |
|
|
|
"value": "https://kubernetes.default:443" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "KUBERNETES_TRUST_CERTIFICATES", |
|
|
|
"value": "true" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "JNLP_SERVICE_NAME", |
|
|
|
"value": "${JNLP_SERVICE_NAME}" |
|
|
|
} |
|
|
|
], |
|
|
|
"resources": { |
|
|
|
"limits": { |
|
|
|
"memory": "${MEMORY_LIMIT}" |
|
|
|
} |
|
|
|
}, |
|
|
|
"volumeMounts": [ |
|
|
|
{ |
|
|
|
"name": "${JENKINS_SERVICE_NAME}-data", |
|
|
|
"mountPath": "/var/lib/jenkins" |
|
|
|
} |
|
|
|
], |
|
|
|
"terminationMessagePath": "/dev/termination-log", |
|
|
|
"imagePullPolicy": "IfNotPresent", |
|
|
|
"capabilities": {}, |
|
|
|
"securityContext": { |
|
|
|
"capabilities": {}, |
|
|
|
"privileged": false |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
"volumes": [ |
|
|
|
{ |
|
|
|
"name": "${JENKINS_SERVICE_NAME}-data", |
|
|
|
"persistentVolumeClaim": { |
|
|
|
"claimName": "${JENKINS_SERVICE_NAME}" |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
"restartPolicy": "Always", |
|
|
|
"dnsPolicy": "ClusterFirst" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"kind": "ServiceAccount", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"kind": "RoleBinding", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}_edit" |
|
|
|
}, |
|
|
|
"groupNames": null, |
|
|
|
"subjects": [ |
|
|
|
{ |
|
|
|
"kind": "ServiceAccount", |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
} |
|
|
|
], |
|
|
|
"roleRef": { |
|
|
|
"name": "edit" |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"kind": "Service", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JNLP_SERVICE_NAME}" |
|
|
|
}, |
|
|
|
"spec": { |
|
|
|
"ports": [ |
|
|
|
{ |
|
|
|
"name": "agent", |
|
|
|
"protocol": "TCP", |
|
|
|
"port": 50000, |
|
|
|
"targetPort": 50000, |
|
|
|
"nodePort": 0 |
|
|
|
} |
|
|
|
], |
|
|
|
"selector": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
}, |
|
|
|
"portalIP": "", |
|
|
|
"type": "ClusterIP", |
|
|
|
"sessionAffinity": "None" |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"kind": "Service", |
|
|
|
"apiVersion": "v1", |
|
|
|
"metadata": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}", |
|
|
|
"annotations": { |
|
|
|
"service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]", |
|
|
|
"service.openshift.io/infrastructure": "true" |
|
|
|
}, |
|
|
|
"creationTimestamp": null |
|
|
|
}, |
|
|
|
"spec": { |
|
|
|
"ports": [ |
|
|
|
{ |
|
|
|
"name": "web", |
|
|
|
"protocol": "TCP", |
|
|
|
"port": 80, |
|
|
|
"targetPort": 8080, |
|
|
|
"nodePort": 0 |
|
|
|
} |
|
|
|
], |
|
|
|
"selector": { |
|
|
|
"name": "${JENKINS_SERVICE_NAME}" |
|
|
|
}, |
|
|
|
"portalIP": "", |
|
|
|
"type": "ClusterIP", |
|
|
|
"sessionAffinity": "None" |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
"parameters": [ |
|
|
|
{ |
|
|
|
"name": "JENKINS_SERVICE_NAME", |
|
|
|
"displayName": "Jenkins Service Name", |
|
|
|
"description": "The name of the OpenShift Service exposed for the Jenkins container.", |
|
|
|
"value": "jenkins" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "JNLP_SERVICE_NAME", |
|
|
|
"displayName": "Jenkins JNLP Service Name", |
|
|
|
"description": "The name of the service used for master/slave communication.", |
|
|
|
"value": "jenkins-jnlp" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "JENKINS_PASSWORD", |
|
|
|
"displayName": "Jenkins Password", |
|
|
|
"description": "Password for the Jenkins 'admin' user.", |
|
|
|
"generate": "expression", |
|
|
|
"from": "[a-zA-Z0-9]{16}", |
|
|
|
"required": true |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "MEMORY_LIMIT", |
|
|
|
"displayName": "Memory Limit", |
|
|
|
"description": "Maximum amount of memory the container can use.", |
|
|
|
"value": "512Mi" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "VOLUME_CAPACITY", |
|
|
|
"displayName": "Volume Capacity", |
|
|
|
"description": "Volume space available for data, e.g. 512Mi, 2Gi.", |
|
|
|
"value": "1Gi", |
|
|
|
"required": true |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "NAMESPACE", |
|
|
|
"displayName": "Jenkins ImageStream Namespace", |
|
|
|
"description": "The OpenShift Namespace where the Jenkins ImageStream resides.", |
|
|
|
"value": "openshift" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"name": "JENKINS_IMAGE_STREAM_TAG", |
|
|
|
"displayName": "Jenkins ImageStreamTag", |
|
|
|
"description": "Name of the ImageStreamTag to be used for the Jenkins image.", |
|
|
|
"value": "jenkins:latest" |
|
|
|
} |
|
|
|
], |
|
|
|
"labels": { |
|
|
|
"template": "jenkins-persistent-template" |
|
|
|
} |
|
|
|
} |