Packet renamed (#7653)
* Packet->Equinix Metal rename #6901 Updates throughout to reflect #6901 renaming for Packet to Equinix Metal. * Rename Packet to Equinix Metal throughout the project #6901 Packet is renamed to Equinix Metal in more contexts including documentation links. The Terraform provider used is still the Packet provider. The environment variables and configuration options still refer to the Packet name. Signed-off-by: Marques Johansson <mjohansson@equinix.com> Co-authored-by: Edward Vielmetti <ed@packet.net>pull/8050/head
parent
fd8ae54fa7
commit
3a37a49690
|
@ -5,7 +5,7 @@
|
||||||
If you have questions, check the documentation at [kubespray.io](https://kubespray.io) and join us on the [kubernetes slack](https://kubernetes.slack.com), channel **\#kubespray**.
|
If you have questions, check the documentation at [kubespray.io](https://kubespray.io) and join us on the [kubernetes slack](https://kubernetes.slack.com), channel **\#kubespray**.
|
||||||
You can get your invite [here](http://slack.k8s.io/)
|
You can get your invite [here](http://slack.k8s.io/)
|
||||||
|
|
||||||
- Can be deployed on **[AWS](docs/aws.md), GCE, [Azure](docs/azure.md), [OpenStack](docs/openstack.md), [vSphere](docs/vsphere.md), [Packet](docs/packet.md) (bare metal), Oracle Cloud Infrastructure (Experimental), or Baremetal**
|
- Can be deployed on **[AWS](docs/aws.md), GCE, [Azure](docs/azure.md), [OpenStack](docs/openstack.md), [vSphere](docs/vsphere.md), [Equinix Metal](docs/equinix-metal.md) (bare metal), Oracle Cloud Infrastructure (Experimental), or Baremetal**
|
||||||
- **Highly available** cluster
|
- **Highly available** cluster
|
||||||
- **Composable** (Choice of the network plugin for instance)
|
- **Composable** (Choice of the network plugin for instance)
|
||||||
- Supports most popular **Linux distributions**
|
- Supports most popular **Linux distributions**
|
||||||
|
@ -105,7 +105,7 @@ vagrant up
|
||||||
- [AWS](docs/aws.md)
|
- [AWS](docs/aws.md)
|
||||||
- [Azure](docs/azure.md)
|
- [Azure](docs/azure.md)
|
||||||
- [vSphere](docs/vsphere.md)
|
- [vSphere](docs/vsphere.md)
|
||||||
- [Packet Host](docs/packet.md)
|
- [Equinix Metal](docs/equinix-metal.md)
|
||||||
- [Large deployments](docs/large-deployments.md)
|
- [Large deployments](docs/large-deployments.md)
|
||||||
- [Adding/replacing a node](docs/nodes.md)
|
- [Adding/replacing a node](docs/nodes.md)
|
||||||
- [Upgrades basics](docs/upgrades.md)
|
- [Upgrades basics](docs/upgrades.md)
|
||||||
|
@ -239,6 +239,6 @@ See also [Network checker](docs/netcheck.md).
|
||||||
|
|
||||||
[![Build graphs](https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray/badges/master/pipeline.svg)](https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray/pipelines)
|
[![Build graphs](https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray/badges/master/pipeline.svg)](https://gitlab.com/kargo-ci/kubernetes-sigs-kubespray/pipelines)
|
||||||
|
|
||||||
CI/end-to-end tests sponsored by: [CNCF](https://cncf.io), [Packet](https://www.packet.com/), [OVHcloud](https://www.ovhcloud.com/), [ELASTX](https://elastx.se/).
|
CI/end-to-end tests sponsored by: [CNCF](https://cncf.io), [Equinix Metal](https://metal.equinix.com/), [OVHcloud](https://www.ovhcloud.com/), [ELASTX](https://elastx.se/).
|
||||||
|
|
||||||
See the [test matrix](docs/test_cases.md) for details.
|
See the [test matrix](docs/test_cases.md) for details.
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# Kubernetes on Packet with Terraform
|
# Kubernetes on Equinix Metal with Terraform
|
||||||
|
|
||||||
Provision a Kubernetes cluster with [Terraform](https://www.terraform.io) on
|
Provision a Kubernetes cluster with [Terraform](https://www.terraform.io) on
|
||||||
[Packet](https://www.packet.com).
|
[Equinix Metal](https://metal.equinix.com) ([formerly Packet](https://blog.equinix.com/blog/2020/10/06/equinix-metal-metal-and-more/)).
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
This will install a Kubernetes cluster on Packet bare metal. It should work in all locations and on most server types.
|
This will install a Kubernetes cluster on Equinix Metal. It should work in all locations and on most server types.
|
||||||
|
|
||||||
## Approach
|
## Approach
|
||||||
|
|
||||||
The terraform configuration inspects variables found in
|
The terraform configuration inspects variables found in
|
||||||
[variables.tf](variables.tf) to create resources in your Packet project.
|
[variables.tf](variables.tf) to create resources in your Equinix Metal project.
|
||||||
There is a [python script](../terraform.py) that reads the generated`.tfstate`
|
There is a [python script](../terraform.py) that reads the generated`.tfstate`
|
||||||
file to generate a dynamic inventory that is consumed by [cluster.yml](../../..//cluster.yml)
|
file to generate a dynamic inventory that is consumed by [cluster.yml](../../..//cluster.yml)
|
||||||
to actually install Kubernetes with Kubespray.
|
to actually install Kubernetes with Kubespray.
|
||||||
|
@ -36,12 +36,12 @@ now six total etcd replicas.
|
||||||
|
|
||||||
- [Install Terraform](https://www.terraform.io/intro/getting-started/install.html)
|
- [Install Terraform](https://www.terraform.io/intro/getting-started/install.html)
|
||||||
- Install dependencies: `sudo pip install -r requirements.txt`
|
- Install dependencies: `sudo pip install -r requirements.txt`
|
||||||
- Account with Packet Host
|
- Account with Equinix Metal
|
||||||
- An SSH key pair
|
- An SSH key pair
|
||||||
|
|
||||||
## SSH Key Setup
|
## SSH Key Setup
|
||||||
|
|
||||||
An SSH keypair is required so Ansible can access the newly provisioned nodes (bare metal Packet hosts). By default, the public SSH key defined in cluster.tfvars will be installed in authorized_key on the newly provisioned nodes (~/.ssh/id_rsa.pub). Terraform will upload this public key and then it will be distributed out to all the nodes. If you have already set this public key in Packet (i.e. via the portal), then set the public keyfile name in cluster.tfvars to blank to prevent the duplicate key from being uploaded which will cause an error.
|
An SSH keypair is required so Ansible can access the newly provisioned nodes (Equinix Metal hosts). By default, the public SSH key defined in cluster.tfvars will be installed in authorized_key on the newly provisioned nodes (~/.ssh/id_rsa.pub). Terraform will upload this public key and then it will be distributed out to all the nodes. If you have already set this public key in Equinix Metal (i.e. via the portal), then set the public keyfile name in cluster.tfvars to blank to prevent the duplicate key from being uploaded which will cause an error.
|
||||||
|
|
||||||
If you don't already have a keypair generated (~/.ssh/id_rsa and ~/.ssh/id_rsa.pub), then a new keypair can be generated with the command:
|
If you don't already have a keypair generated (~/.ssh/id_rsa and ~/.ssh/id_rsa.pub), then a new keypair can be generated with the command:
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ ssh-keygen -f ~/.ssh/id_rsa
|
||||||
|
|
||||||
## Terraform
|
## Terraform
|
||||||
|
|
||||||
Terraform will be used to provision all of the Packet resources with base software as appropriate.
|
Terraform will be used to provision all of the Equinix Metal resources with base software as appropriate.
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
|
@ -67,18 +67,18 @@ ln -s ../../contrib/terraform/packet/hosts
|
||||||
|
|
||||||
This will be the base for subsequent Terraform commands.
|
This will be the base for subsequent Terraform commands.
|
||||||
|
|
||||||
#### Packet API access
|
#### Equinix Metal API access
|
||||||
|
|
||||||
Your Packet API key must be available in the `PACKET_AUTH_TOKEN` environment variable.
|
Your Equinix Metal API key must be available in the `PACKET_AUTH_TOKEN` environment variable.
|
||||||
This key is typically stored outside of the code repo since it is considered secret.
|
This key is typically stored outside of the code repo since it is considered secret.
|
||||||
If someone gets this key, they can startup/shutdown hosts in your project!
|
If someone gets this key, they can startup/shutdown hosts in your project!
|
||||||
|
|
||||||
For more information on how to generate an API key or find your project ID, please see
|
For more information on how to generate an API key or find your project ID, please see
|
||||||
[API Integrations](https://support.packet.com/kb/articles/api-integrations)
|
[Accounts Index](https://metal.equinix.com/developers/docs/accounts/).
|
||||||
|
|
||||||
The Packet Project ID associated with the key will be set later in cluster.tfvars.
|
The Equinix Metal Project ID associated with the key will be set later in `cluster.tfvars`.
|
||||||
|
|
||||||
For more information about the API, please see [Packet API](https://www.packet.com/developers/api/)
|
For more information about the API, please see [Equinix Metal API](https://metal.equinix.com/developers/api/).
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ This helps when identifying which hosts are associated with each cluster.
|
||||||
While the defaults in variables.tf will successfully deploy a cluster, it is recommended to set the following values:
|
While the defaults in variables.tf will successfully deploy a cluster, it is recommended to set the following values:
|
||||||
|
|
||||||
- cluster_name = the name of the inventory directory created above as $CLUSTER
|
- cluster_name = the name of the inventory directory created above as $CLUSTER
|
||||||
- packet_project_id = the Packet Project ID associated with the Packet API token above
|
- packet_project_id = the Equinix Metal Project ID associated with the Equinix Metal API token above
|
||||||
|
|
||||||
#### Enable localhost access
|
#### Enable localhost access
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Configure the Packet Provider
|
# Configure the Equinix Metal Provider
|
||||||
provider "packet" {
|
provider "packet" {
|
||||||
version = "~> 2.0"
|
version = "~> 2.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# your Kubernetes cluster name here
|
# your Kubernetes cluster name here
|
||||||
cluster_name = "mycluster"
|
cluster_name = "mycluster"
|
||||||
|
|
||||||
# Your Packet project ID. See https://support.packet.com/kb/articles/api-integrations
|
# Your Equinix Metal project ID. See hhttps://metal.equinix.com/developers/docs/accounts/
|
||||||
packet_project_id = "Example-API-Token"
|
packet_project_id = "Example-API-Token"
|
||||||
|
|
||||||
# The public SSH key to be uploaded into authorized_keys in bare metal Packet nodes provisioned
|
# The public SSH key to be uploaded into authorized_keys in bare metal Equinix Metal nodes provisioned
|
||||||
# leave this value blank if the public key is already setup in the Packet project
|
# leave this value blank if the public key is already setup in the Equinix Metal project
|
||||||
# Terraform will complain if the public key is setup in Packet
|
# Terraform will complain if the public key is setup in Equinix Metal
|
||||||
public_key_path = "~/.ssh/id_rsa.pub"
|
public_key_path = "~/.ssh/id_rsa.pub"
|
||||||
|
|
||||||
# cluster location
|
# cluster location
|
||||||
|
|
|
@ -3,7 +3,7 @@ variable "cluster_name" {
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "packet_project_id" {
|
variable "packet_project_id" {
|
||||||
description = "Your Packet project ID. See https://support.packet.com/kb/articles/api-integrations"
|
description = "Your Equinix Metal project ID. See https://metal.equinix.com/developers/docs/accounts/"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "operating_system" {
|
variable "operating_system" {
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
* [AWS](docs/aws.md)
|
* [AWS](docs/aws.md)
|
||||||
* [Azure](docs/azure.md)
|
* [Azure](docs/azure.md)
|
||||||
* [OpenStack](/docs/openstack.md)
|
* [OpenStack](/docs/openstack.md)
|
||||||
* [Packet](/docs/packet.md)
|
* [Equinix Metal](/docs/equinix-metal.md)
|
||||||
* [vSphere](/docs/vsphere.md)
|
* [vSphere](/docs/vsphere.md)
|
||||||
* Operating Systems
|
* Operating Systems
|
||||||
* [Debian](docs/debian.md)
|
* [Debian](docs/debian.md)
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
# Packet
|
# Equinix Metal
|
||||||
|
|
||||||
Kubespray provides support for bare metal deployments using the [Packet bare metal cloud](http://www.packet.com).
|
Kubespray provides support for bare metal deployments using the [Equinix Metal](http://metal.equinix.com).
|
||||||
Deploying upon bare metal allows Kubernetes to run at locations where an existing public or private cloud might not exist such
|
Deploying upon bare metal allows Kubernetes to run at locations where an existing public or private cloud might not exist such
|
||||||
as cell tower, edge collocated installations. The deployment mechanism used by Kubespray for Packet is similar to that used for
|
as cell tower, edge collocated installations. The deployment mechanism used by Kubespray for Equinix Metal is similar to that used for
|
||||||
AWS and OpenStack clouds (notably using Terraform to deploy the infrastructure). Terraform uses the Packet provider plugin
|
AWS and OpenStack clouds (notably using Terraform to deploy the infrastructure). Terraform uses the Equinix Metal provider plugin
|
||||||
to provision and configure hosts which are then used by the Kubespray Ansible playbooks. The Ansible inventory is generated
|
to provision and configure hosts which are then used by the Kubespray Ansible playbooks. The Ansible inventory is generated
|
||||||
dynamically from the Terraform state file.
|
dynamically from the Terraform state file.
|
||||||
|
|
||||||
## Local Host Configuration
|
## Local Host Configuration
|
||||||
|
|
||||||
To perform this installation, you will need a localhost to run Terraform/Ansible (laptop, VM, etc) and an account with Packet.
|
To perform this installation, you will need a localhost to run Terraform/Ansible (laptop, VM, etc) and an account with Equinix Metal.
|
||||||
In this example, we're using an m1.large CentOS 7 OpenStack VM as the localhost to kickoff the Kubernetes installation.
|
In this example, we're using an m1.large CentOS 7 OpenStack VM as the localhost to kickoff the Kubernetes installation.
|
||||||
You'll need Ansible, Git, and PIP.
|
You'll need Ansible, Git, and PIP.
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ ln -s ../../contrib/terraform/packet/hosts
|
||||||
```
|
```
|
||||||
|
|
||||||
Details about the cluster, such as the name, as well as the authentication tokens and project ID
|
Details about the cluster, such as the name, as well as the authentication tokens and project ID
|
||||||
for Packet need to be defined. To find these values see [Packet API Integration](https://support.packet.com/kb/articles/api-integrations)
|
for Equinix Metal need to be defined. To find these values see [Equinix Metal API Accounts](https://metal.equinix.com/developers/docs/accounts/).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
vi cluster.tfvars
|
vi cluster.tfvars
|
|
@ -14,7 +14,7 @@
|
||||||
- [ ] GCE
|
- [ ] GCE
|
||||||
- [x] AWS (contrib/terraform/aws)
|
- [x] AWS (contrib/terraform/aws)
|
||||||
- [x] OpenStack (contrib/terraform/openstack)
|
- [x] OpenStack (contrib/terraform/openstack)
|
||||||
- [x] Packet
|
- [x] Equinix Metal
|
||||||
- [ ] Digital Ocean
|
- [ ] Digital Ocean
|
||||||
- [ ] Azure
|
- [ ] Azure
|
||||||
- [ ] On AWS autoscaling, multi AZ
|
- [ ] On AWS autoscaling, multi AZ
|
||||||
|
|
Loading…
Reference in New Issue