The Jenkins X Files - Mulder
mulder
is the backend side of The Jenkins X Files - the Jenkins X workshop. You can also see Scully, the frontend side.
It's a Go application that provides a (very) basic HTTP API, with 1 main endpoint:
-
GET /quote/random
which returns a random quote from FBI's most unwanted, in JSON:{ "quote": "I have a theory. Do you want to hear it?" }
-
GET /healthz
checks the health of the application, and the connection to Redis. It returns either a200
or500
status code.
Dependencies:
- Redis - to store the quotes
Building:
go build
Running:
Either:
- build the binary with
go build
, and run it - or run it directly with
go run .
Flags:
-listen-addr
(string): host:port on which to listen. Default::8080
-redis-addr
(string): redis host:port to connect to. Default::6379
-redis-connect-timeout
(duration): timeout for connecting to redis. Default:1m0s
Unit Tests:
go test -v .
Integration Tests:
go test -v ./tests -addr HOST:PORT
- don't forget to replace the
HOST:PORT
argument with the hostname and port of a running mulder instance you want to test - the integration tests won't start it for you.
- don't forget to replace the
What about Makefile, Dockerfile, Jenkinsfile, Helm Chart, ... ?
It ain't there, and it's on purpose - because the goal of the workshop is to write them, or at least have them automatically generated by Jenkins X.
But you can still find:
- a Docker image on the dockerhub, at thejenkinsxfiles/mulder
- Pull it with
docker pull thejenkinsxfiles/mulder:1.0.0
- Check the
Dockerfile
in the dockerfile branch
- Pull it with
- an Helm chart at https://the-jenkins-x-files.github.io/charts/
- Check the chart sources in the helm-chart branch