Spring Cloud Pipelines


Table of Contents

1. Introduction
1.1. Project setup
1.2. How to use it?
1.2.1. Centralized pipeline creation
1.2.2. Pipeline per repository
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
1.7.1. Pipeline descriptor for Cloud Foundry
2. Opinionated implementation
2.1. Build
2.2. Test
2.3. Stage
2.4. Prod
3. Project opinions
3.1. Cloud Foundry project opinions
3.2. Kubernetes project opinions
4. Concourse Pipeline (Cloud Foundry)
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
5. Concourse Pipeline (Kubernetes)
5.1. Step by step
5.1.1. Fork repos
5.2. Concourse in K8S (Kubernetes)
5.2.1. Deploying Artifactory to K8S
5.2.2. Setup the fly CLI
5.2.3. Setup your credentials.yml
5.2.4. Build the pipeline
5.2.5. Run the github-webhook pipeline
6. Concourse FAQ
6.1. Can I use the pipeline for some other repos?
6.2. Will this work for ANY project out of the box?
6.3. Can I modify this to reuse in my project?
6.4. I ran out of resources!! (PCF Dev)
6.5. The rollback step fails due to missing JAR ?!
6.6. Can I see the output of a job from the terminal?
6.7. I clicked the job and it’s constantly pending…​
6.8. The route is already in use (CF)
6.9. I’m unauthorized to deploy infrastructure jars
6.10. version resource is broken
7. Jenkins Pipeline (Common)
7.1. Project setup
7.2. Optional customization steps
7.2.1. Deploying infra jars to a different location
7.2.2. Setup settings.xml for Maven deployment
7.2.3. Setup Jenkins env vars
Seed properties
Global envs
7.2.4. Set Git email / user
Add Jenkins credentials for GitHub
7.3. Testing Jenkins scripts
7.4. How to work with Jenkins Job DSL plugin
7.5. Docker Image
8. Jenkins Pipeline (Cloud Foundry)
8.1. Step by step
8.1.1. Fork repos
8.1.2. Start Jenkins and Artifactory
Deploy the infra JARs to Artifactory
8.1.3. Start PCF Dev
8.1.4. Run the seed job
8.1.5. Run the github-webhook pipeline
8.2. Declarative pipeline & Blue Ocean
8.3. Jenkins Cloud Foundry customization
8.3.1. All env vars
8.3.2. Jenkins Credentials
9. Jenkins Pipeline (Kubernetes)
9.1. Step by step
9.1.1. Fork repos
9.1.2. Start Jenkins and Artifactory
Deploy the infra JARs to Artifactory
9.1.3. Run the seed job
9.1.4. Run the github-webhook pipeline
9.2. Declarative pipeline & Blue Ocean
9.3. Jenkins Kubernetes customization
9.3.1. All env vars
9.4. Preparing to connect to GCE
9.5. Connecting to a Kubo or GCE cluster
10. Jenkins FAQ
10.1. Pipeline version contains ${PIPELINE_VERSION}
10.2. Pipeline version is not passed to the build
10.3. The build times out with pipeline.sh info
10.4. Can I use the pipeline for some other repos?
10.5. Will this work for ANY project out of the box?
10.6. Can I modify this to reuse in my project?
10.7. The rollback step fails due to missing JAR ?!
10.8. I want to provide a different JDK version
10.9. Enable Groovy Token Macro Processing
10.10. I want deployment to stage and prod be automatic
10.11. I don’t want to test API compativility
10.12. I can’t tag the repo!
10.13. I’m unauthorized to deploy infrastructure jars
10.14. Signing Artifacts
10.15. Using SSH keys for git
10.16. Deploy to stage fails and doesn’t redeploy a service (Kubernetes)
10.17. I ran out of resources!! (Cloud Foundry)
10.18. Deploying to test / stage / prod fails - error finding space (Cloud Foundry)
10.19. The route is already in use (Cloud Foundry)
10.20. How to execute helper scripts against a real CF instance I’m logged into (Cloud Foundry)
11. Kubernetes setup
11.1. Kubernetes CLI Installation
11.1.1. Script Installation
11.1.2. Manual Installation
11.2. Kubernetes Cluster setup
11.2.1. Script Installation
11.2.2. Manual Installation
11.3. Run Minikube
11.4. Certificates and Workers
11.4.1. Minikube Certificates and Workers
11.4.2. Manual Certificates and Workers Setup
11.5. Generate Minikube namespaces
12. The demo setup (Cloud Foundry)
12.1. Deploying production applications to PCF Dev
12.2. Running Prometheus on CF
12.3. Running Grafana on CF
13. The demo setup (Kubernetes)
13.1. Deploying production applications to Minikube
13.2. Running Prometheus on Kubernetes
13.3. Running Grafana on Kubernetes
14. Step by step Cloud Foundry migration
15. Building the project
15.1. Prerequisites
15.2. Bats submodules
15.3. Build and test
15.4. Generate docs
15.5. Making a release
16. Customizing the project
17. Releasing the project
17.1. Publishing A Docker Image