Skip to content
This repository has been archived by the owner on Jun 17, 2023. It is now read-only.
/ demo-ci-project Public archive

A demo Exekube project that deploys private CI tools onto a GKE cluster

License

Notifications You must be signed in to change notification settings

exekube/demo-ci-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

demo-ci-project

👋

If you are new to Exekube, follow the Getting Started Tutorial at https://docs.exekube.com/in-practice/getting-started

👋

demo-ci-project is a demo project built with the Exekube framework for deploying these applications using GKE:

  • Concourse server (CI/CD service)
  • ChartMuseum (Helm chart repository)
  • Docker Registry v2

Networking

Privately expose your applications

By default, this project ships with minimally configured networking for simplicity and ease of setup, though our services will be available only privately via kubectl proxy (from within the cluster). For this project, you can enable the proxy by typing in your shell

docker-compose up

Use can then access the applications using the "Private address" links below.

Publicly expose your applications

If we want to expose our services (applications) on the public Internet, we will need to:

  1. Create an external static IP address for nginx-ingress (Kubernetes LoadBalancer type of service)
  2. Enable nginx-ingress Helm release
  3. Create DNS records to point clients to this address
  4. Enable cert-manager Helm release and create issuers + certificate for issuing SSL/TLS certificates for our domains
  5. Enable Ingress resources for our Helm releases

Use this pull request as an example of how to set up production networking.

There is also a step-by-step tutorial: https://docs.exekube.com/in-practice/production-networking

Modules

Base modules

This project uses the Exekube base-project as boilerplate.

Modules from base-project:

  • gke-network
  • gke-cluster
  • administration-tasks

modules/nginx-ingress

We use nginx-ingress as our ingress controller for the applications.

modules/cert-manager

We use cert-manager to acquire Let's Encrypt TLS certificates to enable HTTPS for publicly available appications.

modules/concourse

Guestbook is a canonical example of a Kubernetes deployment

modules/docker-registry

A custom React app to test out Istio ingress and auto-injection

modules/chartmuseum

A custom React app to test out Istio ingress and auto-injection

Releases

No releases published

Packages

No packages published

Languages