Code Monkey home page Code Monkey logo

pulumi-equinix-kubernetes-cluster's Introduction

Pulumi Templates for Kubernetes on Equinix Metal with kubeadm via cloud-init

This repository contains two Pulumi templates for deploying Kubernetes clusters using kubeadm via cloud-init. The templates are written using the Pulumi Python SDK and the Pulumi Node.js SDK, respectively.

This repository is Experimental meaning that it's based on untested ideas or techniques and not yet established or finalized or involves a radically new and innovative style! This means that support is best effort (at best!) and we strongly encourage you to NOT use this in production.

Warning

Currently, we're stuffing a self-signed CA into the custom data of your Equinix Metal instances. This is a rather serious security risk and we don't encourage using this pattern just yet until we tighten this up.

Prerequisites

Before you begin, ensure you have the following installed:

Getting Started

To create a new Pulumi project, you should start by selecting the template that aligns with your preferred programming language:

  • Python Template:
    • pulumi new https://github.com/equinix-labs/pulumi-equinix-kubernetes-cluster/tree/main/python
  • Node.js Template:
    • pulumi new https://github.com/equinix-labs/pulumi-equinix-kubernetes-cluster/tree/main/nodejs

Usage

Python Template

  1. Activate the virtual environment: source venv/bin/activate
  2. Install dependencies: pip install -r requirements.txt
  3. Set the required configuration variables. See configuration variables below.
  4. Set metal credentials: export METAL_AUTH_TOKEN=<YOUR_METAL_API_TOKEN>
  5. Deploy the stack: pulumi up
  6. Follow the instructions printed in the console to complete the deployment.

Node.js Template

  1. Set the required configuration variables. See configuration variables below.
  2. Set metal credentials: export METAL_AUTH_TOKEN=<YOUR_METAL_API_TOKEN>
  3. Deploy the stack: pulumi up
  4. Follow the instructions printed in the console to complete the deployment.

Configuration Variables

The following table lists the configuration variables for both templates:

Variable Description Default Value
organization The Equinix Metal organization ID under which you want to create the project. This variable is optional. If you omit the organization input, the project will be created within the default organization associated with your account. N/A
project The Equinix Metal project ID. This variable is optional. If not specified, a new project will be created. N/A
metro The deployment metro code. This variable is optional. See metro codes SV
sshPrivateKeyPath Path to a private key of an existing Equinix Metal SSH Key. This variable is optional. If not specified, a new project Equinix Metal SSH Key will be created. N/A
kubernetesVersion The Kubernetes version. This variable is optional. 1.24.7

To add them you can use pulumi config set command:

pulumi config set metalOrg <METAL_ORG_ID>

Customization

Feel free to customize the templates according to your specific requirements. You can modify the cloud-init scripts, adjust the cluster configuration, or add additional resources.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request.

License

This project is licensed under the Apache 2.0.

pulumi-equinix-kubernetes-cluster's People

Contributors

ocobles avatar rawkode avatar cprivitere avatar

Stargazers

Niranjan Anandkumar avatar Frank Perrakis avatar Avenbreaks avatar  avatar Yiran Zhou avatar R avatar  avatar  avatar Jamie avatar Marques Johansson avatar

Watchers

Edward Vielmetti avatar Marques Johansson avatar Charles Treatman avatar Jamie avatar JBelliston avatar M. D. Truong avatar Thom Crowe avatar Jacob Smith avatar Tony Perez avatar  avatar  avatar

pulumi-equinix-kubernetes-cluster's Issues

packet-labs/kubernetes-cloud-init will be removed!

This repository will be deleted by November 1, 2021.

While the concepts and instruction provided in this repository may be helpful to some users and carry some relevance, this repository has seen few recent changes. Packet became Equinix Metal over a year ago.

This repository requires maintenance and owners to ensure that the documentation is up to date and relevant. A repository like this one may need to update the version of dependencies and tools for safe consumption.

If you are affected by this deletion, please comment by the November 1, 2021 date.

Alternatives:

  • Repo is Archived. This is not preferable, it is intended that the 'packet-labs' GH org is vacated.
  • Repo is moved to github.com/equinix-labs. This is only preferably after Packet branding and tooling has been updated to Equinix Metal.

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.