Git Product home page Git Product logo

terraform-digitalocean-doks's Introduction

terraform-digitalocean-doks

Terraform Registry

Terraform module which configure a Kubernetes cluster (DOKS) on Digital Ocean

Documentation

Requirements

Name Version
terraform >= 1.0.0
digitalocean >= 2.10.0

Providers

Name Version
digitalocean >= 2.10.0

Modules

No modules.

Resources

Name Type
digitalocean_kubernetes_cluster.k8s resource
digitalocean_kubernetes_node_pool.node_pools resource
digitalocean_kubernetes_versions.k8s data source
digitalocean_sizes.k8s data source

Inputs

Name Description Type Default Required
auto_scale Enable cluster autoscaling bool n/a yes
auto_upgrade Whether the cluster will be automatically upgraded bool n/a yes
cluster_name Cluster name string n/a yes
kubernetes_version The Kubernetes version string n/a yes
maintenance_policy_day The day of the maintenance window policy string n/a yes
maintenance_policy_start_time The start time in UTC of the maintenance window policy in 24-hour clock format / HH:MM notation string n/a yes
max_nodes Autoscaling maximum node capacity string 5 no
min_nodes Autoscaling Minimum node capacity string 1 no
node_count The number of Droplet instances in the node pool. number n/a yes
node_labels List of Kubernetes labels to apply to the nodes map(any)
{
"service": "kubernetes"
}
no
node_pools Addons node pools
map(object({
size = string
node_count = number
auto_scale = bool
min_nodes = number
max_nodes = number
node_tags = list(string)
node_labels = map(string)
}))
{} no
node_tags The list of instance tags applied to all nodes. list(any)
[
"kubernetes"
]
no
region The location of the cluster string n/a yes
size The slug identifier for the type of Droplet to be used as workers in the node pool. string n/a yes
surge_upgrade Enable/disable surge upgrades for a cluster bool false no
tags The list of instance tags applied to the cluster. list(any)
[
"kubernetes"
]
no
vpc_uuid The ID of the VPC where the Kubernetes cluster will be located string "" no

Outputs

No outputs.

terraform-digitalocean-doks's People

Contributors

mend-bolt-for-github[bot] avatar nlamirault avatar renovate-bot avatar renovate[bot] avatar v0112358 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

terraform-digitalocean-doks's Issues

Variable node_count overrides autoscaling

Hey there!

Thank you very much for your module, I'm using it here and it works well.

I'm not sure if you could call it a bug but based on my experience with the module I have discovered that Terraform resets the number of worker nodes to node_count when a subsequent run is triggered. This causes unnecessary scalings as the applications deployed on the cluster will immediately trigger a new scale up after Terraform has scaled down.

I've tried to fix this by setting the node_count to 0 when auto_scaling is enabled, but it didn't work as the node_count needs to be at least 1. Seems like the only way to really "fix" this is to remove the node_count attribute in cluster.tf. A dirty workaround I could imagine would be to have two cluster resources and use count to enable and disable one of them based on the auto_scaling var.

Any inputs on that? Would it be an option to remove the node_count var?

Renovate Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/draft-labels.yml
  • jinmayamashita/ready-for-review 1.0.0
.github/workflows/prow-labels.yml
.github/workflows/prow-lgtm-merge.yml
  • jpmcb/prow-github-actions v1.1.3
.github/workflows/prow-lgtm-pull.yml
  • jpmcb/prow-github-actions v1.1.3
.github/workflows/prow.yml
  • jpmcb/prow-github-actions v1.1.3
.github/workflows/rebase.yml
  • actions/checkout v3
  • cirrus-actions/rebase 1.8
.github/workflows/release-drafter.yml
  • release-drafter/release-drafter v5
.github/workflows/renovate.yml
  • actions/checkout v3
  • peter-evans/create-pull-request v4
.github/workflows/size.yaml
  • actions/checkout v3
  • actions-ecosystem/action-size v2
  • actions-ecosystem/action-remove-labels v1
  • actions-ecosystem/action-add-labels v1
.github/workflows/tflint.yml
  • actions/checkout v3
.github/workflows/tfsec.yml
  • actions/checkout v3
terraform
main.tf
  • digitalocean >= 2.10.0
  • hashicorp/terraform >= 1.0.0
terraform-version
.terraform-version

  • Check this box to trigger a request for Renovate to run again on this repository

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.