Giter Site home page Giter Site logo

equinix-labs / terraform-equinix-kubernetes-addons Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 4.0 212 KB

Collection of Terraform modules to configure and manage Kubernetes clusters on Equinix Metal servers

Home Page: https://registry.terraform.io/modules/equinix-labs/kubernetes-addons/equinix/latest

License: Apache License 2.0

HCL 75.12% Smarty 10.09% Shell 14.79%

terraform-equinix-kubernetes-addons's Introduction

Equinix Labs

terraform-equinix-kubernetes-addons's People

Contributors

cprivitere avatar ctreatma avatar displague avatar github-actions[bot] avatar ocobles avatar renovate[bot] avatar skeerthivasan avatar vasubabu avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

terraform-equinix-kubernetes-addons's Issues

Auto generate example readme.mds

For some reason the terraform-doc code errors out when set to recursive. This prevents it from auto generating readme.md's for the examples.

modify modules using Remote-Exec to use the standard method in all modules

While the Metallb and CPEM addons perform kubectl command execution from a remote server, the other modules use local-exec. This can cause confusion among users, especially in configurations where different addons are enabled. While we can't offer both options for all modules, I think it's better to just leave local execution, which could even be wrapped in the future with another module to execute everything remotely.

This will generally require two options:

  • users to have kubectl installed locally, as well as having the kubeconfig file locally.
  • users to have terraform installed in the remote server, and clone an execute the terraform template from there

Investigate using the `kubernetes` (or similar) provider for add-ons

As a first pass, we are using null_resource with remote-exec to install & configure Kubernetes add-ons. We should consider using the kubernetes provider (or kubectl, or...) instead in order to provide a more terraform-native experience for add-ons.
With null_resource over SSH, we need to be more explicit about the resource lifecycle, rather than letting the provider determine whether an add-on needs to be updated or deleted.

It's possible that we would run into problems trying to adopt the kubernetes provider, based on Hashicorp's recommendations for the kubernetes provider:

The most reliable way to configure the Kubernetes provider is to ensure that the cluster itself and the Kubernetes provider resources can be managed with separate apply operations. Data-sources can be used to convey values between the two stages as needed.

However, AWS EKS Blueprints use the helm and kubernetes providers successfully without splitting the cluster resources and Kubernetes provider resources into separate root modules: https://github.com/aws-ia/terraform-aws-eks-blueprints/tree/main/examples/complete-kubernetes-addons

Dependency 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/documentation.yaml
  • actions/checkout v3
  • terraform-docs/gh-actions v1.0.0
  • peter-evans/create-pull-request v5
.github/workflows/pre-commit.yaml
  • actions/checkout v3
  • actions/cache v3
terraform
main.tf
modules/cloud_provider_equinix_metal/versions.tf
  • cloudinit >= 2.2.0
  • null >= 3.1
  • hashicorp/terraform >= 1.0.0
modules/kube-vip/versions.tf
  • http >=3.1.0
  • kubectl >= 1.7.0
  • hashicorp/terraform >= 1.0.0
modules/longhorn/main.tf
modules/longhorn/versions.tf
  • equinix >= 1.11.1
  • helm >= 2.8.0
  • hashicorp/terraform >= 1.0.0
modules/metallb/versions.tf
  • equinix >= 1.11.1
  • null >= 3.2.1
  • hashicorp/terraform >= 1.0.0
modules/portworx-data-services/main.tf
modules/portworx-data-services/versions.tf
  • equinix >= 1.11.1
  • external >=2.0
  • helm >=2.8.0
  • http >=3.1.0
  • kubernetes >=2.17.0
  • local >= 2.0
  • null >=3.0
  • template >= 2.0
  • hashicorp/terraform >= 1.0.0
modules/portworx/versions.tf
  • equinix >= 1.11.1
  • external >=2.0
  • local >= 2.0
  • null >=3.0
  • template >= 2.0
  • hashicorp/terraform >= 1.0.0
modules/rook/main.tf
modules/rook/versions.tf
  • equinix >= 1.11.1
  • helm >= 2.8.0
  • hashicorp/terraform >= 1.0.0
versions.tf
  • equinix ~> 1.14
  • helm >= 2.8.0
  • kubernetes >=2.17.0
  • hashicorp/terraform >= 1.0.0

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

Add storage (CSI) providers

CSI Providers are a common add-on for Equinix Metal Kubernetes clusters. https://deploy.equinix.com/developers/guides/kubernetes-intro/#kubernetes-storage

There are a number of eligible providers. This issue is a stub for offering any provider. One avenue to accomplish this could be to offer an abstract storage module enabling argument, as in https://github.com/equinix/terraform-metal-anthos-on-baremetal/tree/main/modules/storage.

Kubernetes Modules should then adopt this addon module, for example:

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.