diff --git a/instances/technology.cbi/config.jsonnet b/instances/technology.cbi/config.jsonnet index 890368ba3..8fc3e91fd 100644 --- a/instances/technology.cbi/config.jsonnet +++ b/instances/technology.cbi/config.jsonnet @@ -2,6 +2,7 @@ project+: { fullName: "technology.cbi", displayName: "Eclipse CBI", + resourcePacks: 5, }, jenkins+: { version: "2.426.1", diff --git a/instances/technology.cbi/target/config.json b/instances/technology.cbi/target/config.json index c9544aca6..8b2222f4c 100644 --- a/instances/technology.cbi/target/config.json +++ b/instances/technology.cbi/target/config.json @@ -484,7 +484,7 @@ }, "jenkins": { "agentConnectionTimeout": 180, - "maxConcurrency": 2, + "maxConcurrency": 10, "permissions": [ { "user": { @@ -674,12 +674,12 @@ }, "resources": { "cpu": { - "limit": "2000m", - "request": "700m" + "limit": "3800m", + "request": "1900m" }, "memory": { - "limit": "2304Mi", - "request": "2304Mi" + "limit": "4352Mi", + "request": "4352Mi" } }, "stsName": "cbi" @@ -736,7 +736,7 @@ "project": { "displayName": "Eclipse CBI", "fullName": "technology.cbi", - "resourcePacks": 1, + "resourcePacks": 5, "shortName": "cbi", "unixGroupName": "technology.cbi" }, diff --git a/instances/technology.cbi/target/jenkins/configuration.yml b/instances/technology.cbi/target/jenkins/configuration.yml index 17220ce91..44c6686ee 100644 --- a/instances/technology.cbi/target/jenkins/configuration.yml +++ b/instances/technology.cbi/target/jenkins/configuration.yml @@ -70,7 +70,7 @@ jenkins: clouds: - kubernetes: name: "kubernetes" - containerCapStr: "2" + containerCapStr: "10" jenkinsUrl: "http://jenkins-ui.cbi.svc.cluster.local/cbi" jenkinsTunnel: "jenkins-discovery.cbi.svc.cluster.local:50000" maxRequestsPerHostStr: "32" diff --git a/instances/technology.cbi/target/jenkins/plugins.log b/instances/technology.cbi/target/jenkins/plugins.log index 89510d30c..fe5a4f67e 100644 --- a/instances/technology.cbi/target/jenkins/plugins.log +++ b/instances/technology.cbi/target/jenkins/plugins.log @@ -7,7 +7,7 @@ authentication-tokens 1.53.v1c90fd9191a_b_ authorize-project 1.7.1 basic-branch-build-strategies 81.v05e333931c7d bootstrap5-api 5.3.2-3 -bouncycastle-api 2.29 +bouncycastle-api 2.30.1.77-225.v26ea_c9455fd9 branch-api 2.1135.v8de8e7899051 build-timeout 1.31 caffeine-api 3.1.8-133.v17b_1ff2e0599 @@ -19,19 +19,19 @@ command-launcher 107.v773860566e2e commons-lang3-api 3.13.0-62.v7d18e55f51e2 commons-text-api 1.11.0-95.v22a_d30ee5d36 config-file-provider 959.vcff671a_4518b_ -configuration-as-code 1746.vf1673cfe690a -credentials 1309.v8835d63eb_d8a_ +configuration-as-code 1763.vb_fe9c1b_83f7b +credentials 1311.vcf0a_900b_37c2 credentials-binding 642.v737c34dea_6c2 -data-tables-api 1.13.8-1 +data-tables-api 1.13.8-2 display-url-api 2.200.vb_9327d658781 durable-task 523.va_a_22cf15d5e0 echarts-api 5.4.3-2 email-ext 2.102 -embeddable-build-status 412.v09da_db_1dee68 +embeddable-build-status 459.v428d6761597b_ extended-read-permission 53.v6499940139e5 external-monitor-job 215.v2e88e894db_f8 extra-columns 1.26 -favorite 2.4.3 +favorite 2.208.v91d65b_7792a_c font-awesome-api 6.5.1-1 forensics-api 2.3.0 ghprb 1.42.2 @@ -40,12 +40,13 @@ git-client 4.6.0 git-parameter 0.9.19 github 1.37.3.1 github-api 1.318-461.v7a_c09c9fa_d63 -github-branch-source 1752.vc201a_0235d80 +github-branch-source 1767.va_7d01ea_c7256 gitlab-api 5.3.0-91.v1f9a_fda_d654f gitlab-branch-source 684.vea_fa_7c1e2fe3 gitlab-plugin 1.7.16 gradle 2.9 -handy-uri-templates-2-api 2.1.8-22.v77d5b_75e6953 +gson-api 2.10.1-3.vb_25b_599b_e4f8 +handy-uri-templates-2-api 2.1.8-30.v7e777411b_148 htmlpublisher 1.32 instance-identity 185.v303dc7c645f9 ionicons-api 56.v1b_1c8c49374e @@ -60,10 +61,13 @@ jenkins-design-language 1.27.9 jersey2-api 2.41-133.va_03323b_a_1396 jjwt-api 0.11.5-77.v646c772fddb_0 jobConfigHistory 1229.v3039470161a_d +joda-time-api 2.12.5-5.v5495a_235fedf jquery3-api 3.7.1-1 jsch 0.2.8-65.v052c39de79b_2 -junit 1240.vf9529b_881428 -kubernetes 4147.va_d406fb_66172 +json-api 20231013-3.v20f3c247f2fe +json-path-api 2.8.0-5.v07cb_a_1ca_738c +junit 1252.vfc2e5efa_294f +kubernetes 4151.v6fa_f0fb_0b_4c9 kubernetes-client-api 6.8.1-224.vd388fca_4db_3b_ kubernetes-credentials 0.11 ldap 711.vb_d1a_491714dc @@ -71,7 +75,7 @@ mail-watcher-plugin 1.18 mailer 463.vedf8358e006b_ mask-passwords 173.v6a_077a_291eb_5 matrix-auth 3.2.1 -matrix-project 818.v7eb_e657db_924 +matrix-project 822.v01b_8c85d16d2 maven-plugin 3.23 metrics 4.2.18-442.v02e107157925 mina-sshd-api-common 2.11.0-86.v836f585d47fa_ @@ -80,7 +84,7 @@ nexus-jenkins-plugin 3.14.431.v37ca_dc788b_b_1 okhttp-api 4.11.0-157.v6852a_a_fa_ec11 pam-auth 1.10 parameterized-trigger 787.v665fcf2a_830b_ -pipeline-build-step 516.v8ee60a_81c5b_9 +pipeline-build-step 540.vb_e8849e1a_b_d8 pipeline-graph-analysis 202.va_d268e64deb_3 pipeline-groovy-lib 689.veec561a_dee13 pipeline-input-step 477.v339683a_8d55e @@ -96,9 +100,9 @@ pipeline-stage-tags-metadata 2.2151.ve32c9d209a_3f pipeline-stage-view 2.34 plain-credentials 143.v1b_df8b_d3b_e48 plugin-util-api 3.6.0 -prism-api 1.29.0-9 +prism-api 1.29.0-10 prometheus 2.4.1 -promoted-builds 936.va_571a_a_b_f8da_5 +promoted-builds 940.va_9b_59a_717a_b_1 pubsub-light 1.18 rebuild 330.v645b_7df10e2a_ resource-disposer 0.23 @@ -111,19 +115,19 @@ sonar 2.16.1 sse-gateway 1.26 ssh-agent 346.vda_a_c4f2c8e50 ssh-credentials 308.ve4497b_ccd8f4 -ssh-slaves 2.916.vd17b_43357ce4 +ssh-slaves 2.947.v64ee6b_f87b_c1 structs 325.vcb_307d2a_2782 support-core 1366.v9d076592655d timestamper 1.26 -token-macro 384.vf35b_f26814ec -trilead-api 2.84.v72119de229b_7 +token-macro 400.v35420b_922dcb_ +trilead-api 2.133.vfb_8a_7b_9c5dd1 variant 60.v7290fc0eb_b_cd warnings-ng 10.5.2 workflow-aggregator 596.v8c21c963d92d workflow-api 1283.v99c10937efcb_ workflow-basic-steps 1042.ve7b_140c4a_e0c -workflow-cps 3817.vd20b_7e2b_692b_ -workflow-durable-task-step 1289.v4d3e7b_01546b_ +workflow-cps 3826.v3b_5707fe44da_ +workflow-durable-task-step 1313.vcb_970b_d2a_fb_3 workflow-job 1385.vb_58b_86ea_fff1 workflow-multibranch 756.v891d88f2cd46 workflow-scm-step 415.v434365564324 diff --git a/instances/technology.cbi/target/jenkins/tools/.install-plugins.sh.etag b/instances/technology.cbi/target/jenkins/tools/.install-plugins.sh.etag deleted file mode 100644 index 7e988f05a..000000000 --- a/instances/technology.cbi/target/jenkins/tools/.install-plugins.sh.etag +++ /dev/null @@ -1 +0,0 @@ -"c3f0fec63b3f9e55ba4f308072f2c788ca7d844e29527c9d466a8a2d8bad18c4" \ No newline at end of file diff --git a/instances/technology.cbi/target/jenkins/tools/install-plugins.sh b/instances/technology.cbi/target/jenkins/tools/install-plugins.sh deleted file mode 100755 index b2849e376..000000000 --- a/instances/technology.cbi/target/jenkins/tools/install-plugins.sh +++ /dev/null @@ -1,292 +0,0 @@ -#!/bin/bash -eu - -# Resolve dependencies and download plugins given on the command line -# -# FROM jenkins -# RUN install-plugins.sh docker-slaves github-branch-source -# -# Environment variables: -# REF: directory with preinstalled plugins. Default: /usr/share/jenkins/ref/plugins -# JENKINS_WAR: full path to the jenkins.war. Default: /usr/share/jenkins/jenkins.war -# JENKINS_UC: url of the Update Center. Default: "" -# JENKINS_UC_EXPERIMENTAL: url of the Experimental Update Center for experimental versions of plugins. Default: "" -# JENKINS_INCREMENTALS_REPO_MIRROR: url of the incrementals repo mirror. Default: "" -# JENKINS_UC_DOWNLOAD: download url of the Update Center. Default: JENKINS_UC/download -# CURL_OPTIONS When downloading the plugins with curl. Curl options. Default: -sSfL -# CURL_CONNECTION_TIMEOUT When downloading the plugins with curl. Maximum time allowed for connection. Default: 20 -# CURL_RETRY When downloading the plugins with curl. Retry request if transient problems occur. Default: 3 -# CURL_RETRY_DELAY When downloading the plugins with curl. Wait time between retries. Default: 0 -# CURL_RETRY_MAX_TIME When downloading the plugins with curl. Retry only within this period. Default: 60 - -set -o pipefail - -echo "WARN: install-plugins.sh is deprecated, please switch to jenkins-plugin-cli" - -JENKINS_WAR=${JENKINS_WAR:-/usr/share/jenkins/jenkins.war} - -. /usr/local/bin/jenkins-support - -REF_DIR="${REF}/plugins" -FAILED="$REF_DIR/failed-plugins.txt" - -getLockFile() { - printf '%s' "$REF_DIR/${1}.lock" -} - -getArchiveFilename() { - printf '%s' "$REF_DIR/${1}.jpi" -} - -download() { - local plugin originalPlugin version lock ignoreLockFile url - plugin="$1" - version="${2:-latest}" - ignoreLockFile="${3:-}" - url="${4:-}" - lock="$(getLockFile "$plugin")" - - if [[ $ignoreLockFile ]] || mkdir "$lock" &>/dev/null; then - if ! doDownload "$plugin" "$version" "$url"; then - # some plugin don't follow the rules about artifact ID - # typically: docker-plugin - originalPlugin="$plugin" - plugin="${plugin}-plugin" - if ! doDownload "$plugin" "$version" "$url"; then - echo "Failed to download plugin: $originalPlugin or $plugin" >&2 - echo "Not downloaded: ${originalPlugin}" >> "$FAILED" - return 1 - fi - fi - - if ! checkIntegrity "$plugin"; then - echo "Downloaded file is not a valid ZIP: $(getArchiveFilename "$plugin")" >&2 - echo "Download integrity: ${plugin}" >> "$FAILED" - return 1 - fi - - resolveDependencies "$plugin" - fi -} - -doDownload() { - local plugin version url jpi - plugin="$1" - version="$2" - url="$3" - jpi="$(getArchiveFilename "$plugin")" - - # If plugin already exists and is the same version do not download - if test -f "$jpi" && unzip -p "$jpi" META-INF/MANIFEST.MF | tr -d '\r' | grep "^Plugin-Version: ${version}$" > /dev/null; then - echo "Using provided plugin: $plugin" - return 0 - fi - - if [[ -n $url ]] ; then - echo "Will use url=$url" - elif [[ "$version" == "latest" && -n "$JENKINS_UC_LATEST" ]]; then - # If version-specific Update Center is available, which is the case for LTS versions, - # use it to resolve latest versions. - url="$JENKINS_UC_LATEST/latest/${plugin}.hpi" - elif [[ "$version" == "experimental" && -n "$JENKINS_UC_EXPERIMENTAL" ]]; then - # Download from the experimental update center - url="$JENKINS_UC_EXPERIMENTAL/latest/${plugin}.hpi" - elif [[ "$version" == incrementals* ]] ; then - # Download from Incrementals repo: https://jenkins.io/blog/2018/05/15/incremental-deployment/ - # Example URL: https://repo.jenkins-ci.org/incrementals/org/jenkins-ci/plugins/workflow/workflow-support/2.19-rc289.d09828a05a74/workflow-support-2.19-rc289.d09828a05a74.hpi - local groupId incrementalsVersion - # add a trailing ; so the \n gets added to the end - readarray -t "-d;" arrIN <<<"${version};"; - unset 'arrIN[-1]'; - groupId=${arrIN[1]} - incrementalsVersion=${arrIN[2]} - url="${JENKINS_INCREMENTALS_REPO_MIRROR}/$(echo "${groupId}" | tr '.' '/')/${plugin}/${incrementalsVersion}/${plugin}-${incrementalsVersion}.hpi" - else - JENKINS_UC_DOWNLOAD=${JENKINS_UC_DOWNLOAD:-"$JENKINS_UC/download"} - url="$JENKINS_UC_DOWNLOAD/plugins/$plugin/$version/${plugin}.hpi" - fi - - echo "Downloading plugin: $plugin from $url" - # We actually want to allow variable value to be split into multiple options passed to curl. - # This is needed to allow long options and any options that take value. - # shellcheck disable=SC2086 - retry_command curl ${CURL_OPTIONS:--sSfL} --connect-timeout "${CURL_CONNECTION_TIMEOUT:-20}" --retry "${CURL_RETRY:-3}" --retry-delay "${CURL_RETRY_DELAY:-0}" --retry-max-time "${CURL_RETRY_MAX_TIME:-60}" "$url" -o "$jpi" - return $? -} - -checkIntegrity() { - local plugin jpi - plugin="$1" - jpi="$(getArchiveFilename "$plugin")" - - unzip -t -qq "$jpi" >/dev/null - return $? -} - -resolveDependencies() { - local plugin jpi dependencies - plugin="$1" - jpi="$(getArchiveFilename "$plugin")" - - dependencies="$(unzip -p "$jpi" META-INF/MANIFEST.MF | tr -d '\r' | tr '\n' '|' | sed -e 's#| ##g' | tr '|' '\n' | grep "^Plugin-Dependencies: " | sed -e 's#^Plugin-Dependencies: ##')" - - if [[ ! $dependencies ]]; then - echo " > $plugin has no dependencies" - return - fi - - echo " > $plugin depends on $dependencies" - - IFS=',' read -r -a array <<< "$dependencies" - - for d in "${array[@]}" - do - plugin="$(cut -d':' -f1 - <<< "$d")" - if [[ $d == *"resolution:=optional"* ]]; then - echo "Skipping optional dependency $plugin" - else - local pluginInstalled - if pluginInstalled="$(echo -e "${bundledPlugins}\n${installedPlugins}" | grep "^${plugin}:")"; then - pluginInstalled="${pluginInstalled//[$'\r']}" - local versionInstalled; versionInstalled=$(versionFromPlugin "${pluginInstalled}") - local minVersion; minVersion=$(versionFromPlugin "${d}") - if versionLT "${versionInstalled}" "${minVersion}"; then - echo "Upgrading bundled dependency $d ($minVersion > $versionInstalled)" - download "$plugin" & - else - echo "Skipping already installed dependency $d ($minVersion <= $versionInstalled)" - fi - else - download "$plugin" & - fi - fi - done - wait -} - -bundledPlugins() { - if [ -f "$JENKINS_WAR" ] - then - TEMP_PLUGIN_DIR=/tmp/plugintemp.$$ - for i in $(jar tf "$JENKINS_WAR" | grep -E '[^detached-]plugins.*\..pi' | sort) - do - rm -fr $TEMP_PLUGIN_DIR - mkdir -p $TEMP_PLUGIN_DIR - PLUGIN=$(basename "$i"|cut -f1 -d'.') - (cd $TEMP_PLUGIN_DIR;jar xf "$JENKINS_WAR" "$i";jar xvf "$TEMP_PLUGIN_DIR/$i" META-INF/MANIFEST.MF >/dev/null 2>&1) - VER=$(grep -E -i Plugin-Version "$TEMP_PLUGIN_DIR/META-INF/MANIFEST.MF"|cut -d: -f2|sed 's/ //') - echo "$PLUGIN:$VER" - done - rm -fr $TEMP_PLUGIN_DIR - else - echo "war not found, installing all plugins: $JENKINS_WAR" - fi -} - -versionFromPlugin() { - local plugin=$1 - if [[ $plugin =~ .*:.* ]]; then - echo "${plugin##*:}" - else - echo "latest" - fi - -} - -installedPlugins() { - for f in "$REF_DIR"/*.jpi; do - echo "$(basename "$f" | sed -e 's/\.jpi//'):$(get_plugin_version "$f")" - done -} - -jenkinsMajorMinorVersion() { - if [[ -f "$JENKINS_WAR" ]]; then - local version major minor - version="$(java -jar "$JENKINS_WAR" --version)" - major="$(echo "$version" | cut -d '.' -f 1)" - minor="$(echo "$version" | cut -d '.' -f 2)" - echo "$major.$minor" - else - echo "" - fi -} - -main() { - local plugin jenkinsVersion - local plugins=() - - mkdir -p "$REF_DIR" || exit 1 - rm -f "$FAILED" - - # Read plugins from stdin or from the command line arguments - if [[ ($# -eq 0) ]]; then - while read -r line || [ "$line" != "" ]; do - # Remove leading/trailing spaces, comments, and empty lines - plugin=$(echo "${line}" | tr -d '\r' | sed -e 's/^[ \t]*//g' -e 's/[ \t]*$//g' -e 's/[ \t]*#.*$//g' -e '/^[ \t]*$/d') - - # Avoid adding empty plugin into array - if [ ${#plugin} -ne 0 ]; then - plugins+=("${plugin}") - fi - done - else - plugins=("$@") - fi - - # Create lockfile manually before first run to make sure any explicit version set is used. - echo "Creating initial locks..." - for plugin in "${plugins[@]}"; do - mkdir "$(getLockFile "${plugin%%:*}")" - done - - echo "Analyzing war $JENKINS_WAR..." - bundledPlugins="$(bundledPlugins)" - - echo "Registering preinstalled plugins..." - installedPlugins="$(installedPlugins)" - - # Get the update center URL based on the jenkins version - jenkinsVersion="$(jenkinsMajorMinorVersion)" - # shellcheck disable=SC2086 - jenkinsUcJson=$(curl ${CURL_OPTIONS:--sSfL} -o /dev/null -w "%{url_effective}" "${JENKINS_UC}/update-center.json?version=${jenkinsVersion}") - if [ -n "${jenkinsUcJson}" ]; then - JENKINS_UC_LATEST=${jenkinsUcJson//update-center.json/} - echo "Using version-specific update center: $JENKINS_UC_LATEST..." - else - JENKINS_UC_LATEST= - fi - - echo "Downloading plugins..." - for plugin in "${plugins[@]}"; do - local reg='^([^:]+):?([^:]+)?:?([^:]+)?:?(http.+)?' - if [[ $plugin =~ $reg ]]; then - local pluginId="${BASH_REMATCH[1]}" - local version="${BASH_REMATCH[2]}" - local lock="${BASH_REMATCH[3]}" - local url="${BASH_REMATCH[4]}" - download "$pluginId" "$version" "${lock:-true}" "${url}" & - else - echo "Skipping the line '${plugin}' as it does not look like a reference to a plugin" - fi - done - wait - - echo - echo "WAR bundled plugins:" - echo "${bundledPlugins}" - echo - echo "Installed plugins:" - installedPlugins - - if [[ -f $FAILED ]]; then - echo "Some plugins failed to download!" "$(<"$FAILED")" >&2 - exit 1 - fi - - echo "Cleaning up locks" - find "$REF_DIR" -regex ".*.lock" | while read -r filepath; do - rm -r "$filepath" - done - -} - -main "$@" diff --git a/instances/technology.cbi/target/k8s/configmap-jenkins-config.yml b/instances/technology.cbi/target/k8s/configmap-jenkins-config.yml index a6c89d898..8828a1a35 100644 --- a/instances/technology.cbi/target/k8s/configmap-jenkins-config.yml +++ b/instances/technology.cbi/target/k8s/configmap-jenkins-config.yml @@ -93,7 +93,7 @@ data: clouds: - kubernetes: name: "kubernetes" - containerCapStr: "2" + containerCapStr: "10" jenkinsUrl: "http://jenkins-ui.cbi.svc.cluster.local/cbi" jenkinsTunnel: "jenkins-discovery.cbi.svc.cluster.local:50000" maxRequestsPerHostStr: "32" diff --git a/instances/technology.cbi/target/k8s/limit-range.json b/instances/technology.cbi/target/k8s/limit-range.json index 5e63c9e99..43ce674d7 100644 --- a/instances/technology.cbi/target/k8s/limit-range.json +++ b/instances/technology.cbi/target/k8s/limit-range.json @@ -13,8 +13,8 @@ "limits": [ { "max": { - "cpu": "2300m", - "memory": "8448Mi" + "cpu": "8300m", + "memory": "16640Mi" }, "min": { "cpu": "200m", @@ -32,8 +32,8 @@ "memory": "256Mi" }, "max": { - "cpu": "2000m", - "memory": "8192Mi" + "cpu": "8000m", + "memory": "16384Mi" }, "min": { "cpu": "100m", diff --git a/instances/technology.cbi/target/k8s/resource-quotas.json b/instances/technology.cbi/target/k8s/resource-quotas.json index 7eeb99b7e..483562dd4 100644 --- a/instances/technology.cbi/target/k8s/resource-quotas.json +++ b/instances/technology.cbi/target/k8s/resource-quotas.json @@ -11,11 +11,11 @@ }, "spec": { "hard": { - "limits.cpu": "6600m", - "limits.memory": "11008Mi", - "pods": 3, - "requests.cpu": "3100m", - "requests.memory": "11008Mi" + "limits.cpu": "26800m", + "limits.memory": "47872Mi", + "pods": 11, + "requests.cpu": "13900m", + "requests.memory": "47872Mi" } } } diff --git a/instances/technology.cbi/target/k8s/statefulset.json b/instances/technology.cbi/target/k8s/statefulset.json index 48125f1f5..a2999e0b0 100644 --- a/instances/technology.cbi/target/k8s/statefulset.json +++ b/instances/technology.cbi/target/k8s/statefulset.json @@ -112,11 +112,11 @@ }, "resources": { "limits": { - "cpu": "2000m", - "memory": "2304Mi" + "cpu": "3800m", + "memory": "4352Mi" }, "requests": { - "cpu": "700m" + "cpu": "1900m" } }, "volumeMounts": [