Code Monkey home page Code Monkey logo

terraform-k8s-example's Introduction

terraform-k8s-example

An example of a managed kubernetes deployment on AWS, Azure, and GCP using Terraform.

Why deploy this way?

There are a number of reasons this strategy could be useful for your operations.

Centralized Blueprints

Terraform scripts contain all the relevant details of how your cloud resources relate to one another and to the internet at large. In the case of Kubernetes deployments, this can be extremely useful since that information is necessary in order to properly configure a manifest to run on a cluster.

Turnkey Deployments

Terraform has the ability to provision entire cloud networks with one script. When combined with tools like Github Actions, you can deploy everything your team has designed with the click of a single button.

Infrastructure Security

Because Terraform scripts can isolate the entire deployment process to a single step, there becomes only one set of credentials to manage for all of your infrastructure management.

How can I use this repo?

This repo includes Terraform modules for provisioning a managed Kubernetes cluster on AWS Elastic Kubernetes Service, Azure Kubernetes Service, or Google Kubernetes Engine. The actions are written with the assumption that the resources to be deployed are specified in a Kubernetes manifest file.

Create OIDC Credentials

Instructions for configuring AWS, GCP, and Azure OIDC credentials for Github can be found at the provided links.

Deploy a Kubernetes Manifest

The simplest way to deploy a set of custom resources to the clusters provisioned with these modules is to describe your deployments, services, and other resources in a Kubernetes manifest file like the one provided as an example. Clone the template on your own account and fill in the secrets and variables with authentication data from your desired provider using the secrets and variables/actions tab of the settings menu on your repo. Then replace the example manifest with your own and the actions should deploy, destroy, and run basic health checks on your application.

Deploy a Helm Chart (experimental)

You can deploy a Helm chart by specifying a name for it in the CHART_NAME variable in your repository variables (not secrets). Then, run the deploy-helm action for your desired platform. That's it!

If you would like to deploy a custom Helm chart, simply upload its root directory into your repository and set the CHART_NAME variable to 'app'.

terraform-k8s-example's People

Contributors

thecodekitchen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.