summaryrefslogtreecommitdiffstats
path: root/cns-libs
diff options
context:
space:
mode:
authorvamahaja <vamahaja@redhat.com>2019-01-07 11:23:17 +0530
committervamahaja <vamahaja@redhat.com>2019-01-09 09:00:34 +0530
commit9592f7c1d065dc01badb2308383b515190ddfc02 (patch)
treeea6966be533f53bec42cc2d39534b52689def3e6 /cns-libs
parent1da6c1971696f92f1b2ad80e22b35f07984ab379 (diff)
Removed jenkins scaling code
Removing this code as it is in additional library file, requires to pass config through config file and requires to upload the scripts. Also it contains hardcoded credentials. Will add new function in openshift_ops.py library similar to "oc_create_app_dc_with_io" with new updated template. Change-Id: I7cfce3fe23b222d40bff1c829afa97f2ffcb621d Signed-off-by: vamahaja <vamahaja@redhat.com>
Diffstat (limited to 'cns-libs')
-rw-r--r--cns-libs/cnslibs/cns/cns_baseclass.py11
-rw-r--r--cns-libs/cnslibs/common/pod_libs.py342
-rw-r--r--cns-libs/templates/jenkins/README6
-rwxr-xr-xcns-libs/templates/jenkins/files/start-load-on-jenkins.j281
-rw-r--r--cns-libs/templates/jenkins/groovy/install_jdk8.groovy23
-rw-r--r--cns-libs/templates/jenkins/groovy/install_mvn339.groovy19
-rw-r--r--cns-libs/templates/jenkins/groovy/jenkins_set_no_of_executor.groovy.j25
-rw-r--r--cns-libs/templates/jenkins/groovy/jenkins_setup_jdk_user.groovy.j26
-rw-r--r--cns-libs/templates/jenkins/jjb/defaults.yaml2
-rw-r--r--cns-libs/templates/jenkins/jjb/job-template.yaml9
-rw-r--r--cns-libs/templates/jenkins/templates/jenkins-persistent-template.yaml218
-rw-r--r--cns-libs/templates/jenkins/templates/jjb-template.yaml70
12 files changed, 0 insertions, 792 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"