DevOps Demos, Tutorials & Screencasts¶
- DevOps Screencasts
- DevOps Blogs
- Kubernetes Blogs
- DevOps Demos
- Kubernetes Demos
- Postgres Operator
- CI/CD with SpringBoot for Kubernetes
- Kubernetes CKAD Example Exam Questions Practical Challenge Series
- Istio Service Mesh
- Envoy Service Mesh
- Consul Service Mesh
- GitOps Workflow with Flux
- Amazon EKS. Deploy example microservices on EKS
- Azure AKS
- Google Kubernetes Engine GKE
- Environments to learn and practice Kubernetes security
- Red Hat Demo Central
- OpenShift Demos
- Developer Sandbox
- OpenShift VS Kubernetes
- IBM Cloud Pak Playbooks
- OpenShift Pipelines Workshop (Tekton)
- GitLab Pipelines on OpenShift
- Deploying Web Applications with Eclipse JKube (formerly known as fabric8)
- Monitoring Services with OpenShift ServiceMesh
- Red Hat Migration Toolkit for Applications
- Red Hat Advanced Cluster Management RHACM
- Helm 3 on OpenShift
- Writing Kubernetes Operators
- Customized Reports with Metering Operator (monitoring k8s resources)
- Red Hat AMQ Streams (Kafka)
- Jenkins Demos
- Jenkins X
- Nexus3 on Kubernetes
- Spring PetClinic Sample Application
- AWS Demos
- Azure DevOps Demos
- Google DevOps Demos
- Quarkus Demos
- Apache Camel & ActiveMQ. Event driven integration
- JBoss EAP
- Prometheus and Grafana
- GitHub Actions
- Red Hat Process Automation Manager
- API Testing and Postman
- DevStack All about DevOps
- RedHatGov.io is an open source collection of workshop materials that cover various topics relating to Red Hat’s product portfolio.
- github.com/wardviaene (kubernetes, terraform, ansible, docker, etc) 🌟
- thoughtworks.com: Modernizing your build pipelines with Concourse CI 🌟
- Spring PetClinic Sample Application By following this repository you can able to setup a DevOps CI/CD Pipeline using: git, Jenkins, Maven, Ansible, Docker & Kubernetes
- dev.to: Build a highly available Node.js application using Docker, NGINX and AWS ELB
- towardsdatascience.com: Developing and Deploying a COMPLETE Project Using FastAPI, Jinja2, SQLAlchemy, Docker, and AWS
- dzone Avengers of the Container World, Episode 1: Podman Hands-On 🌟 CRI-O and Podman have been widely adapted by most of the modern container platforms. In this blog, we will deep-dive on Podman with a hands-on session.
- dzone: Avengers of Container World, Episode 2: Buildah and Skopeo Hands-On 🌟 In this post, we will explore Buildah and Skopeo, build a Node.js application container using Buildah, and run it using Podman
Ansible and Ansible Tower¶
- ansible.github.io/workshops/demos : Red Hat Ansible Automation Platform Workshops
- Red Hat Ansible Tower - Workshop and Demo
- blog.stephane-robert.info: Ansible - Utiliser MySQL comme inventaire dynamique (Use MySQL as a dynamic inventory)
- opensource.com: Build a Kubernetes Minecraft server with Ansible’s Helm modules Deploy a Minecraft server into a Kubernetes cluster with Ansible’s new collections.
- developers.redhat.com: Run your first Ansible Playbook (Katakoda)
- kubernetes-advocate.medium.com: Website Deployment to AWS with Ansible
- konstruktoid.medium.com: Running a NGINX container using rootless Docker with Ansible
- kmahi2600.medium.com: Launching A WordPress Application With MYSQL Database in K8S Cluster On AWS Using Ansible
- faun.pub: Automation: Deploying an app in GKE using Ansible Ansible infrastructure-as-code to automate Nginx deployment in Google Kubernetes Cluster (GKE) on Google Cloud Platform (GCP).
- thenewstack.io: GitOps in Multicluster Environments with Anthos Config Management
- kubesandclouds.com: Werf: Fully customizable GitOps 🌟 Werf builds and publishes images, deploys applications to Kubernetes clusters, and removes unused images based on policies and rules defined in the Git repository.
- mytechramblings.com: A practical example of GitOps using Azure DevOps, Azure Container Registry, Helm, Flux and Kubernetes
- kubernetesbyexample.com 🌟
- howtoforge.com: How to create a Deployment in Kubernetes
- codeburst.io: getting started with kubernetes, deploy a docker container in 5 minutes
- Kubernetes workshop in a box
- medium.com/@Kubernetes_Advocate 🌟
- medium: Efficient Node Out-of-Resource Management in Kubernetes
- itnext.io: K8s raise StatefulSet volume size with low impact Shown step-by-step on a simple example application
- Kubernetes Examples
- medium: Prometheus-Grafana on K8s
- blog.scottlowe.org: Using kubectl via an SSH Tunnel Learn how to use kubectl via an SSH Tunnel to connect to the Kubernetes API server.
- trainings.kubernauts.sh Learn Kubernetes by doing and run into problems!
- magalix.com: How To Integrate OPA Into Your Kubernetes Cluster Using Kube-mgmt
- itnext.io: Kubernetes Journey — Up and running out of the cloud — How to setup the Masters using kubeadm bootstrap
- medium: Build a Federation of Multiple Kubernetes Clusters With Kubefed V2
- medium: Single Sign-On in Kubernetes This article walks you through creating a service, exposing it with an Ingress, and adding Single Sign On. The article uses Okta (but of course you’re free to use any other OIDC SSO provider you prefer)
- Free Kubernetes 🌟🌟 List of free Trials/Credit for Managed Kubernetes Services.
- medium: Kubernetes in a nutshell — tutorial for beginners 🌟🌟 Deploy a complete application stack just in a few steps!
- shipa.io: Developing and deploying applications to Kubernetes locally with Shipa and Minikube
- shipa.io: GitOps in Kubernetes, the easy way–with GitHub Actions and Shipa
- kruyt.org: Running a mailserver in Kubernetes
- piotrminkowski.com: RabbitMQ Monitoring on Kubernetes
- dzone: Bootstrapping Java Kubernetes Apps With Spring Initializr and K8s Initializer 🌟 Build a Spring Boot app and deploy to K8s without writing a single line of YAML.
- medium: Production Ready CI/CD Pipeline with Kubernetes
- myweblearner.com: Kubernetes(k8s) Readiness and Liveness Probe
- medium.com: Attacking Kubernetes clusters using the Kubelet API Knock-knockin’ on kubelet’s door. From the doormat to full node access.
- nfrankel/jvm-controller Example on how to write a kubernetes controller in Java. The demo code for nfrankel’s talk on Kubernetes operators in Java.
- matthewpalmer.net: Kubernetes Ingress with Nginx Example 🌟
- digitalocean.com: How To Deploy a Scalable and Secure Django Application with Kubernetes
- developers.redhat.com: Deploying Node.js applications to Kubernetes with Nodeshift and Minikube
- itnext.io: Breaking down and fixing Kubernetes In this article you’ll break the cluster, delete certificates and rejoin the nodes without causing any downtime.
CI/CD with SpringBoot for Kubernetes¶
- CI/CD for Kubernetes through a Spring Boot example (Banzai Cloud CI/CD)
- onlineitguru.com: How to utilize Spring Boot Microservices on Kubernetes?
- piotrminkowski.com: Spring Boot on Kubernetes with Buildpacks and Skaffold 🌟
- spring.io: YMNNALFT: Easy Docker Image Creation with the Spring Boot Maven Plugin and Buildpacks
Deploy a Spring Boot Application to Openshift with Spring Cloud Kubernetes and Fabric 8 Maven Plugin¶
- github: Spring Cloud Kubernetes 🌟
- baeldung.com: Deploy a Spring Boot Application to OpenShift with Spring Cloud Kubernetes 🌟
Spring Initializr and k8s Initializer¶
- Spring Initializr
- k8s Initializer
- dzone: Bootstrapping Java Kubernetes Apps With Spring Initializr and K8s Initializer Build a Spring Boot app and deploy to K8s without writing a single line of YAML
- hashicorp.com: Getting Started with Ambassador and Consul Using Kubernetes Initializer Kubernetes Initializer built by Ambassador Labs provides a new experience for simplifying the deployment of Ambassador and Consul in a Sandbox Kubernetes environment.
Kubernetes CKAD Example Exam Questions Practical Challenge Series¶
Istio Service Mesh¶
- github: redhat-developer-demos Istio Tutorial for Java Microservices
- blog.jetstack.io: Istio OIDC Authentication In this article you’ll deploy an app and secure it with authenticaiton and authorisation for using Istio
Envoy Service Mesh¶
- loginradius.com: Service Mesh with Envoy This post will cover a working setup of a service mesh architecture using Envoy using a demo application. You will be using Envoy proxy for both control and data plane.
Consul Service Mesh¶
- medium: Consul-Kubernetes Ingress Gateways and L7 Traffic Management
- medium: Kittens-as-a-Service: Layer 7 Traffic Management & Security with Consul Connect
- learn.hashicorp.com: Consul Service Discovery and Mesh on Minikube 🌟
- consul.io: Ingress Gateways on Kubernetes 🌟
- Deploy a Rancher Cluster with GitLab CI and Terraform
- cncf.io: Implementing GitOps on Kubernetes Using K3s, Rancher, Vault and Argo CD
- stackrox.com: Part 1 - Rancher Kubernetes Engine (RKE) Security Best Practices for Cluster Setup 🌟
GitOps Workflow with Flux¶
- managedkube.com: A Complete Step by Step Guide to Implementing a GitOps Workflow with Flux
- youtube: GitOps Guide to the Galaxy (Ep 12): Flux On OpenShift
Amazon EKS. Deploy example microservices on EKS¶
- eksworkshop.com: Configure Cluster Autoscaler (CA)
- aws.amazon.com: Deploy a kubernetes application
- aws blogs: Git Push to Deploy Your App on EKS
- medium: create your first application on aws eks kubernetes
- dzone: deploying a kubernetes cluster with amazon eks 🌟
- stacksimplify.com: DevOps with AWS CodePipeline on AWS EKS
- medium: AWS App Mesh with EKS and Canary deployment
- github.com/stacksimplify/aws-eks-kubernetes-masterclass 🌟
- github.com/stacksimplify/azure-aks-kubernetes-masterclass 🌟
- channel9.msdn.com: Troubleshoot AKS cluster issues with AKS Diagnostics and AKS Periscope
Google Kubernetes Engine GKE¶
Environments to learn and practice Kubernetes security¶
- The Kubernetes Goat designed to be intentionally vulnerable cluster environment to learn and practice Kubernetes security.
Red Hat Demo Central¶
- gitlab.com/redhatdemocentral 🌟
- CodeReady Containers - Red Hat Decision Manager Install Demo
- youtube: CodeReady Containers - Easy OpenShift Container Platform 4.5 Installation
Cloud Native Development Architectural Diagrams Demos¶
- Cloud-native development is an approach to building and running applications to fully exploit the advantages of the cloud computing model (i.e. responsive, elastic and resilient applications).
- Portfolio Architecture Workshops for creating impactful architectural diagrams. This workshop will teach you how to use, design, and create architectural diagrams based on the draw.io tooling and Red Hat Portfolio Architecture design elelements. You’ll leverage existing portfolio architecture diagrams as starting points.
- developers.redhat.com: Developing on OpenShift (katacoda interactive learning) 🌟 Learn how to access an OpenShift cluster, manage apps with the odo command-line tool, then try image and source-based deployment techniques.
- github.com/OpenShiftDemos 🌟
- DockerHub OpenShift Demos
- Red Hat Tutorials & Examples: github.com/redhat-developer-demos 🌟
- redhatgov.io RedHatGov.io is an open source collection of workshop materials that cover various topics relating to Red Hat’s product portfolio.
- blog.openshift.com: OCP multi-node deployment on AWS using CloudFormation and Ansible (quickstart workshop)
- Deploying Docker Images to OpenShift We take a look at how to deploy a Docker image from DockerHub into RedHat’s OpenShift environment, bringing added functionality along the way.
- SonarQube: An OpenShift-focused Docker build of Sonarqube
- Deploying PostgreSQL in MiniShift/OpenShift 3
- Clustering WildFly on Openshift
- Java EE example on Openshift
- Microprofile example on Openshift
- Deploying WildFly apps on Openshift
- Running Thorntail apps on Openshift
- Running Spring Boot applications on Openshift
- github.com/openshiftdemos 🌟
- github.com/openshift-labs 🌟
- MapIt MapIt is a geo-spatial Spring Boot app which shows the location of AirPorts on the Map using Leaflet.
- openshift.com: Simple Canary Deployments using Kubernetes StatefulSets on OpenShift
- github.com/jbossdemocentral: Red Hat Process Automation Manager Mortgage Demo
- medium: Tutorial : Secure your API with x509 Mutual Authentication with Spring Boot on OpenShift4
- medium.com: Red Hat OpenShift Virtualization in nested VMware vSphere Cluster In this post, I’ll go thru the process of running Virtual Machines on OpenShift Virtualization in a nested setup inside VMware vSphere. This requires both ESXi hosts and a VCenter, both on 6.7U3 or up.
- schabell.org: CodeReady Containers - Building a Cloud-Native Human Resources Process
- developers.redhat.com: Persistent storage in action: Understanding Red Hat OpenShift’s persistent volume framework 🌟
- opensource.com: Set up Minishift and run Jenkins on Linux Install, configure, and use Minishift to create your first pipeline.
- dzone: CodeReady Containers - Exploring a home loan mortgage process As a cloud-native developer you’ve installed an OpenShift Container Platform development environment on your local machine, but what’s next…
- Rcarrata’s blog
- JBoss Web Server Operator 🌟 Did you know that you can run Tomcat in Containers on Kubernetes in a easy supported manner? Take a look at the JBoss Web Server (a.k.a. @RedHat ‘s build of Tomcat) Operator for OpenShift
- developers.redhat.com: Containerize and deploy Strapi CMS applications on Kubernetes and Red Hat OpenShift
- Developer Sandbox for Red Hat OpenShift 🌟 Get free access to the Developer Sandbox for Red Hat OpenShift and deploy your application code as a container on this self-service, cloud-hosted experience. Skip installations and deployment and jump directly into OpenShift.
- developers.redhat.com: How to deploy a Java application on Kubernetes in minutes Move your legacy Java application into a container and deploy it to Kubernetes. The Developer Sandbox for Red Hat OpenShift is a free OpenShift cluster that gives you access to the cutting-edge technologies built on Kubernetes. A quick sign-up gets you a cluster and access to a set of developer tools and services. Move this Spring Pet Clinic example application into a container using the Source-to-Image (s2i) feature.
OpenShift VS Kubernetes¶
- developer.ibm.com: Example exercises to differentiate OpenShift and Kubernetes Example exercises to differentiate OpenShift and Kubernetes. Walk through some steps with Red Hat OpenShift on IBM Cloud.
IBM Cloud Pak Playbooks¶
- knative-tutorial A pratical guide to get started with knative. Knative concepts are explained simple and easy way with lots of demos and exercises.
- aymen-segni.com: Deploying Serverless Services on Kubernetes using Knative
OpenShift Pipelines Workshop (Tekton)¶
- Build a Go application using OpenShift Pipelines
- openshift-pipelines-workshop Workshop to demonstrate OpenShift Pipelines (featuring Tekton)
- OpenShift Pipelines Catalog
- systemcraftsman/lab-tekton-pipelines: OpenShift Pipelines workshop
- openshift.com: GitOps Using Red Hat OpenShift Pipelines (Tekton) and Red Hat Advanced Cluster Management
- Set up continuous integration for .NET Core with OpenShift Pipelines
- alesnosek.com: CI/CD Pipeline Spanning Multiple OpenShift Clusters (jenkins & tekton)
- openshift.com: Guide to OpenShift Pipelines Part 1 - Introducing OpenShift Pipelines
- kailashyogeshwar.medium.com: How we implemented Reusable CI/CD Pipeline using Git and Tekton
- openshift.com: GitOps Using Red Hat OpenShift Pipelines (Tekton) and Red Hat Advanced Cluster Management to Deploy on Multiple Clusters 🌟
- developers.redhat.com: Getting started with Tekton and Pipelines
- rromannissen/rhoar-microservices-demo: GitOps for Microservices with Red Hat Runtimes demo A GitOps pipeline example using ArgoCD, tektoncd and HelmPack for springboot and QuarkusIO microservices.
- developers.redhat.com: From code to production with OpenShift Pipelines and Argo CD
- developers.redhat.com: Building modern CI/CD workflows for serverless applications with Red Hat OpenShift Pipelines and Argo CD, Part 1
- developers.redhat.com: Building modern CI/CD workflows for serverless applications with Red Hat OpenShift Pipelines and Argo CD, Part 2
- itnext.io: Deploy Argo CD with Ingress and TLS in Three Steps: No YAML Yak Shaving Required 🌟
- Ambassador Edge Stack. K8S Initializer (scaffolding tool) 🌟
- developers.redhat.com: Introduction to Tekton and Argo CD for multicluster development
- itnext.io: Solving ArgoCD Secret Management with the argocd-vault-plugin 🌟
- youtube: Exploring The Cloud-native Kubernetes CI/CD Pipeline Tool Landscape In this meetup, we explore the new era of Kubernetes continuous integration continuous deployment pipelines based on a set of fancy tools as Tekton Pipelines, ArgoCD or Helm. We walk through the new DevOps and GitOps technologies landscape and a real demonstration of how these tools work together in order to make developers and system administrators lives easier. repo1 , repo2 , slides
- blog.argoproj.io: Introducing the ApplicationSet Controller for Argo CD
- vzilla.co.uk: GitOps - Getting started with ArgoCD
GitLab Pipelines on OpenShift¶
Deploying Web Applications with Eclipse JKube (formerly known as fabric8)¶
- Building and Deploying a Weather Web Application onto Kubernetes/Red Hat OpenShift using Eclipse JKube
- Java development on top of Kubernetes using Eclipse JKube
- medium: Deploy Quarkus Todo List App to Kubernetes Using Eclipse JKube
- youtube: Deploy your Java applications to the Cloud using Eclipse JKube (petclinic) 🌟
Monitoring Services with OpenShift ServiceMesh¶
Red Hat Migration Toolkit for Applications¶
- Migration Toolkit for Applications: Getting Started
- Migration Toolkit for Applications Demo - June 2020 Migraiton Toolkit from Applications by Red Hat can help you migrate and/or modernize your applications by analyzing them and finding isses such as use of proprietary classes or behaviousr that are not conformant with 12factor app, in order to help you modernize your app portfolio and make it more cloud & container friendly.
- dzone: Red Hat’s Migration Toolkit for Applications This article explains how to analyze monolithic Java applications in multiple workspaces with Red Hat’s migration toolkit for applications.
Red Hat Advanced Cluster Management RHACM¶
- openshift.com: Applications Here, Applications There! - Part 3 - Application Migration
- Advanced Cluster Management Demos Want to manage Kubernetes clusters at scale? Struggle with Application Lifecycle? Need to ensure Security and Compliance policies across clusters? Check out these demos of Red Hat Advanced Cluster Manager (RHACM).
- redhat.com: ACM Ansible Integration Overview
- opensift.com: K8s Integrity Shield (tech-preview): Protecting the Integrity of Kubernetes Resources with Signature
- medium.com: Installing an OKD 4.5 Cluster
- itnext.io: Guide: Installing an OKD 4.5 Cluster
- openshift.com: Recap: OKD 4 Testing and Deployment Workshop - Videos and Additional Resources
Helm 3 on OpenShift¶
Writing Kubernetes Operators¶
Customized Reports with Metering Operator (monitoring k8s resources)¶
Red Hat AMQ Streams (Kafka)¶
- developers.redhat.com: HTTP-based Kafka messaging with Red Hat AMQ Streams
- developers.redhat.com: Message broker integration made simple with Red Hat Fuse This article presents a sample integration between Red Hat AMQ 7 and IBM MQ, using Red Hat Fuse 7 for the integration. Traditionally, developers have used resource adapters for message bridging with external systems. A resource adapter is a system library that provides connectivity to an enterprise information system (EIS). Similar to how a Java Database Connectivity (JDBC) driver provides connectivity to a database management system, a resource adapter plugs into an application server such as Red Hat JBoss Enterprise Application Platform (JBoss EAP). It then connects the application server, enterprise information system, and the enterprise application.
- kublr.com: cicd pipeline with jenkins nexus kubernetes
- bitbucket.org: setting up a cicd pipeline with spring mvc and kubernetes on aws
- Medium.com - Simple Spring Boot microservice deployed in Kubernetes using Docker and Nexus 🌟:
- kubernetes-advocate.medium.com: CI/CD with Dockers and Jenkins 🌟
- medium.com/@devml2016: Let’s Start Automation using Jenkins, Docker, GitHub
- developers.redhat.com: An easier way to create custom Jenkins containers Create your own custom Jenkins container image by aggregating readily available containers in a pod template.
- medium: Just commit your code and your docker server is ready (jenkins + github + docker)
- lambdatest.com: Best Jenkins Pipeline Tutorial For Beginners (Examples) 🌟
- ittroubleshooter.in: Run Parallel Builds in Kubernetes Cluster with Jenkins Pipeline 🌟
- cloudogu/jenkinsfiles 🌟🌟🌟 This project contains examples for the Jenkins pipeline plugin, comparing both declarative and scripted syntax. The examples were developed while working on an article series called Coding Continuous Delivery published in Java aktuell. Both English translation and German original can be found on the Cloudogu Blog.
- aws.amazon.com: Integrating Jenkins with AWS CodeArtifact to publish and consume Python artifacts
- github.com/monodot/pipeline-library-demo 🌟 Demonstrates how to use a Shared Library in Jenkins pipelines. This repository defines a single function, sayHello, which will echo a greeting.
- piotrminkowski.com: Continuous Integration with Jenkins on Kubernetes 🌟
- youtube: Simple DevOps Project | Publish Android APK to App Center | Beginner Pipeline
- blog.flant.com: Configuring Continuous Integration for Jenkins & Bitbucket using werf
- lambdatest.com: Comprehensive Guide To Jenkins Declarative Pipeline [With Examples] 🌟
Jenkins Declarative Pipelines with OpenShift¶
- github.com/openshift: Using Jenkins Declarative Pipelines with OpenShift 🌟
- Red Hat CodeReady Containers (Minishift equivalent for OpenShift 4.2 or newer) - step-by-step demo guides
- Grading Pipeline for OpenShift 4 Advanced Application Deployment Homework Assignment
- github - Demostration of a basic OpenShift CI/CD pipeline deploying an application in Development then Test
OpenShift Pipelines with S2i and Jenkins Blue Ocean¶
- OpenShift Pipelines with Jenkins Blue Ocean 🌟
- github.com/siamaksade/jenkins-blueocean Jenkins Blue Ocean for OpenShift Jenkins S2I
Jenkins Configuration as Code on Kubernetes¶
- Demo of Jenkins Configuration-As-Code with Docker and Groovy Hook Scripts (java11-support branch) 🌟🌟
- Configuration as Code of Jenkins (for Kubernetes) 🌟🌟
- Jenkins Configuration as Code on Kubernetes 🌟 A Codecentric/Jenkins Helm 3 Sample Chart on Digital Ocean Kubernetes with Spring Petclinic Demo Pipeline
From Jenkins Freestyle jobs to Pipeline, with JobDSL. Seed jobs¶
- Meetup event: From Freestyle jobs to Pipeline, with JobDSL
- Manually managing Jenkins jobs is painful. Jenkins Pipeline exists, but how do you get started and why should you bother in the first place? Journey with Nicolaj, as he talks about the pains of managing a manually configured job in Jenkins; converts a Freestyle Job to JobDSL, instantly; introduces mechanisms for adding the jobs to Jenkins, as code; and ultimately converts the job to a Jenkins Pipeline!
- Just like last time, in the talk “Configuration as Code of Jenkins (for Kubernetes),” you’ll see plenty of live demos and get to take home all the code and examples afterwards. Use it as the starting point for taking advantage of the Configuration as Code (CasC) that everyone is talking about, and hopefully it will save you a lot of headache in the future!
- Manual Freestyle jobs, and why they hurt us
- Introduction to JobDSL and adding JobDSL-jobs to Jenkins
- From Freestyle Jobs to JobDSL, the beginning of our CasC adventure
- From JobDSL to Pipeline, all the fun of CasC; with even more resilience!
- Nicolaj Græsholt is a Continuous Delivery and DevOps Consultant and Trainer from Eficode Praqma. He helps organizations with all things CI/CD, Artifact Management, Git, Docker and Kubernetes, and he’s a Certified Kubernetes Administrator of CNCF.
- Slides 🌟🌟🌟
- Demo repository 🌟🌟🌟
- Links of interest provided in the event:
- Continuation Passing Style (CPS) is a style of programming in which the remainder of the program is passed explicitly as a parameter, as opposed to that being handled implicitly represented as call stack.
- Jenkins Pipeline execution engine based on Continuation Passing Style (CPS) transformation of Groovy scripts. DSL Methods::
- Defines a Groovy CPS DSL definition: pipelineJob definition cps script
- Jenkins CLI
- How to create initial “seed” job
- Jenkinsfile Runner Test Framework
- Jenkins Pipeline Unit testing framework
- Plugin Installation Manager Tool
- Jenkins Custom WAR Packager
- Jenkins Configuration as Code:
- Configuration as Code of Jenkins (for Kubernetes) 🌟
- JEP-224: System Read permission: Improve experience of Jenkins Configuration-as-Code users It improves the modifying Web UI configuration controls to support the read-only mode.
- Plugin Usage This plugin gives you the possibility to analyze the usage of your installed plugins.
- Pipeline as YAML (Incubated) 🌟
- Jenkins Job DSL Plugin A Groovy DSL for Jenkins Jobs - Sweeeeet!
- Least Load This plugin overrides the default Load Balancer behavior and assigns jobs to nodes with the least load
- Declarative Pipeline Migration Assistant
- Jenkins Job DSL:
- Pipeline Global Library for ci.jenkins.io Collection of custom steps and variables for our Jenkins instance(s)
- Continuation Passing Style (CPS) is a style of programming in which the remainder of the program is passed explicitly as a parameter, as opposed to that being handled implicitly represented as call stack.
- SdkMan is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing and listing Candidates. Formerly known as GVM the Groovy enVironment Manager, it was inspired by the very useful RVM and rbenv tools, used at large by the Ruby community.
- Using Jenkins Pipeline parallel stages to build Maven project with different JDKs
- Demo: A single Jenkinsfile, a Java Maven project, a single Dockerfile, multiple Java versions build and tested in parallel thanks to SDKMAN:
- Using SDKMAN! as a docker image for Jenkins Pipeline - a step by step guide 🌟
- Multiple Java versions in a single Jenkins Pipeline using Docker and SDKMAN 🌟 In this video, I show you how you can use Jenkins Declarative Pipeline to create a build pipeline that compiles the Maven Java project using three different Java versions (8, 11, and 15.) You will learn how to use a matrix section of the Jenkins Pipeline to define parallel stages, as well as how to create a Docker image that provides both Java and Maven using the powerful SDKMAN command-line tool. After watching this video you should feel comfortable with setting up multiple parallel stages to build your Java project using different versions of the compiler. And what is most important - it does not require creating Dockerfiles for each Java version. I will show you how to build the pipeline using just a single Dockerfile that does the job.
- Jenkins Pipeline Maven build demo
- cleanup.Jenkinsfile: Jenkinsfile with Declarative Pipeline Multiline sh that cleanups old builds. All the Stages are now visually monitored. It is triggered every saturday night and ends with jenkins restart. These Multi-line bash commands make easier to read Jenkins Projects.
- daily_restart.Jenkinsfile: A script that automatically triggers a daily restart of Jenkins due to performance issues (Jenkins is a Java application). Jenkins with Declarative Pipeline multiline sh that restarts Jenkins every night except on Saturday nights (when cleanup.Jenkinsfile is triggered).
- confluence6-docker-build.Jenkinsfile: Declarative Jenkinsfile for building and uploading a docker image to Openshift-DEV, Dockerhub and Openshift-PROD (Stages are disabled via Conditional Build Steps). Tip: A Docker Plugin for Jenkins can easily replace this Jenkinsfile.
Grab them from here: awesome-kubernetes/scripts
Postman & Newman API Automated Tests¶
- LerryAlexander: Postman + Newman API Automated Tests running on a Jenkins Pipeline 🌟
- praveendavidmathew.medium.com: Data driven testing per request without using data file
Monitoring Jenkins with Grafana¶
- blog.testproject.io: Jenkins X Cloud Native CI/CD with TestProject
- Modernize Your CI/CD Pipeline Using Jenkins X with Amazon EKS
- Demo/Evaluation Installations
- wardviaene/advanced-kubernetes-course/spinnaker 🌟
- codeburst.io: Spinnaker by Example: Part 1
- codeburst.io: Spinnaker by Example: Part 2
- codeburst.io: Spinnaker by Example: Part 3
- dzone: Continuous Deployment on Kubernetes With Spinnaker In this article, learn how to setup Spinnaker and integrate it with Gitlab CI and Jenkins to build and run CI and CD pipelines.
- dzone: Continuous Delivery Pipeline for Kubernetes Using Spinnaker This post will focus on pushing out new releases of the application to our Kubernetes cluster i.e. Continuous Delivery.
- armory.io: How to Set Up Liquibase in Spinnaker
- armory.io: Build a Deployment Pipeline with Spinnaker on Kubernetes
- hackernoon: Using Spinnaker with Kubernetes for CI/CD
Nexus3 on Kubernetes¶
- Proof of Concept: Nexus3 Chart configuration on Kubernetes A choerodon/nexus3 Helm 3 Sample Chart on Digital Ocean Kubernetes
- piotrminkowski.com: GitLab CI/CD on Kubernetes
- about.gitlab.com: The basics of CI: How to run jobs sequentially, in parallel, or out of order New to continuous integration? Learn how to build your first CI pipeline with GitLab.
Spring PetClinic Sample Application¶
- deors/deors-demos-petclinic jenkinsfile
- liatrio.com: building with docker using jenkins pipelines
- stackoverflow: How to define BuildConfig object with Jenkins and openshift
- cloudogu.com: CD with Jenkins, Nexus and cloudogu
- experfy.com e-learning: Effective Jenkins - Continuous Delivery and Continuous Integration
- github.com/redhat-developer-demos/spring-petclinic 🌟
Modular Pipeline Library (MPL). Petclinic Pipeline example with MPL¶
- blog.griddynamics.com: Developing a modular pipeline library to improve DevOps collaboration
- youtube: Modular Pipeline Library: 4. Petclinic Pipeline 🌟 MPL demo video about more or less real petclinic pipeline with selenium tests, comparison to bare jenkinsfile pipeline without mpl, modules override mechanisms.
PetClinic on Kubernetes:¶
- github.com/spring-petclinic/spring-petclinic-kubernetes 🌟
- While waiting for a working version, you could check this fork
- Spring PetClinic Microservices
- Google Cloud Native Spring Boot PetClinic. Spring PetClinic Microservices on GCP 🌟 Example Petclinic deployment on Google Cloud Platform into Google Kubernetes Engine with Istio. This is based on Spring PetClinic Microservices.
- spring-petclinic-microservices renamed to spring-petclinic-cloud 🌟: https://github.com/spring-petclinic/spring-petclinic-cloud
- Distributed version of Spring Petclinic built with Spring Cloud 🌟
- github.com/kohsuke/petclinic Jenkinsfile
- pushbuildtestdeploy.com/jenkins-on-kubernetes-building-docker-images 🌟
PetClinic Docker images:¶
- ref 1
- ref 2
- ref 3
- ref 4
- ref 5 arey/springboot-petclinic
- ref 6
- ref 7
- ref 8
- ref 9 - I have a branch that adds Docker, Kubernetes and Knative into the mix - planning on submitting a PR at some point
- cyberciti.biz: How to create MySQL user and grant permissions in AWS RDS
- stacksimplify.com: DevOps with AWS CodePipeline on AWS EKS
- medium: Fetch Application Inventory using Systems Manager Get application inventory from each EC2 instance and store it in centralized account S3 bucket. To query the information from s3 bucket, we are integrating Glue, Athena (from another account).
- youtube: Build a Music Sharing App with Amazon S3 and AWS Amplify
- freecodecamp.org: How to Deploy a React App to Production Using Docker and NGINX with API Proxies
Azure DevOps Demos¶
- Azure DevOps Demo Generator 🌟 Azure DevOps Demo Generator helps you create projects on your Azure DevOps Organization with pre-populated sample content that includes source code, work items, iterations, service endpoints, build and release definitions based on a template you choose. The purpose of this system is to simplify working with the Azure Devops hands-on-labs 🌟, demos and other education material provided by the Microsoft Azure Marketing team.
- Azure DevOps Demo Generator is now open source
- Get started creating and populating demo Azure DevOps Services projects
- reddit.com: Automate Infrastructure Deployments on Microsoft Azure with Terraform and Jenkins
Google DevOps Demos¶
GitOps with Anthos Config Management¶
- Tutorial: Connect Amazon EKS and Azure AKS Clusters with Google Anthos
- Tutorial: GitOps in Multicluster Environments with Anthos Config Management
- Tutorial: Deploy Anthos Apps from GCP Marketplace into Amazon EKS Cluster
- Develop and test a Quarkus client on Red Hat CodeReady Containers with Red Hat Data Grid 8.0
- aytartana.wordpress.com: Migrating SpringBoot PetClinic REST to Quarkus
- medium: Setting up KafkaSource to send data and displayed with Knative event-display
- towardsdatascience.com: Kafka, for your data pipeline? Why not?
Apache Camel & ActiveMQ. Event driven integration¶
- developers.redhat.com: Red Hat JBoss Enterprise Application Platform expansion pack (JBoss EAP XP) 1.0 released This version enables JBoss EAP developers to build Java microservices using Eclipse MicroProfile 3.3 APIs while continuing to also support Jakarta EE 8.
- terraform.collabnix.com An Ultimate Terraform Hands-on Labs. Get access to 50+ tutorials around Terraform, Kubernetes & Cloud.
- opensource.com: A guide to Terraform for Kubernetes beginners Learn how to make a Minikube cluster and deploy to it with Terraform.
- medium: Install Istio on Azure Kubernetes cluster using Terraform
- brennerm.github.io: Setting up an EKS cluster with IAM/IRSA integration
- betterprogramming.pub: Create an Amazon EKS Fargate Cluster and Managed Node Group Using Terraform Serverless clusters and HashiCorp’s Terraform on AWS
- azapril.dev: Deploying a LogicApp with Terraform (Bonus: in an AzDO pipeline)
Prometheus and Grafana¶
- docker-compose-tpg: Telegraf + Prometheus + Grafana Local Testing Environments Setup learning environment for Telegraf, Prometheus and Grafana with docker-compose. (include SNMP simulators).
RedHat GitHub Actions¶
Red Hat Process Automation Manager¶
API Testing and Postman¶
- developers.redhat.com: Automated API testing for the KIE Server
- github.com/microsoft/azure-digital-twins-postman-samples The repo contains a single postman_collection.json file that contains a postman collection of requests to the Azure Digital Twins APIs. Currently the focus of the collection is on on the data plan and includes Models, Query, and Twins.