2.3 KiB
2.3 KiB
Developer guide
This document explains how to setup your dev environment.
Prerequisites
- dep version v0.5.0+
- git
- go version v1.10+
- minikube version v0.31.0+ (preferred Hypervisor - virtualbox)
- docker version 17.03+
Clone repository and download dependencies
mkdir -p $GOPATH/src/github.com/VirtusLab
cd $GOPATH/src/github.com/VirtusLab/
git clone git@github.com:VirtusLab/jenkins-operator.git
cd jenkins-operator
make go-dependecies
Build and run
Build and run jenkins-operator locally:
make build && make docker-build && make minikube-run EXTRA_ARGS='--minikube --local'
Once minikube and jenkins-operator are up and running, apply CR file:
kubectl apply -f jenkins-operator/deploy/crds/virtuslab_v1alpha1_jenkins_cr.yaml
kubectl get jenkins -o yaml
kubectl get po
Testing
Run unit tests:
make test
Run e2e tests with minikube:
make minikube-run
make docker-build-e2e
make e2e E2E_IMAGE=jenkins-operator
See the project README for more details.
Hacks
pkg/apis/virtuslab/v1alpha1/jenkins_types has changed
Run:
make deepcopy-gen
Getting Jenkins URL and basic credentials
minikube service jenkins-operator-example --url
kubectl get secret jenkins-operator-credentials-example -o yaml
Install custom plugins
Extend initBashTemplate in jenkins-operator/pkg/controller/jenkins/configuration/base/resources/scripts_configmap.go:
touch {{ .JenkinsHomePath }}/plugins.txt
cat > {{ .JenkinsHomePath }}/plugins.txt <<EOL
credentials:2.1.18
ssh-credentials:1.14
job-dsl:1.70
git:3.9.1
mask-passwords:2.12.0
workflow-cps:2.61
workflow-job:2.30
workflow-aggregator:2.6
EOL