• R/O
  • HTTP
  • SSH
  • HTTPS

Repository summary

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubybathyscaphegamephpguiwindowsc翻訳pythonomegattwitterframeworkbtronarduinovb.net計画中(planning stage)directxpreviewertestゲームエンジンdom

the default GitOps source repository for booting up Jenkins X


Recent Commits RSS

Rev. Time Author Message
f1f81fe 2019-10-08 15:13:06 James Strachan jstrachan-patch-2 WIP: dummy PR
145ee48 2019-10-04 22:13:26 Cosmin Cojocar master Merge pull request #68 from cagiti/add_create_domain_set...
6b63f62 2019-09-25 02:37:47 jenkins-x-bot Merge pull request #71 from jstrachan/stuff2 fix: add s...
7ced6a8 2019-09-24 23:22:05 James Strachan fix: add support for scheduled velero backups
56c1661 2019-09-24 19:12:58 James Strachan jstrachan-patch-1 WIP: dummy test PR
501f772 2019-09-17 06:13:18 jenkins-x-bot Merge pull request #65 from pmuir/5117 Fix: new vault n...
60aacd9 2019-09-17 05:23:08 Andrew Bayer fix: Set environmentGitOwner to jenkins-x-bot-test Signe...
677f3c9 2019-09-16 23:41:40 Pete Muir Fix: new vault name location
a6cae54 2019-09-13 16:45:36 jenkins-x-bot Merge pull request #67 from ccojocar/volumes-for-secrets...
e46f7af 2019-09-12 21:57:00 Cai Cooper feat: script which upserts domains for testing Signed-of...

Recently edited Tags

Name Rev. Time Author
v1.0.21 17dab0c 2019-10-04 22:13:54 jenkins-x-bot
v1.0.20 a1e00dc 2019-09-25 02:37:56 jenkins-x-bot
v1.0.19 003b1f6 2019-09-17 06:15:47 jenkins-x-bot
v1.0.18 63815e7 2019-09-13 16:45:45 jenkins-x-bot
v1.0.17 9e8810c 2019-09-12 00:11:08 jenkins-x-bot
v1.0.16 da3e1b3 2019-09-11 21:37:33 jenkins-x-bot
v1.0.15 da5352d 2019-09-11 18:47:45 jenkins-x-bot
v1.0.14 72ebb2f 2019-09-11 18:35:04 jenkins-x-bot
v1.0.13 3d5f33b 2019-09-10 20:35:57 jenkins-x-bot
v1.0.12 6b0e41d 2019-09-10 14:52:36 jenkins-x-bot
v1.0.11 c387208 2019-09-09 20:36:44 jenkins-x-bot
v1.0.10 f40c698 2019-09-08 21:50:46 jenkins-x-bot
v1.0.9 0c19986 2019-09-05 16:40:17 jenkins-x-bot
v1.0.8 b84e23d 2019-09-05 02:51:46 jenkins-x-bot
v1.0.7 ab18195 2019-09-04 21:58:53 jenkins-x-bot
v1.0.6 28a24dd 2019-09-02 17:43:25 jenkins-x-bot
v1.0.5 e0d8485 2019-08-29 19:56:30 jenkins-x-bot
v1.0.4 776d00a 2019-08-29 19:47:58 jenkins-x-bot
v1.0.3 f60c81d 2019-08-26 17:28:10 jenkins-x-bot
v1.0.2 3692140 2019-08-23 23:32:39 jenkins-x-bot
v1.0.1 a5bef54 2019-08-08 19:07:56 Pete Muir
v1.0.0 c965f71 2019-07-25 15:17:24 James Strachan
v0.0.9 d867175 2019-07-11 19:06:38 jenkins-x-bot
v0.0.8 f491050 2019-07-11 13:43:41 jenkins-x-bot
v0.0.7 4991b22 2019-07-11 13:43:16 jenkins-x-bot
v0.0.6 d42b5db 2019-07-02 16:41:51 jenkins-x-bot
v0.0.5 a46dc29 2019-07-02 00:03:09 jenkins-x-bot
v0.0.4 b6baa58 2019-07-01 20:41:43 jenkins-x-bot
v0.0.3 50d55de 2019-07-01 20:40:08 jenkins-x-bot
v0.0.2 247fe01 2019-07-01 19:31:51 jenkins-x-bot
v0.0.1 f301ef3 2019-06-28 19:09:00 jenkins-x-bot

Branches

