Our great sponsors
-
terraform
Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Var Required Desc region yes set the correct OCI region based on your needs availability_domain yes Set the correct availability domain. See how to find the availability domain compartment_ocid yes Set the correct compartment ocid. See how to find the compartment ocid cluster_name yes the name of your K3s cluster. Default: k3s-cluster k3s_token yes The token of your K3s cluster. How to generate a random token my_public_ip_cidr yes your public ip in cidr format (Example: 195.102.xxx.xxx/32) environment yes Current work environment (Example: staging/dev/prod). This value is used for tag all the deployed resources compute_shape no Compute shape to use. Default VM.Standard.A1.Flex. NOTE Is mandatory to use this compute shape for provision 4 always free VMs os_image_id no Image id to use. Default image: Canonical-Ubuntu-20.04-aarch64-2022.01.18-0. See how to list all available OS images oci_core_vcn_cidr no VCN CIDR. Default: oci_core_vcn_cidr oci_core_subnet_cidr10 no First subnet CIDR. Default: 10.0.0.0/24 oci_core_subnet_cidr11 no Second subnet CIDR. Default: 10.0.1.0/24 oci_identity_dynamic_group_name no Dynamic group name. This dynamic group will contains all the instances of this specific compartment. Default: Compute_Dynamic_Group oci_identity_policy_name no Policy name. This policy will allow dynamic group 'oci_identity_dynamic_group_name' to read OCI api without auth. Default: Compute_To_Oci_Api_Policy kube_api_port no Kube api default port Default: 6443 public_lb_shape no LB shape for the public LB. Default: flexible. NOTE is mandatory to use this kind of shape to provision two always free LB (public and private) http_lb_port no http port used by the public LB. Default: 80 https_lb_port no http port used by the public LB. Default: 443 k3s_server_pool_size no Number of k3s servers deployed. Default 2 k3s_worker_pool_size no Number of k3s workers deployed. Default 2 install_longhorn no Boolean value, install longhorn "Cloud native distributed block storage for Kubernetes". Default: true longhorn_release no Longhorn release. Default: v1.2.3 unique_tag_key no Unique tag name used for tagging all the deployed resources. Default: k3s-provisioner unique_tag_value no Unique value used with unique_tag_key. Default: https://github.com/garutilorenzo/k3s-oci-cluster PATH_TO_PUBLIC_KEY no Path to your public ssh key (Default: "~/.ssh/id_rsa.pub) PATH_TO_PRIVATE_KEY no Path to your private ssh key (Default: "~/.ssh/id_rsa)
Terraform - Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services. Terraform codifies cloud APIs into declarative configuration files.
K3s will automatically install Traefik. Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It simplifies networking complexity while designing, deploying, and running applications. More details here
This setup will automatically install longhorn. Longhorn is a Cloud native distributed block storage for Kubernetes. To disable the longhorn deployment set install_longhorn variable to false
Related posts
- Apollo Backend just made public, "The goal of making the code for this repo available is to show that despite statements otherwise by Reddit...
- Retrieve token data from Kubernetes Service Account in Terraform
- You Broke Reddit: The Pi-Day Outage
- Why is the principle stating that "interfaces should belong to the package that uses values of the interface type, not the package that implements those values" sometimes violated?
- Terraform for dbt Users