tf4k8s
tf4k8s copied to clipboard
Random experiments with Terraform and Kubernetes
Terraform for Kubernetes
An exploration into the use of Terraform to provision Kubernetes clusters on popular IaaS.
Vision
Launch a relatively comprehensive end-to-end demo environment for discussion purposes and/or hands-on workshops in under an hour.
Getting Started
Choose your own adventure on one of the following cloud providers
- [x] Google Cloud Platform (GKE)
- [x] Microsoft Azure (AKS)
- [x] Amazon Web Service (EKS)
- [x] VMWare Tanzu Kubernetes Grid
- on AWS management and workload clusters
- on Azure management and workload clusters
- [x] VMWare Tanzu Kubernetes Grid Integrated
Or provision new / attach existing Kubernetes clusters via
- [ ] VMWare Tanzu Mission Control
Current experiments
- [x] Identity management
- [x] Add DNS Zone management
- [x] Add Certificate management
- [x] Add Ingress and External DNS
- [x] Install Sealed Secrets
- [x] Install a registry like ACR, GCR, Harbor or JCR
- [x] Install VMWare Tanzu Build Service
- [x] Install cf-for-k8s
- [x] Install VMWare Tanzu Application Service for Kubernetes
- [x] Install Tanzu Services Manager
- [x] Install Cloud Service Broker
- [x] Install Kubeapps
- [x] Install Stratos
- [x] Install Loki Stack
- [x] Install EFK Stack
- [x] Integrate a cloud provider's blobstore or install Minio
- [x] Integrate VMware Tanzu Observability
- [x] Provision a distributed version control system with Gitea
- [x] Enable continuous integration (and deployment) with Concourse or Jenkins
- [x] Enable continuous deployment with Argo CD or Tekton
- [x] Install edukates a set of custom resources used to deploy workshop training portals
Organization
Sub-directories of this repository contain
-
bom
- Bill of materials; what do you need to get started?
-
experiments
- Progressively build out a platform to deliver software delivery agility underpinned by Kubernetes
-
modules
- Building blocks to be composed as you see fit
-
ytt-libs
Roadmap
Above-mentioned experiments will evolve to include automating base configuration and installation of an additional complement of capabilities/components aimed at modeling a modern enterprise software factory / product delivery supply chain.
Cloud Foundry
Administration
- [x] Stratos
Open Service Broker-compatible API servers
Provision your own collection of services
Provision managed services in a public cloud and bind them to applications
Service catalog
Deploy and manage application and services with ease through an administrative interface
- [x] Kubeapps
Distributed Version Control
- [x] Gitea
- [ ] Gitlab
CI/CD
- [x] Argo CD
- [x] Jenkins
- [ ] Gitlab
- [x] VMWare Tanzu Build Service
- [x] Concourse
- [x] Tekton
Reference Pipelines
- See tf4k8s-pipelines
Logging/Monitoring/Metrics
- [x] FluentBit
- [x] Elasticsearch, Kibana
- [x] Prometheus
- [x] Grafana
- [x] VMWare Tanzu Observability
Cluster/Policy Management
- [ ] VMWare Tanzu Mission Control
Additional "building blocks" and maintenance
- [x] Contour
- [x] Registries: ACR, GCR, JFrog Container Registry
- [ ] Velero
Services
Blob stores
- [x] Minio
- [x] Amazon S3
- [x] Google Cloud Storage Bucket
- [x] Azure Blob Storage
Stream Processing
- [ ] Kafka
- [x] RabbitMQ
Caching
- [x] Gemfire
- [ ] Redis
Databases
- [ ] Mongo
- [x] MySQL
- [x] Postgres
Spring Cloud
- [x] Gateway
- [x] Configuration Service
- [ ] Spring Cloud Dataflow