Name Rev. Time Author Message
jstrachan-patch-2 f1f81fe 2019-10-08 15:13:06 James Strachan WIP: dummy PR
master 145ee48 2019-10-04 22:13:26 Cosmin Cojocar Merge pull request #68 fro...
jstrachan-patch-1 56c1661 2019-09-24 19:12:58 James Strachan WIP: dummy test PR
bwalding-patch-1 591e9ea 2019-09-11 18:33:55 Ben Walding Improve bash options Base...
garethjevans-patch-6 c55b293 2019-09-07 03:08:47 Gareth Evans fix: enable ingress based ...
revert-54-5034 0fc7941 2019-09-05 01:28:18 Andrew Bayer Revert "fix: use namespace...
toad 5b562c9 2019-08-16 07:53:44 rawlingsj toad config
rawlingsj-patch-1 76ca38f 2019-08-16 07:34:33 James Rawlings No longer need cert-manage...
pmuir-patch-2 39b4c3b 2019-08-01 19:40:31 Pete Muir fix: run `jx step verify e...
1.0.0 c965f71 2019-07-25 15:17:24 James Strachan Merge pull request #28 fro...
garethjevans-patch-5 594a09d 2019-07-23 22:42:50 Gareth Evans fix: grammer fix on hmac q...
garethjevans-patch-4 30e7534 2019-07-23 21:27:07 Gareth Evans chore: sync'd changes from...
garethjevans-patch-3 013bee3 2019-07-23 20:51:22 Gareth Evans chore: improved help messa...
garethjevans-patch-2 ef6d586 2019-07-23 20:39:45 Gareth Evans feat: generate a HMAC toke...
garethjevans-patch-1 7d47b08 2019-07-22 17:23:46 Gareth Evans chore: fix spelling on tas...
cagiti-patch-2 42f6880 2019-07-19 03:48:05 Cai Cooper fix: update rbac value to ...
cagiti-patch-1 eb7c8ab 2019-07-19 03:47:36 Cai Cooper Update rbac value to be th...
macox-patch-1 ad69dfd 2019-07-12 23:35:00 Mark Cox chore: clarify pipeline bo...
updates_readme_link c7cfdee 2019-07-12 16:50:20 Mark Cox chore: updated readme link
pmuir-patch-1 a5635ce 2019-07-11 19:06:02 James Strachan added a link to HMAC
gh-pages 6b9e289 2019-06-28 20:25:55 jenkins-x-bot Publishing files for path j...
update-repositories-version-af56c88e-9996-11e9-a25b-8c85905f674a 668e531 2019-06-28 20:20:07 James Strachan chore(dependencies): update
update-repositories-version-064dc936-9996-11e9-9484-8c85905f674a f3890dd 2019-06-28 20:15:24 James Strachan chore(dependencies): update

README.md

Jenkins X Boot Configuration

This repository contains the source code for Jenkins X Boot configuration so that you can setup, upgrade or configure your Jenkins X installation via GitOps.

How to install...

Creating a kubernetes cluster

  • either use Terraform to spin up a GKE cluster with a jx namespace and any necessary cloud resources (e.g. on GCP we need a Kaniko Service Account and Secret)
  • create an empty GKE cluster by hand e.g. via jx create cluster gke --skip-installation or using the GCP Console

Run the new Jenkins X Bootstrap Pipeline

Create a fork of this git repository on github. We suggest renaming it to match the pattern environment-<cluster name>-dev. To rename your repository go to the repository settings in github.

Clone your newly forked git repository:

git clone https://github.com/<org>/environment-<cluster name>-dev && cd environment-<cluster name>-dev

It's important that you cd into your newly checked out git repo, otherwise jx boot will use the upstream Jenkins X boot configuration.

Now, in the checkout, run:

jx boot

If you are not in a clone of a boot git repository then jx boot will clone this repository and cd into the clone.

The bootstrap process runs the Jenkins X Pipeline in interpret mode as there's nothing running in your Kubernetes cluster yet and so there's no server side tekton controller until after we bootstrap.

The bootstrap process will also ask you for various important parameters which are used to populate a bunch of Secrets stored in either Vault or the local file system (well away from your git clone).

The pipeline will then setup the ingress controller, then cert manager, then install the actual development environment.

Apart from the secrets populated to Vault / local file system everything else is stored inside this git repository as Apps and helm charts.

How it works

We have improved the support for value + secret composition via this issue.

Parameters file

We define a env/parameters.yaml file which defines all the parameters either checked in or loaded from Vault or a local file system secrets location.

Injecting secrets into the parameters

If you look at the current env/parameters.yaml file you will see some values inlined and others use URIs of the form local:my-cluster-folder/nameofSecret/key. This currently supports 2 schemes:

  • vault: to load from a path + key from Vault
  • local: to load from a key in a YAML file at ~/.jx/localSecrets/$path.yml

This means we can populate all the Parameters we need on startup then refer to them from values.yaml to populate the tree of values to then inject those into Vault.

Populating the parameters.yaml file

We can then use the new step to populate the parameters.yaml file via this command in the env folder:

jx step create values --name parameters

This uses the parameters.schema.json file which powers the UI.

So if you wanted to perform your own install from this git repo, just fork it, remove env/parameters.yaml and run the bootstrap command!

Improvements to values.yaml

Support a tree of values.yaml files

Rather than a huge huge deeply nested values.yaml file we can have a tree of files for each App only include the App specific configuration in each folder. e.g.

env/
  values.yaml   # top level configuration
  prow/
    values.yaml # prow specific config
  tekton/
    vales.yaml  # tekton specific config 

values.yaml templates

When using jx step helm apply we now allow values.yaml files to use go/helm templates just like templates/foo.yaml files support inside helm charts so that we can generate value/secret strings which can use templating to compose things from smaller secret values. e.g. creating a maven settings.xml file or docker config.json which includes many user/passwords for different registries.

We can then check in the values.yaml file which does all of this composition and reference the actual secret values via URLs (or template functions) to access vault or local vault files

To do this we use expressions like: {{ .Parameter.pipelineUser.token }} somewhere in the values.yaml values file. So this is like injecting values into the helm templates; but it happens up front to help generate the values.yaml files.