diff options
author | Valerii Ponomarov <vponomar@redhat.com> | 2019-01-10 11:54:06 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.host.prod.eng.bos.redhat.com> | 2019-01-10 11:54:06 +0000 |
commit | c2833bfc27a4377be678c3fd323193b64a0dc0bf (patch) | |
tree | 8ef878ed4040e4707b8137041123a84078a99457 | |
parent | c3663d0f3445d6fc2e56f767dd1b31c8e94464cb (diff) | |
parent | 9592f7c1d065dc01badb2308383b515190ddfc02 (diff) |
Merge "Removed jenkins scaling code"
-rw-r--r-- | cns-libs/cnslibs/cns/cns_baseclass.py | 11 | ||||
-rw-r--r-- | cns-libs/cnslibs/common/pod_libs.py | 342 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/README | 6 | ||||
-rwxr-xr-x | cns-libs/templates/jenkins/files/start-load-on-jenkins.j2 | 81 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/groovy/install_jdk8.groovy | 23 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/groovy/install_mvn339.groovy | 19 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/groovy/jenkins_set_no_of_executor.groovy.j2 | 5 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/groovy/jenkins_setup_jdk_user.groovy.j2 | 6 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/jjb/defaults.yaml | 2 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/jjb/job-template.yaml | 9 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/templates/jenkins-persistent-template.yaml | 218 | ||||
-rw-r--r-- | cns-libs/templates/jenkins/templates/jjb-template.yaml | 70 | ||||
-rw-r--r-- | tests/cns_tests_sample_config.yml | 14 |
13 files changed, 0 insertions, 806 deletions
diff --git a/cns-libs/cnslibs/cns/cns_baseclass.py b/cns-libs/cnslibs/cns/cns_baseclass.py index b1b650ab..4df46901 100644 --- a/cns-libs/cnslibs/cns/cns_baseclass.py +++ b/cns-libs/cnslibs/cns/cns_baseclass.py @@ -249,14 +249,3 @@ class GlusterBlockBaseClass(BaseClass): super(GlusterBlockBaseClass, cls).setUpClass() cls.sc = cls.storage_classes.get( 'storage_class2', cls.storage_classes.get('block_storage_class')) - - -class PodScalabilityBaseClass(BaseClass): - """Base class for special set of test cases - POD scalability tests.""" - - @classmethod - def setUpClass(cls): - """Initialize all the variables necessary for scalling setup.""" - super(PodScalabilityBaseClass, cls).setUpClass() - cls.scale_info = g.config.get( - "cns", g.config.get("openshift"))['scale'] diff --git a/cns-libs/cnslibs/common/pod_libs.py b/cns-libs/cnslibs/common/pod_libs.py deleted file mode 100644 index 092a6f84..00000000 --- a/cns-libs/cnslibs/common/pod_libs.py +++ /dev/null @@ -1,342 +0,0 @@ - -import os -import tempfile -import yaml - -from shutil import copytree -from glusto.core import Glusto as g -from glustolibs.misc.misc_libs import upload_scripts - -from openshift_ops import ( - oc_process, - oc_create, - oc_rsh, - oc_rsync, - oc_get_yaml, - create_namespace, - switch_oc_project -) - -from dynamic_provisioning import ( - wait_for_pod_be_ready, - get_pod_name_from_dc -) - - -CNS_TEMPLATE_PATH = os.path.join( - os.getcwdu(), - "cns-libs", - "templates" -) -ROOT = os.sep - -LOAD_TYPE_JENKINS = "jenkins" -JENKINS_TEMPLATE = "jenkins-persistent-template.yaml" -JJB_TEMPLATE = "jjb-template.yaml" -JENKINS_LOAD_SCRIPT = "start-load-on-jenkins.j2" -JENKINS_GROOVY_SCRIPTS = [ - "install_mvn339.groovy", - "install_jdk8.groovy", - "jenkins_setup_jdk_user.groovy.j2" -] - - -def deploy_pods(oc_master_node, load_type, instances, pod_parameters, - load_parameters, namespace=None): - """Deploy and configure pods of different types - Args: - load_type (str): load type jenkins, mongodb or postgres - instances (int): number of pods to be deployed - pod_parameters (str): pod parameters used to deploy pods - load_parameters (str): load parameters to be used to start - load on pods - namespace (str): namespace used to deploy jenkins and jjb pods - Raises: AssertionError if invalid load type specified - """ - err_msg = "invalid load typed %s" - - if namespace: - create_and_switch_to_namespace(oc_master_node, namespace) - - templates_path = upload_templates(oc_master_node, load_type) - - pod_index = 0 - for index in range(int(instances)): - if load_type == LOAD_TYPE_JENKINS: - pod_index = get_available_pod_index( - oc_master_node, - pod_index, - LOAD_TYPE_JENKINS - ) - deploy_and_configure_jenkins( - oc_master_node, - pod_index, - templates_path, - pod_parameters, - load_parameters - ) - else: - g.log.error(err_msg % load_type) - raise AssertionError(err_msg % load_type) - - -def upload_templates(oc_master_node, load_type): - """Upload templates in openshift master node in temporary - directory. - Args: - load_type (str): load type of which template files need to be uploaded - Return: - directory path: Return temporary directory path where templates are - copied. - Raises: AssertionError if failed to upload files on server - """ - err_msg = "failed to %s templates from %s to %s" - - temp_dir = tempfile.mkdtemp(prefix="cns-tmp-") - src = os.path.join(CNS_TEMPLATE_PATH, load_type) - dst = os.path.join(temp_dir, load_type) - try: - copytree(src, dst) - except Exception: - g.log.error(err_msg % ("copy", src, dst)) - raise - - dest = os.path.join(ROOT, "tmp") - if not upload_scripts(oc_master_node, temp_dir, dest): - g.log.error(err_msg % ("upload", temp_dir, dest)) - raise AssertionError(err_msg % ("upload", temp_dir, dest)) - - return os.path.join(temp_dir, load_type) - - -def create_and_switch_to_namespace(oc_master_node, namespace): - """Create new namespace if not already exists and switch - to new created namespace - Args: - namespace (str): namespace name to be created - Raises: AssertionError if failed to create or switch project to namespace - """ - err_msg = "failed to %s namespace %s" - - try: - oc_get_yaml(oc_master_node, "namespace", namespace) - g.log.info("%s namespace already present using existing one") - except AssertionError: - g.log.info("%s namespace not present creating new one") - if not create_namespace(oc_master_node, namespace): - g.log.error(err_msg % ("create", namespace)) - raise AssertionError(err_msg % ("create", namespace)) - - g.log.info("switch to namespace %s'" % namespace) - if not switch_oc_project(oc_master_node, namespace): - g.log.error(err_msg % ("switch", namespace)) - raise AssertionError(err_msg % ("switch", namespace)) - - -def create_pod(oc_master_node, templates_path, template, params=None): - """Creates pod with template and prameters provides - Args: - template (str): template by using which pod to be created - params (str): parameters used to create template - """ - info_msg = "creating %s using template %s" - - template_path = os.path.join(templates_path, "templates", template) - if params: - g.log.info(info_msg % ("process", template_path)) - template = oc_process(oc_master_node, params, template_path) - - g.log.info(info_msg % ("app", template)) - oc_create(oc_master_node, template, "value") - else: - g.log.info(info_msg % ("app", template_path)) - oc_create(oc_master_node, template_path) - - -def get_available_pod_index(oc_master_node, start_index, prefix): - """Checks availability of the name with prefix and start_index - Args: - prefix (str): prefix for the dc name used - Returns: - start_index (int): maximum no combined with prefix - """ - dc_list = oc_get_yaml(oc_master_node, "dc") - dc_names = [dc_name["metadata"]["name"] for dc_name in dc_list["items"]] - - while "%s-%s" % (prefix, start_index) not in dc_names: - start_index += 1 - - g.log.info("next available index is %s" % start_index) - return start_index - - -def deploy_and_configure_jenkins(oc_master_node, index, templates_path, - pod_parameters, load_parameters): - """Deploys and configures jenkins and jjb pod - Args: - index (int): index no by which pod name need to be appened - pod_parameters (str): user specified parameters used to deploy pod - """ - jk_service_name = "%s-%s" % (LOAD_TYPE_JENKINS, index) - jnlp_service_name = "jnlp-%s" % index - jjb_service_name = "jjb-%s" % index - - deploy_jenkins_pod( - oc_master_node, - templates_path, - jk_service_name, - jnlp_service_name, - pod_parameters - ) - route_details = oc_get_yaml( - oc_master_node, - "route", - jk_service_name - ) - route = route_details['spec']['host'] - jk_url = "https://%s" % route - - jjb_pod_name = deploy_jjb_pod( - oc_master_node, - templates_path, - jk_url, - jjb_service_name - ) - - configure_jjb( - oc_master_node, - load_parameters, - templates_path, - jjb_pod_name - ) - - start_jenkins_load(oc_master_node, templates_path, jjb_pod_name, jk_url) - - -def deploy_jenkins_pod(oc_master_node, templates_path, jk_service_name, - jnlp_service_name, pod_parameters): - """Deploys jenkins pod with specified parameters - - Args: - jk_service_name (str): Jenkins service name to be used for deploying - pod - jnlp_service_name (str): JNLP service name to be used for deploying - pod - pod_parameters (str): user specified parameters used to deploy pod - Returns: - jk_pod_name (str): deployed and ready state Jenkins pod name - """ - params = " ".join(["-p {0}={1}".format(key, val) - for key, val in pod_parameters.items()]) - params += (" -p JENKINS_SERVICE_NAME=%s -p JNLP_SERVICE_NAME=%s" - % (jk_service_name, jnlp_service_name)) - - create_pod(oc_master_node, templates_path, JENKINS_TEMPLATE, params) - jk_pod_name = get_pod_name_from_dc(oc_master_node, jk_service_name) - g.log.info("Jenkins pod %s created successfully" % jk_pod_name) - - g.log.info("waiting pod %s to be in 'Running' state" % jk_pod_name) - wait_for_pod_be_ready(oc_master_node, jk_pod_name) - - return jk_pod_name - - -def deploy_jjb_pod(oc_master_node, templates_path, jk_url, jjb_service_name): - """Deploys jjb pods with configuring jenkins url jk_url - - Args: - jk_url (str): jenkins url to executes groovy scripts and configure - jenkins jobs through jjb - jjb_service_name (str) : jjb service used for pod name - Returns: - jjb_pod_name (str): Deployed and ready state JJB Pod name - """ - params = ("-p JENKINS_URL=%s JJB_SERVICE_NAME=%s" - % (jk_url, jjb_service_name)) - g.log.info("using jenkins url '%s' to deploy jjb pod" % jk_url) - create_pod(oc_master_node, templates_path, JJB_TEMPLATE, params) - - jjb_pod_name = get_pod_name_from_dc(oc_master_node, jjb_service_name) - g.log.info("deployed jjb pod %s successfully" % jjb_pod_name) - - g.log.info("waiting pod to be in 'Running' state" % jjb_pod_name) - wait_for_pod_be_ready(oc_master_node, jjb_pod_name) - - return jjb_pod_name - - -def create_project_template(template_path, load_parameters): - """Generates project.yaml file for jjb configuration - Args: - template_path: Path of template files where project.yml file to be - generated - load_parameters: Contains the no of jobs to be generated - """ - project_dict = [{"project": {"name": "svt-jobs", "jobs": []}}] - - for index in range(int(load_parameters["JOBS"])): - job = { - "{name}_job": { - "name": "test-%s" % index, - "get_url": "https://github.com/hongkailiu/gs-spring-boot.git" - } - } - project_dict[0]["project"]["jobs"].append(job) - project_yaml_path = os.path.join(template_path, "jjb", "project.yaml") - with open(project_yaml_path, "w") as f: - f.write(yaml.dump(project_dict, default_flow_style=False)) - - -def configure_jjb(oc_master_node, load_parameters, templates_path, pod_name): - """Copies jjb jobs and load scripts to jjb pod's /data - location - Args: - pod_name (str): jjb pod name on which script to be executed - """ - dest = os.path.join(ROOT, "data") - - create_project_template(templates_path, load_parameters) - - source = os.path.join(templates_path, "jjb", "") - g.log.info("copying script files from %s to pod %s" % (source, pod_name)) - oc_rsync(oc_master_node, pod_name, source, dest) - - source = os.path.join(templates_path, "files", "") - g.log.info("copying jenkins load scripts from %s to jenkins pod %s" - % (source, pod_name)) - oc_rsync(oc_master_node, pod_name, source, dest) - - -def start_jenkins_load(oc_master_node, templates_path, pod_name, jk_url): - """Configures jenkins settings and start load - - Args: - pod_name (str): jjb pod name on which script to be executed - jk_url (str): jenkins url to executes groovy scripts and configure - jenkins jobs through jjb - Raises: AssertionError if groovy scripts failed to configure jenkins - """ - err_msg = "failed to execute groovy script %s" - - for g_script in JENKINS_GROOVY_SCRIPTS: - g.log.info("execute groovy script %s on jenkins" % g_script) - - g_script_path = os.path.join(templates_path, "groovy", g_script) - cmd = " ".join([ - "curl", - "-k", - "--user", "admin:password", - "--data-urlencode", - "\"script=$(cat {0})\"".format(g_script_path), - "-X", "POST", - "{0}/scriptText".format(jk_url) - ]) - ret, out, err = g.run(oc_master_node, cmd) - if ret != 0: - g.log.error(err_msg % g_script) - raise AssertionError(err_msg % g_script) - - g.log.info("start jenkins load script on jjb pod") - dest = os.path.join(ROOT, "data") - cmd = ["bash", os.path.join(dest, JENKINS_LOAD_SCRIPT), "&"] - oc_rsh(oc_master_node, pod_name, cmd) diff --git a/cns-libs/templates/jenkins/README b/cns-libs/templates/jenkins/README deleted file mode 100644 index 1402a56f..00000000 --- a/cns-libs/templates/jenkins/README +++ /dev/null @@ -1,6 +0,0 @@ -============== -REFERENCES -============== - -Jenkins template and load script files are refered from the below github code: - https://github.com/openshift/svt/tree/master/storage/jenkins diff --git a/cns-libs/templates/jenkins/files/start-load-on-jenkins.j2 b/cns-libs/templates/jenkins/files/start-load-on-jenkins.j2 deleted file mode 100755 index 7c85e8bd..00000000 --- a/cns-libs/templates/jenkins/files/start-load-on-jenkins.j2 +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -readonly TOTAL_BUILD_NUMBER=29 -readonly JENKINS_URL=$(awk '/^url/{split ($1, a, "="); print a[2]}' /etc/jenkins_jobs/jenkins_jobs.ini) - -echo "JENKINS_URL: $JENKINS_URL" - -function trigger() { - local url - local job_name - - url=$1 - job_name=$2 - - echo "Start job: $job_name" - curl -s -k --user admin:password -X POST "${url}/job/${job_name}/build/api/json" --data-urlencode json='{"parameter": []}' -} - - -function check_build() { - local result - local job_name - local url - - url=$1 - job_name=$2 - - echo "Executing validation for job: ${job_name}" - result=$(curl -s -k --user admin:password ${url}/job/${job_name}/lastBuild/api/json | python -c "import json,sys; obj=json.load(sys.stdin); print obj['result'] if 'result' in obj else False") - - echo "Status: ${result}" - if [[ "${result}" = "SUCCESS" ]] || [[ "${result}" = "FAILURE" ]] || [[ "${result}" = "UNSTABLE" ]] || [[ "${result}" = "ABORTED" ]] - then - echo "Build completed, re-starting build" - trigger "${JENKINS_URL}" "${job_name}" - else - echo "Build in progress, waiting for completion" - fi -} - - -### delete jobs -echo "Delete existing jobs" -for j in $(seq 0 ${TOTAL_BUILD_NUMBER}) -do - jenkins-jobs delete test-${j}_job -done - -echo "Wait for 30 sec until all jobs get created" -sleep 30 - -### create jobs -echo "Create new jobs" -jenkins-jobs --flush-cache update --delete-old /data - -echo "Wait for 30 sec until all jobs get created" -sleep 30 - -### trigger jobs -echo "Start building new job" -for j in $(seq 0 ${TOTAL_BUILD_NUMBER}) -do - trigger "${JENKINS_URL}" "test-${j}_job" -done - -echo "Wait for 2 mins to jenkin schedule and start the jobs" -sleep 120 - -### check jobs -echo "Start polling status for started jobs" - -while true -do - for i in $(seq 0 ${TOTAL_BUILD_NUMBER}) - do - check_build "${JENKINS_URL}" "test-${i}_job/job/ttt" - done - - echo "Validated all jobs geting some rest" - sleep 30 -done diff --git a/cns-libs/templates/jenkins/groovy/install_jdk8.groovy b/cns-libs/templates/jenkins/groovy/install_jdk8.groovy deleted file mode 100644 index fb104cdb..00000000 --- a/cns-libs/templates/jenkins/groovy/install_jdk8.groovy +++ /dev/null @@ -1,23 +0,0 @@ -import jenkins.model.* -import hudson.model.* -import hudson.tools.* - -def inst = Jenkins.getInstance() - -def desc = inst.getDescriptor("hudson.model.JDK") - -def versions = [ - "jdk8": "jdk-8u172-oth-JPR" -] -def installations = []; - -for (v in versions) { - def installer = new JDKInstaller(v.value, true) - def installerProps = new InstallSourceProperty([installer]) - def installation = new JDK(v.key, "", [installerProps]) - installations.push(installation) -} - -desc.setInstallations(installations.toArray(new JDK[0])) - -desc.save() diff --git a/cns-libs/templates/jenkins/groovy/install_mvn339.groovy b/cns-libs/templates/jenkins/groovy/install_mvn339.groovy deleted file mode 100644 index 4776d240..00000000 --- a/cns-libs/templates/jenkins/groovy/install_mvn339.groovy +++ /dev/null @@ -1,19 +0,0 @@ -import hudson.tasks.Maven.MavenInstallation; -import hudson.tools.InstallSourceProperty; -import hudson.tools.ToolProperty; -import hudson.tools.ToolPropertyDescriptor; -import hudson.util.DescribableList; - -def mavenDesc = jenkins.model.Jenkins.instance.getExtensionList(hudson.tasks.Maven.DescriptorImpl.class)[0] - -def isp = new InstallSourceProperty() -def autoInstaller = new hudson.tasks.Maven.MavenInstaller("3.3.9") -isp.installers.add(autoInstaller) - -def proplist = new DescribableList<ToolProperty<?>, ToolPropertyDescriptor>() -proplist.add(isp) - -def installation = new MavenInstallation("Maven 3.3.9", "", proplist) - -mavenDesc.setInstallations(installation) -mavenDesc.save() diff --git a/cns-libs/templates/jenkins/groovy/jenkins_set_no_of_executor.groovy.j2 b/cns-libs/templates/jenkins/groovy/jenkins_set_no_of_executor.groovy.j2 deleted file mode 100644 index c2b36eb7..00000000 --- a/cns-libs/templates/jenkins/groovy/jenkins_set_no_of_executor.groovy.j2 +++ /dev/null @@ -1,5 +0,0 @@ -import jenkins.model.* -def instance = Jenkins.getInstance() - -// No jobs on master -instance.setNumExecutors(10) diff --git a/cns-libs/templates/jenkins/groovy/jenkins_setup_jdk_user.groovy.j2 b/cns-libs/templates/jenkins/groovy/jenkins_setup_jdk_user.groovy.j2 deleted file mode 100644 index 905eb1cb..00000000 --- a/cns-libs/templates/jenkins/groovy/jenkins_setup_jdk_user.groovy.j2 +++ /dev/null @@ -1,6 +0,0 @@ -import jenkins.model.* -import hudson.model.* - -def inst = Jenkins.getInstance() -def desc = inst.getDescriptor("hudson.tools.JDKInstaller") -println desc.doPostCredential('vsmahajan007@gmail.com','Test#123') diff --git a/cns-libs/templates/jenkins/jjb/defaults.yaml b/cns-libs/templates/jenkins/jjb/defaults.yaml deleted file mode 100644 index 6434856b..00000000 --- a/cns-libs/templates/jenkins/jjb/defaults.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- defaults: - name: global diff --git a/cns-libs/templates/jenkins/jjb/job-template.yaml b/cns-libs/templates/jenkins/jjb/job-template.yaml deleted file mode 100644 index 1acab55b..00000000 --- a/cns-libs/templates/jenkins/jjb/job-template.yaml +++ /dev/null @@ -1,9 +0,0 @@ -- job-template: - name: '{name}_job' - description: 'job description' - project-type: multibranch - number-to-keep: 30 - days-to-keep: 30 - scm: - - git: - url: '{git_url}' diff --git a/cns-libs/templates/jenkins/templates/jenkins-persistent-template.yaml b/cns-libs/templates/jenkins/templates/jenkins-persistent-template.yaml deleted file mode 100644 index 78c89e7d..00000000 --- a/cns-libs/templates/jenkins/templates/jenkins-persistent-template.yaml +++ /dev/null @@ -1,218 +0,0 @@ -apiVersion: template.openshift.io/v1 -kind: Template -labels: - app: jenkins-persistent - template: jenkins-persistent-template -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 - openshift.io/documentation-url: https://docs.openshift.org/latest/using_images/other_images/jenkins.html - openshift.io/long-description: This template deploys a Jenkins server capable - of managing OpenShift Pipeline builds and supporting OpenShift-based oauth login. - openshift.io/provider-display-name: Red Hat, Inc. - openshift.io/support-url: https://access.redhat.com - tags: instant-app,jenkins - creationTimestamp: 2018-03-29T11:18:43Z - name: jenkins-persistent - namespace: openshift - resourceVersion: "898" - selfLink: /apis/template.openshift.io/v1/namespaces/openshift/templates/jenkins-persistent - uid: f0e942eb-3342-11e8-95ee-0202afd7e94a -objects: -- apiVersion: v1 - kind: Route - metadata: - annotations: - haproxy.router.openshift.io/timeout: 4m - 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} - storageClassName: ${STORAGE_CLASS_NAME} -- 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: OPENSHIFT_ENABLE_REDIRECT_PROMPT - value: "true" - - name: KUBERNETES_MASTER - value: https://kubernetes.default:443 - - name: KUBERNETES_TRUST_CERTIFICATES - value: "true" - - name: JENKINS_SERVICE_NAME - value: ${JENKINS_SERVICE_NAME} - - name: JNLP_SERVICE_NAME - value: ${JNLP_SERVICE_NAME} - image: ' ' - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 2 - httpGet: - path: /login - port: 8080 - initialDelaySeconds: 420 - periodSeconds: 360 - timeoutSeconds: 240 - name: jenkins - readinessProbe: - httpGet: - path: /login - port: 8080 - initialDelaySeconds: 3 - timeoutSeconds: 240 - 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: Maximum amount of memory the container can use. - displayName: Memory Limit - name: MEMORY_LIMIT - value: 512Mi -- 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:2 -- description: Storage Class Name of PVC. - displayName: Storage Class Name - name: STORAGE_CLASS_NAME - required: true - value: "gp2" diff --git a/cns-libs/templates/jenkins/templates/jjb-template.yaml b/cns-libs/templates/jenkins/templates/jjb-template.yaml deleted file mode 100644 index c26019b1..00000000 --- a/cns-libs/templates/jenkins/templates/jjb-template.yaml +++ /dev/null @@ -1,70 +0,0 @@ -apiVersion: v1 -kind: Template -metadata: - creationTimestamp: null - name: config_map_jjb -objects: -- apiVersion: v1 - data: - jenkins_jobs.ini: | - [jenkins] - user=${JENKINS_USER} - password=${JENKINS_PASSWORD} - url=${JENKINS_URL} - query_plugins_info=False - kind: ConfigMap - metadata: - creationTimestamp: null - name: ${JJB_SERVICE_NAME} -- kind: "DeploymentConfig" - apiVersion: "v1" - metadata: - name: ${JJB_SERVICE_NAME} - spec: - template: - metadata: - labels: - name: ${JJB_SERVICE_NAME} - spec: - containers: - - name: ${JJB_SERVICE_NAME} - image: "docker.io/hongkailiu/jjb:2.0.6" - env: - - name: PYTHONHTTPSVERIFY - value: "0" - - name: XDG_CACHE_HOME - value: "/data" - volumeMounts: - - name: config-volume - mountPath: /etc/jenkins_jobs/ - - name: "data-vol" - mountPath: "/data" - volumes: - - name: config-volume - configMap: - name: ${JJB_SERVICE_NAME} - - name: "data-vol" - emptyDir: {} - triggers: - - type: "ConfigChange" - replicas: 1 -parameters: -- description: Jenkins User - displayName: Jenkins User - name: JENKINS_USER - required: true - value: admin -- description: Jenkins Password - displayName: Jenkins Password - name: JENKINS_PASSWORD - required: true - value: password -- description: Jenkins URL, eg, https://jenkins-ttt.apps.0327-nbn.qe.rhcloud.com - displayName: Jenkins URL - name: JENKINS_URL - required: true -- description: JJB Service Name - displayName: JJB Service Name - name: JJB_SERVICE_NAME - required: true - value: "jjb" diff --git a/tests/cns_tests_sample_config.yml b/tests/cns_tests_sample_config.yml index 1bfcf8fb..138353b6 100644 --- a/tests/cns_tests_sample_config.yml +++ b/tests/cns_tests_sample_config.yml @@ -55,17 +55,3 @@ openshift: hacount: "3" chapauthenabled: "true" volumenameprefix: "autotests-block" - scale: - - type: jenkins - instances: 1 - namespace: "<fake-namespace-name>" - pod_parameters: - ENABLE_OAUTH: false - MEMORY_LIMIT: "<fake-memory-limit-size>Mi" - VOLUME_CAPACITY: "<fake-size-of-gluster-storage>Gi" - STORAGE_CLASS_NAME: "fake-name-of-storage-class" - JENKINS_IMAGE_STREAM_TAG: "jenkins:2" - load_parameters: - JOBS: 30 - ITERATIONS: 30 - EXECUTORS: 5 |