Merge pull request #100 from jakalkhalili/fix-kubernetes-url
Fix Kubernetes API URL
This commit is contained in:
commit
cb1e49ea42
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/env groovy
|
||||||
|
|
||||||
|
pipelineJob('k8s-e2e') {
|
||||||
|
displayName('Kubernetes Plugin E2E Test')
|
||||||
|
|
||||||
|
logRotator {
|
||||||
|
numToKeep(10)
|
||||||
|
daysToKeep(30)
|
||||||
|
}
|
||||||
|
|
||||||
|
configure { project ->
|
||||||
|
project / 'properties' / 'org.jenkinsci.plugins.workflow.job.properties.DurabilityHintJobProperty' {
|
||||||
|
hint('PERFORMANCE_OPTIMIZED')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
definition {
|
||||||
|
cpsScm {
|
||||||
|
scm {
|
||||||
|
git {
|
||||||
|
remote {
|
||||||
|
url('https://github.com/jenkinsci/kubernetes-operator.git')
|
||||||
|
credentials('jenkins-operator')
|
||||||
|
}
|
||||||
|
branches('*/master')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scriptPath('cicd/pipelines/k8s.jenkins')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/usr/bin/env groovy
|
||||||
|
|
||||||
|
def label = "k8sagent-e2e"
|
||||||
|
def home = "/home/jenkins"
|
||||||
|
def workspace = "${home}/workspace/build-jenkins-operator"
|
||||||
|
def workdir = "${workspace}/src/github.com/jenkinsci/kubernetes-operator/"
|
||||||
|
|
||||||
|
podTemplate(label: label,
|
||||||
|
containers: [
|
||||||
|
containerTemplate(name: 'alpine', image: 'alpine:3.10.2', ttyEnabled: true, command: 'cat'),
|
||||||
|
],
|
||||||
|
) {
|
||||||
|
node(label) {
|
||||||
|
stage('Run shell') {
|
||||||
|
container('alpine') {
|
||||||
|
sh 'echo "hello world"'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -114,7 +114,7 @@ if (kubernetes == null) {
|
||||||
add = true
|
add = true
|
||||||
kubernetes = new KubernetesCloud("kubernetes")
|
kubernetes = new KubernetesCloud("kubernetes")
|
||||||
}
|
}
|
||||||
kubernetes.setServerUrl("https://kubernetes.default")
|
kubernetes.setServerUrl("https://kubernetes.default.svc.cluster.local:443")
|
||||||
kubernetes.setNamespace("%s")
|
kubernetes.setNamespace("%s")
|
||||||
kubernetes.setJenkinsUrl("%s")
|
kubernetes.setJenkinsUrl("%s")
|
||||||
kubernetes.setJenkinsTunnel("%s")
|
kubernetes.setJenkinsTunnel("%s")
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,19 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
|
|
||||||
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client"
|
jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client"
|
||||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base"
|
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base"
|
||||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
|
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources"
|
||||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/groovy"
|
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/groovy"
|
||||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins"
|
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins"
|
||||||
|
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
|
||||||
|
|
||||||
"github.com/bndr/gojenkins"
|
"github.com/bndr/gojenkins"
|
||||||
framework "github.com/operator-framework/operator-sdk/pkg/test"
|
framework "github.com/operator-framework/operator-sdk/pkg/test"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
@ -96,6 +98,46 @@ func TestConfiguration(t *testing.T) {
|
||||||
verifyJenkinsSeedJobs(t, client, []seedJobConfig{mySeedJob})
|
verifyJenkinsSeedJobs(t, client, []seedJobConfig{mySeedJob})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPlugins(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
namespace, ctx := setupTest(t)
|
||||||
|
// Deletes test namespace
|
||||||
|
defer ctx.Cleanup()
|
||||||
|
|
||||||
|
jobID := "k8s-e2e"
|
||||||
|
|
||||||
|
seedJobs := &[]v1alpha2.SeedJob{
|
||||||
|
{
|
||||||
|
ID: "jenkins-operator",
|
||||||
|
CredentialID: "jenkins-operator",
|
||||||
|
JenkinsCredentialType: v1alpha2.NoJenkinsCredentialCredentialType,
|
||||||
|
Targets: "cicd/jobs/k8s.jenkins",
|
||||||
|
Description: "Jenkins Operator repository",
|
||||||
|
RepositoryBranch: "master",
|
||||||
|
RepositoryURL: "https://github.com/jenkinsci/kubernetes-operator.git",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
jenkins := createJenkinsCR(t, "k8s-e2e", namespace, seedJobs, v1alpha2.GroovyScripts{}, v1alpha2.ConfigurationAsCode{})
|
||||||
|
waitForJenkinsUserConfigurationToComplete(t, jenkins)
|
||||||
|
|
||||||
|
jenkinsClient := verifyJenkinsAPIConnection(t, jenkins)
|
||||||
|
waitForJob(t, jenkinsClient, jobID)
|
||||||
|
job, err := jenkinsClient.GetJob(jobID)
|
||||||
|
|
||||||
|
require.NoError(t, err, job)
|
||||||
|
i, err := job.InvokeSimple(map[string]string{})
|
||||||
|
require.NoError(t, err, i)
|
||||||
|
|
||||||
|
time.Sleep(time.Minute * 2)
|
||||||
|
|
||||||
|
job, err = jenkinsClient.GetJob(jobID)
|
||||||
|
require.NoError(t, err, job)
|
||||||
|
build, err := job.GetLastBuild()
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.True(t, build.IsGood())
|
||||||
|
}
|
||||||
|
|
||||||
func createUserConfigurationSecret(t *testing.T, namespace string, stringData map[string]string) {
|
func createUserConfigurationSecret(t *testing.T, namespace string, stringData map[string]string) {
|
||||||
userConfiguration := &corev1.Secret{
|
userConfiguration := &corev1.Secret{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue