Skip to content

This repo has 2 kind of cluster setup for kubernetes, one is oci managed (OKE), the other one is the self managed cluster.

License

Notifications You must be signed in to change notification settings

vcscsvcscs/OCI-Kubernetes-cluster-with-traefik

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OCI Kubernetes cluster with traefik

This repo has 2 kind of cluster setup for kubernetes, one is oci managed (OKE), the other one is the self managed cluster.

OCI managed cluster (OKE)

This Terraform configuration sets up an Oracle Cloud Infrastructure (OCI) cluster with various components including a virtual cloud network (VCN), subnets, Oracle Kubernetes Engine (OKE) cluster, Service Networking (SNET), Network Load Balancer (NLB), and optionally installs ArgoCD. This setup assumes you use cloudflare and you want a wildcard domain dns setup for your cluster with strict https encryption setup with traefik.

Prerequisites

Before you begin, ensure you have the following:

  • Access to an Oracle Cloud Infrastructure (OCI) tenancy.
  • Properly configured authentication with necessary API credentials.
  • Terraform CLI installed locally.

Variables

You need to provide values for the following variables:

  • compartment_ocid: The OCID (Oracle Cloud Identifier) of the compartment where resources will be created.
  • tenancy_ocid: The OCID of your OCI tenancy.
  • user_ocid: The OCID of the user.
  • fingerprint: The fingerprint of the public key uploaded to OCI.
  • private_key_path: The file path to the private key used for API authentication.
  • availability_domain: The availability domain where resources will be provisioned.
  • cluster_name: The name of the OCI cluster.
  • cloudflare_api_email: Email associated with Cloudflare API.
  • cloudflare_api_key: API key for Cloudflare.
  • cloudflare_origin_certificate_pem: PEM-formatted string of Cloudflare origin certificate.
  • cloudflare_origin_certificate_key: Private key associated with Cloudflare origin certificate.
  • my_domain: Your domain name.
  • install_argocd: Boolean flag indicating whether to install ArgoCD.
  • install_cert_manager: Boolean flag indicating whether to install cert-manager.
  • region: OCI region where resources will be created.
  • public_key_path: File path to the SSH public key.
  • node_pool_size: Number of worker nodes in the Kubernetes cluster.
  • environment: Deployment environment, e.g., "prod", "dev", etc.

Modules

VCN (Virtual Cloud Network)

This module creates a VCN with specified configurations.

SNET (Service Networking)

This module configures Service Networking in the VCN.

OKE (Oracle Kubernetes Engine)

This module sets up an OKE cluster within the VCN.

NLB (Network Load Balancer)

This module provisions a traefik2 Network Load Balancer for the cluster.

ArgoCD

This module installs and configures ArgoCD on the cluster, if enabled.

Cert-Manager

This module if enabled installs cert-manager on the cluster and sets up a ClusterIssuer self signed certificate issuer for pod to pod communication.

How to run

Ensure you have set up your Terraform environment and configured the necessary variables. Run terraform init to initialize the directory. Run terraform plan -out tf.plan to see the execution plan. Run terraform apply tf.plan to apply the changes and provision the resources.

About

This repo has 2 kind of cluster setup for kubernetes, one is oci managed (OKE), the other one is the self managed cluster.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published