Spring Cloud Pipelines


Table of Contents

1. Introduction
1.1. Project setup
1.2. How to use it?
1.3. The flow
1.4. Environments
1.5. Tests
1.5.1. Testing against stubs
1.5.2. General view
1.6. CI Server worker prerequisites
1.7. Pipeline descriptor
2. Opinionated implementation
2.1. Build
2.2. Test
2.3. Stage
2.4. Prod
3. Project opinions
3.1. CF project opinions
3.2. Kubernetes project opinions
4. Concourse Pipeline
4.1. Step by step
4.1.1. Fork repos
4.1.2. Start Concourse and Artifactory
Deploy the infra JARs to Artifactory
4.1.3. Start PCF Dev
4.1.4. Setup the fly CLI
4.1.5. Setup your credentials.yml
4.1.6. Build the pipeline
4.1.7. Run the github-webhook pipeline
4.2. FAQ
4.2.1. Can I use the pipeline for some other repos?
4.2.2. Will this work for ANY project out of the box?
4.2.3. Can I modify this to reuse in my project?
4.2.4. I ran out of resources!!
4.2.5. The rollback step fails due to missing JAR ?!
4.2.6. Can I see the output of a job from the terminal?
4.2.7. I clicked the job and it’s constantly pending…​
4.2.8. The route is already in use
4.2.9. I’m unauthorized to deploy infrastructure jars
5. Jenkins Pipeline (Common)
5.1. Project setup
5.2. Optional customization steps
5.2.1. Deploying infra jars to a different location
5.2.2. Setup settings.xml for Maven deployment
5.2.3. Setup Jenkins env vars
Seed properties
Global envs
5.2.4. Set Git email / user
Add Jenkins credentials for GitHub
5.3. Testing Jenkins scripts
5.4. How to work with Jenkins Job DSL plugin
5.5. Docker Image
6. Jenkins Pipeline (Cloud Foundry)
6.1. Step by step
6.1.1. Fork repos
6.1.2. Start Jenkins and Artifactory
Deploy the infra JARs to Artifactory
6.1.3. Start PCF Dev
6.1.4. Run the seed job
6.1.5. Run the github-webhook pipeline
6.2. Declarative pipeline & Blue Ocean
6.3. Jenkins Cloud Foundry customization
6.3.1. All env vars
6.3.2. Jenkins Credentials
7. Jenkins Pipeline (Kubernetes)
7.1. Step by step
7.1.1. Fork repos
7.1.2. Start Jenkins and Artifactory
Deploy the infra JARs to Artifactory
7.1.3. Kubernetes CLI Installation
Script Installation
7.1.4. Manual Installation
7.1.5. Kubernetes Cluster setup
Script Installation
Manual Installation
7.1.6. Run Minikube
7.1.7. Certificates and Workers
Minikube Certificates and Workers
Manual Certificates and Workers Setup
7.1.8. Generate Minikube namespaces
7.1.9. Run the seed job
7.1.10. Run the github-webhook pipeline
7.2. Declarative pipeline & Blue Ocean
7.3. Jenkins Kubernetes customization
7.3.1. All env vars
7.4. Preparing to connect to GCE
7.5. Connecting to a Kubo or GCE cluster
8. FAQ
8.1. Pipeline version contains ${PIPELINE_VERSION}
8.2. Pipeline version is not passed to the build
8.3. The build times out with pipeline.sh info
8.4. Can I use the pipeline for some other repos?
8.5. Will this work for ANY project out of the box?
8.6. Can I modify this to reuse in my project?
8.7. The rollback step fails due to missing JAR ?!
8.8. I want to provide a different JDK version
8.9. Enable Groovy Token Macro Processing
8.10. I want deployment to stage and prod be automatic
8.11. I don’t want to test API compativility
8.12. I can’t tag the repo!
8.13. I’m unauthorized to deploy infrastructure jars
8.14. Signing Artifacts
8.15. Using SSH keys for git
8.16. Deploy to stage fails and doesn’t redeploy a service (Kubernetes)
8.17. I ran out of resources!! (Cloud Foundry)
8.18. Deploying to test / stage / prod fails - error finding space (Cloud Foundry)
8.19. The route is already in use (Cloud Foundry)
8.20. How to execute helper scripts against a real CF instance I’m logged into (Cloud Foundry)
9. The demo setup (Cloud Foundry)
9.1. Deploying production applications to PCF Dev
9.2. Running Prometheus on CF
9.3. Running Grafana on CF
10. The demo setup (Kubernetes)
10.1. Deploying production applications to Minikube
10.2. Running Prometheus on Kubernetes
10.3. Running Grafana on Kubernetes
11. Building the project
11.1. Prerequisites
11.2. Bats submodules
11.3. Build and test
11.4. Generate docs
12. Customizing the project
13. Releasing the project
13.1. Publishing A Docker Image