fix: seed job warnings, updated latest lts and plugins (#1018)

This commit is contained in:
Luigi Operoso 2024-06-02 23:33:56 +02:00 committed by GitHub
parent 25b329aa13
commit 061995a65c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 64 additions and 44 deletions

View File

@ -17,8 +17,8 @@ jobs:
uses: codespell-project/actions-codespell@v2
with:
check_filenames: true
ignore_words_list: aks,ags,startin
skip: "*.js,package-lock.json,*.lock,*/Font-Awesome/*,*.toml,*.svg,*assets/vendor/bootstrap*,cert-manager.crds.yaml"
ignore_words_list: aks,ags,startin,NotIn
skip: "*.js,package-lock.json,*.lock,*/Font-Awesome/*,*.toml,*.svg,*assets/vendor/bootstrap*,cert-manager.crds.yaml,*/docs/*"
pre-commit:
name: PreCommit
runs-on: ubuntu-latest

View File

@ -54,7 +54,7 @@ Kubernetes native operator which fully manages Jenkins on Kubernetes
| jenkins.enabled | bool | `true` | |
| jenkins.env | list | `[]` | |
| jenkins.hostAliases | object | `{}` | |
| jenkins.image | string | `"jenkins/jenkins:2.440.1-lts"` | |
| jenkins.image | string | `"jenkins/jenkins:2.452.1-lts"` | |
| jenkins.imagePullPolicy | string | `"Always"` | |
| jenkins.imagePullSecrets | list | `[]` | |
| jenkins.labels | object | `{}` | |

View File

@ -36,7 +36,7 @@ jenkins:
# image is the name (and tag) of the Jenkins instance
# Default: jenkins/jenkins:lts
# It's recommended to use LTS (tag: "lts") version
image: jenkins/jenkins:2.440.1-lts
image: jenkins/jenkins:2.452.1-lts
# env contains jenkins container environment variables
env: []
@ -90,19 +90,19 @@ jenkins:
#
# basePlugins:
# - name: kubernetes
# version: 4186.v1d804571d5d4
# version: 4238.v41b_3ef14a_5d8
# - name: workflow-job
# version: 1385.vb_58b_86ea_fff1
# version: 1400.v7fd111b_ec82f
# - name: workflow-aggregator
# version: 596.v8c21c963d92d
# - name: git
# version: 5.2.1
# version: 5.2.2
# - name: job-dsl
# version: "1.87"
# - name: configuration-as-code
# version: 11775.v810dc950b_514
# version: 1810.v9b_c30a_249a_4c
# - name: kubernetes-credentials-provider
# version: 1.234.vf3013b_35f5b_a
# version: 1.262.v2670ef7ea_0c5
basePlugins: []

View File

@ -7,7 +7,7 @@ GO_VERSION="1.15.6"
HELM_VERSION="3.12.3"
IMAGE_PULL_MODE="local"
KIND_CLUSTER_NAME="jenkins"
LATEST_LTS_VERSION="2.440.1"
LATEST_LTS_VERSION="2.452.1"
NAME="kubernetes-operator"
NAMESPACE="default"
OPERATOR_SDK_VERSION="1.3.0"

View File

@ -46,7 +46,7 @@ const (
AgentName = "seed-job-agent"
// DefaultAgentImage is the default image used for the seed-job agent
defaultAgentImage = "jenkins/inbound-agent:3206.vb_15dcf73f6a_9-3"
defaultAgentImage = "jenkins/inbound-agent:3248.v65ecb_254c298-4"
creatingGroovyScriptName = "seed-job-groovy-script.groovy"
@ -409,10 +409,6 @@ func agentDeploymentName(jenkins v1alpha2.Jenkins, agentName string) string {
}
func agentDeployment(jenkins *v1alpha2.Jenkins, namespace string, agentName string, secret string, kubernetesDomainName string) (*appsv1.Deployment, error) {
jenkinsSlavesServiceFQDN, err := resources.GetJenkinsSlavesServiceFQDN(jenkins, kubernetesDomainName)
if err != nil {
return nil, err
}
jenkinsHTTPServiceFQDN, err := resources.GetJenkinsHTTPServiceFQDN(jenkins, kubernetesDomainName)
if err != nil {
return nil, err
@ -455,10 +451,8 @@ func agentDeployment(jenkins *v1alpha2.Jenkins, namespace string, agentName stri
Image: agentImage,
Env: []corev1.EnvVar{
{
Name: "JENKINS_TUNNEL",
Value: fmt.Sprintf("%s:%d",
jenkinsSlavesServiceFQDN,
jenkins.Spec.SlaveService.Port),
Name: "JENKINS_WEB_SOCKET",
Value: "true",
},
{
Name: "JENKINS_SECRET",

View File

@ -113,7 +113,9 @@ func TestEnsureSeedJobs(t *testing.T) {
var agentDeployment appsv1.Deployment
err = fakeClient.Get(ctx, types.NamespacedName{Namespace: jenkins.Namespace, Name: agentDeploymentName(*jenkins, AgentName)}, &agentDeployment)
assert.NoError(t, err)
assert.Equal(t, "jenkins/inbound-agent:3206.vb_15dcf73f6a_9-3", agentDeployment.Spec.Template.Spec.Containers[0].Image)
assert.Equal(t, "jenkins/inbound-agent:3248.v65ecb_254c298-4", agentDeployment.Spec.Template.Spec.Containers[0].Image)
assert.Equal(t, "JENKINS_WEB_SOCKET", agentDeployment.Spec.Template.Spec.Containers[0].Env[0].Name)
assert.Equal(t, "true", agentDeployment.Spec.Template.Spec.Containers[0].Env[0].Value)
})
t.Run("delete agent deployment when no seed jobs", func(t *testing.T) {

View File

@ -8,7 +8,7 @@ const (
// SeedJobSuffix is a suffix added for all seed jobs
SeedJobSuffix = "job-dsl-seed"
// DefaultJenkinsMasterImage is the default Jenkins master docker image
DefaultJenkinsMasterImage = "jenkins/jenkins:2.440.1-lts"
DefaultJenkinsMasterImage = "jenkins/jenkins:2.452.1-lts"
// DefaultHTTPPortInt32 is the default Jenkins HTTP port
DefaultHTTPPortInt32 = int32(8080)
// DefaultSlavePortInt32 is the default Jenkins port for slaves

View File

@ -1,13 +1,13 @@
package plugins
const (
configurationAsCodePlugin = "configuration-as-code:1775.v810dc950b_514"
gitPlugin = "git:5.2.1"
configurationAsCodePlugin = "configuration-as-code:1810.v9b_c30a_249a_4c"
gitPlugin = "git:5.2.2"
jobDslPlugin = "job-dsl:1.87"
kubernetesPlugin = "kubernetes:4186.v1d804571d5d4"
kubernetesCredentialsProviderPlugin = "kubernetes-credentials-provider:1.258.v95949f923a_a_e"
kubernetesPlugin = "kubernetes:4238.v41b_3ef14a_5d8"
kubernetesCredentialsProviderPlugin = "kubernetes-credentials-provider:1.262.v2670ef7ea_0c5"
workflowAggregatorPlugin = "workflow-aggregator:596.v8c21c963d92d"
workflowJobPlugin = "workflow-job:1385.vb_58b_86ea_fff1"
workflowJobPlugin = "workflow-job:1400.v7fd111b_ec82f"
)
// basePluginsList contains plugins to install by operator.

View File

@ -33,8 +33,14 @@ diag() {
--set namespace=${DETIK_CLIENT_NAMESPACE} \
--set operator.image=${OPERATOR_IMAGE} \
--set jenkins.latestPlugins=true \
--set jenkins.image="jenkins/jenkins:2.440.1-lts" \
--set jenkins.image="jenkins/jenkins:2.452.1-lts" \
--set jenkins.backup.makeBackupBeforePodDeletion=false \
--set jenkins.seedJobs[0].id=seed-job \
--set jenkins.seedJobs[0].targets="cicd/jobs/*.jenkins" \
--set jenkins.seedJobs[0].description="jobs-from-operator-repo" \
--set jenkins.seedJobs[0].repositoryBranch=master \
--set jenkins.seedJobs[0].repositoryUrl=https://github.com/jenkinsci/kubernetes-operator \
--set jenkins.seedJobs[0].buildPeriodically="10 * * * *" \
jenkins-operator/jenkins-operator --version=$(cat VERSION.txt | sed 's/v//')
assert_success
assert ${HELM} status default
@ -118,7 +124,25 @@ diag() {
}
#bats test_tags=phase:helm,scenario:vanilla
@test "1.10 Helm: upgrade from main branch same values" {
@test "1.10 Helm: check Jenkins seed job status and logs" {
[[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly"
run verify "there is 1 deployment named 'seed-job-agent-jenkins'"
assert_success
run verify "there is 1 pod named 'seed-job-agent-jenkins-'"
assert_success
run try "at most 20 times every 10s to get pods named 'seed-job-agent-jenkins-' and verify that '.status.containerStatuses[?(@.name==\"jnlp\")].ready' is 'true'"
assert_success
run ${KUBECTL} logs -l app=seed-job-agent-selector
assert_success
assert_output --partial 'INFO: Connected'
}
#bats test_tags=phase:helm,scenario:vanilla
@test "1.11 Helm: upgrade from main branch same values" {
run echo ${DETIK_CLIENT_NAMESPACE}
run echo ${OPERATOR_IMAGE}
run ${HELM} upgrade default \
@ -126,7 +150,7 @@ diag() {
--set namespace=${DETIK_CLIENT_NAMESPACE} \
--set operator.image=${OPERATOR_IMAGE} \
--set jenkins.latestPlugins=true \
--set jenkins.image="jenkins/jenkins:2.440.1-lts" \
--set jenkins.image="jenkins/jenkins:2.452.1-lts" \
--set jenkins.backup.makeBackupBeforePodDeletion=false \
chart/jenkins-operator
assert_success
@ -134,7 +158,7 @@ diag() {
}
#bats test_tags=phase:helm,scenario:vanilla
@test "1.11 Helm: check Jenkins operator pods status again" {
@test "1.12 Helm: check Jenkins operator pods status again" {
[[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly"
run verify "there is 1 deployment named 'default-jenkins-operator'"
assert_success
@ -147,7 +171,7 @@ diag() {
}
#bats test_tags=phase:helm,scenario:vanilla
@test "1.12 Helm: check Jenkins operator pods status" {
@test "1.13 Helm: check Jenkins operator pods status" {
[[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly"
run verify "there is 1 deployment named 'default-jenkins-operator'"
assert_success
@ -160,7 +184,7 @@ diag() {
}
#bats test_tags=phase:helm,scenario:vanilla
@test "1.13 Helm: check Jenkins Pod status" {
@test "1.14 Helm: check Jenkins Pod status" {
[[ ! -f "chart/jenkins-operator/deploy.tmp" ]] && skip "Jenkins helm chart have not been deployed correctly"
run try "at most 20 times every 10s to get pods named 'jenkins-jenkins' and verify that '.status.containerStatuses[?(@.name==\"jenkins-master\")].ready' is 'true'"
assert_success
@ -170,7 +194,7 @@ diag() {
}
#bats test_tags=phase:helm,scenario:vanilla
@test "1.14 Helm: clean" {
@test "1.15 Helm: clean" {
run ${HELM} uninstall default
assert_success
# Wait for the complete removal

View File

@ -29,7 +29,7 @@ setup() {
--set operator.image=${OPERATOR_IMAGE} \
--set jenkins.latestPlugins=true \
--set jenkins.nodeSelector.batstest=yep \
--set jenkins.image="jenkins/jenkins:2.440.1-lts" \
--set jenkins.image="jenkins/jenkins:2.452.1-lts" \
--set jenkins.backup.makeBackupBeforePodDeletion=false \
jenkins-operator/jenkins-operator --version=$(cat VERSION.txt | sed 's/v//')
assert_success
@ -101,7 +101,7 @@ setup() {
--set operator.image=${OPERATOR_IMAGE} \
--set jenkins.latestPlugins=true \
--set jenkins.nodeSelector.batstest=yep \
--set jenkins.image="jenkins/jenkins:2.440.1-lts" \
--set jenkins.image="jenkins/jenkins:2.452.1-lts" \
--set jenkins.backup.makeBackupBeforePodDeletion=false \
chart/jenkins-operator
assert_success

View File

@ -29,7 +29,7 @@ setup() {
--set namespace=${DETIK_CLIENT_NAMESPACE} \
--set operator.image=${OPERATOR_IMAGE} \
--set jenkins.latestPlugins=true \
--set jenkins.image="jenkins/jenkins:2.440.1-lts" \
--set jenkins.image="jenkins/jenkins:2.452.1-lts" \
--set jenkins.backup.makeBackupBeforePodDeletion=true \
--set webhook.enabled=true \
jenkins-operator/jenkins-operator --version=$(cat VERSION.txt | sed 's/v//')
@ -86,7 +86,7 @@ setup() {
--set namespace=${DETIK_CLIENT_NAMESPACE} \
--set operator.image=${OPERATOR_IMAGE} \
--set jenkins.latestPlugins=true \
--set jenkins.image="jenkins/jenkins:2.440.1-lts" \
--set jenkins.image="jenkins/jenkins:2.452.1-lts" \
--set jenkins.backup.makeBackupBeforePodDeletion=true \
--set webhook.enabled=true \
chart/jenkins-operator

View File

@ -24,13 +24,13 @@ import (
const e2e = "e2e"
var expectedBasePluginsList = []plugins.Plugin{
plugins.Must(plugins.New("configuration-as-code:1775.v810dc950b_514")),
plugins.Must(plugins.New("git:5.2.1")),
plugins.Must(plugins.New("kubernetes:4186.v1d804571d5d4")),
plugins.Must(plugins.New("kubernetes-credentials-provider:1.258.v95949f923a_a_e")),
plugins.Must(plugins.New("configuration-as-code:1810.v9b_c30a_249a_4c")),
plugins.Must(plugins.New("git:5.2.2")),
plugins.Must(plugins.New("kubernetes:4238.v41b_3ef14a_5d8")),
plugins.Must(plugins.New("kubernetes-credentials-provider:1.262.v2670ef7ea_0c5")),
plugins.Must(plugins.New("job-dsl:1.87")),
plugins.Must(plugins.New("workflow-aggregator:596.v8c21c963d92d")),
plugins.Must(plugins.New("workflow-job:1385.vb_58b_86ea_fff1")),
plugins.Must(plugins.New("workflow-job:1400.v7fd111b_ec82f")),
}
func createUserConfigurationSecret(namespace string, stringData map[string]string) {

View File

@ -21,7 +21,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/envtest"
)
const JenkinsTestImage = "jenkins/jenkins:2.440.1-lts"
const JenkinsTestImage = "jenkins/jenkins:2.452.1-lts"
var (
Cfg *rest.Config

View File

@ -47,7 +47,7 @@ var _ = Describe("Jenkins Controller", func() {
cmd := exec.Command("../../bin/helm", "upgrade", "jenkins", "../../chart/jenkins-operator", "--namespace", namespace.Name, "--debug",
"--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace.Name),
"--set-string", fmt.Sprintf("jenkins.image=%s", "jenkins/jenkins:2.440.1-lts"),
"--set-string", fmt.Sprintf("jenkins.image=%s", "jenkins/jenkins:2.452.1-lts"),
"--set-string", fmt.Sprintf("operator.image=%s", *imageName), "--install")
output, err := cmd.CombinedOutput()
Expect(err).NotTo(HaveOccurred(), string(output))