Skip to content

End-to-End Google Cloud CI/CD example repo and tutorial

License

Notifications You must be signed in to change notification settings

nateaveryg/pop-kustomize

 
 

Repository files navigation

Demo: Google Cloud CI/CD for GKE

This repo demostrates CI/CD for GKE with Google Cloud tools Google Cloud Deploy, Cloud Build, and Artifact Registry. The example app is based on a simple Python Flask example app named "Population Stats" and uses Kustomize overlays to enable configuration differences across three different environments: test, staging, and prod..

Demo flow

Fork this repo

This demo relies on you making git check-ins to simulate a developer workflow. So you'll need your own copy of these files in your own github.com repo.

Fork this repo on Github

If you've already done that, you can start the setup tutorial below.

Setup tutorial

The following tutorial walks you through all the setup needed to configure Google Cloud services needed to run this demo. Clicking this button provisions a Cloud Shell Editor and launches an interactive tutorial which steps you through the process. Google Cloud account and project required.

Start tutorial in cloud shell

If you don't want to run the tutorial in Cloud Shell, you can view the md file here.

Notes:

To view the security insight panel inside of Cloud Deploy, You might need to alter the permissions of the service account

  • Artifact Registry Reader
  • Container Analysis Occurrences Viewer
  • Service Usage Consumer

Cloud Build Features:

  • Cloud Repositories 2nd Gen
  • Security Insights Panel
  • SLSA build provenance

Artifact Registry

  • Docker Registry
  • local python repo
  • remote python repo
  • virtual python repo

Artifact Analysis

  • Scan on push
  • OS level vuln scans
  • python package vuln scans

Cloud Deploy Features:

  • Approvals
  • Canary
  • Verification
  • Pre-deployment Hook
  • Multiple Stages
  • Promotions between stages
  • Security Insights panel
  • Multi-target deployment for prod

Deployment Targets

About the Sample app - Population stats

Simple web app that pulls population data based on U.S. address queries. Note, other countries are currently not supported.

Population data gathered from the U.S. Census Bureau Population Estimate API.

Feedback and contributions welcomed!

demo 7

About

End-to-End Google Cloud CI/CD example repo and tutorial

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 41.1%
  • HTML 26.0%
  • Shell 23.9%
  • Dockerfile 5.9%
  • HCL 3.1%