You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+15-6Lines changed: 15 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,13 +9,8 @@ Contributors to this project must abide by the [Contributor Covenant Code of Con
9
9
The project has the following folders and files:
10
10
11
11
- /: root folder.
12
-
- /docs: Examples for using this module.
13
12
- /examples: Examples for using this module.
14
-
- /files: Static files referenced but not executed by Terraform.
15
-
- /helpers: Helper scripts NOT called by Terraform.
16
13
- /modules: Inline local modules called by this module.
17
-
- /scripts: Scripts for specific tasks on module.
18
-
- /templates: Template files used to be execute by data sources.
19
14
- /main.tf: Main file for this module, contains all the resources to operate the module.
20
15
- /variables.tf: All the variables necessary for run the module.
21
16
- /output.tf: The outputs generate from the module.
@@ -25,6 +20,20 @@ The project has the following folders and files:
25
20
- /CODE_OF_CONDUCT.md: Code of Conduct file.
26
21
- /CONTRIBUTING.md: This file.
27
22
23
+
## Adding a new module
24
+
25
+
To add a new module, fork this repo then add your module under [./modules](./modules/) folder. Please visit our [Terraform Module Development Standards guide](https://github.com/equinix-labs/equinix-labs/blob/main/terraform-module-standards.md) for more info on module development best practices.
26
+
28
27
## Issues and Change Requests
29
28
30
-
Please submit change requests and / or features via [Issues](https://github.com/equinix-labs/equinix-labs/issues).
29
+
Please submit change requests and / or features via [Issues](https://github.com/equinix-labs/terraform-equinix-labs/issues).
30
+
31
+
## Submitting Pull Requests
32
+
33
+
Before starting any work or sending us a pull request, please ensure that:
34
+
35
+
- Your working branch is up-to-date with the latest source on the main branch.
36
+
- Check issues and pull requests (open/merged) to make sure someone else hasn't already addressed that issue.
37
+
- You open an issue to discuss your proposal.
38
+
39
+
To learn how to send us a pull request, please see [Contributing to Projects](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) in the GitHub Docs.
This repository contains a collection of Terraform modules to help automate the deployment and management of either bare metal nodes or a kubernetes cluster environment running on [Equinix Metal](https://deploy.equinix.com/).
8
+
9
+
## Usage
10
+
11
+
This project is intended to be used as a Terraform module. It may also be forked, cloned, or downloaded and modified as needed as the base in your integrations and deployments.
12
+
13
+
Prerequesites:
14
+
15
+
* A valid Equinix Metal organization ID, API token, and/or project ID.
16
+
* HashiCorp Terraform installed. Please see [tfenv](https://github.com/tfutils/tfenv) util.
This project may be deployed into new project(s) or existing project(s). Check out sample deployments in the [examples](./examples/) directory described as follows:
22
+
23
+
| Name | Description |
24
+
|------|---------|
25
+
|[eksa-setup](./examples/eksa-setup/)| Deploys a AWS EKS-A cluster into new projects provisioned for each user described in users.csv |
26
+
|[metal-setup](./examples/metal-setup/)| Deploys a cluster or bare nodes into new projects provisioned for each user described in users.csv |
27
+
3
28
<!-- BEGIN_TF_DOCS -->
4
29
## Requirements
5
30
@@ -27,14 +52,14 @@ No resources.
27
52
28
53
| Name | Description | Type | Default | Required |
| <aname="input_enable_eksa"></a> [enable\_eksa](#input\_enable\_eksa)| Enable EKSA module |`bool`|`false`| no |
34
57
| <aname="input_enable_metal"></a> [enable\_metal](#input\_enable\_metal)| Enable Metal module |`bool`|`false`| no |
35
58
| <aname="input_enable_workshop_setup"></a> [enable\_workshop\_setup](#input\_enable\_workshop\_setup)| Enable Workshop Setup module |`bool`|`false`| no |
59
+
| <aname="input_metal_auth_token"></a> [metal\_auth\_token](#input\_metal\_auth\_token)| Equinix Metal user api token. |`string`| n/a | yes |
36
60
| <aname="input_metal_config"></a> [metal\_config](#input\_metal\_config)| Configuration for Metal module | <pre>object({<br> device_count = number<br> os = string<br> billing_cycle = string<br> cluster_name = string<br> device_type = string<br> })</pre> | <pre>{<br> "billing_cycle": "hourly",<br> "cluster_name": "metal-cluster",<br> "device_count": 3,<br> "device_type": "m3.small.x86",<br> "os": "ubuntu_20_04"<br>}</pre> | no |
37
61
| <aname="input_metal_metro"></a> [metal\_metro](#input\_metal\_metro)| Equinix Metal metro |`string`|`"sv"`| no |
62
+
| <aname="input_metal_organization_id"></a> [metal\_organization\_id](#input\_metal\_organization\_id)| Equinix Metal organization id |`string`| n/a | yes |
38
63
| <aname="input_metal_project_id"></a> [metal\_project\_id](#input\_metal\_project\_id)| Project ID |`string`|`""`| no |
39
64
| <aname="input_metal_tags"></a> [metal\_tags](#input\_metal\_tags)| String list of common tags for Equinix resources |`list(string)`| <pre>[<br> "terraform",<br> "equinix-labs"<br>]</pre> | no |
40
65
@@ -46,3 +71,10 @@ No resources.
46
71
| <aname="output_deploy_metal_outputs"></a> [deploy\_metal\_outputs](#output\_deploy\_metal\_outputs)| Outputs of the Deploy Metal module |
47
72
| <aname="output_project_setup_outputs"></a> [project\_setup\_outputs](#output\_project\_setup\_outputs)| Outputs of the Project Setup module |
48
73
<!-- END_TF_DOCS -->
74
+
## Contributing
75
+
76
+
If you would like to contribute to this module, see [CONTRIBUTING](CONTRIBUTING.md) page for more info.
77
+
78
+
## License
79
+
80
+
Apache License, Version 2.0. See [LICENSE](LICENSE).
Copy file name to clipboardExpand all lines: examples/eksa-setup/README.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,6 @@
1
-
# Terraform Equinix Labs Metal Setup Example
1
+
# Terraform Equinix Labs EKSA Setup Example
2
+
3
+
This is an example of how to utilize the root module to deploy the [invite-from-csv](https://github.com/equinix-labs/terraform-equinix-labs/tree/main/modules/invite-from-csv) module and the [eksa](https://github.com/equinix-labs/terraform-equinix-labs/tree/main/modules/eksa) module. In this example, each user identified in the `users.csv` file (see users.csv.example) will have a project provisioned and an invitation sent by email to join that project. Kubernetes will then be provisioned into each user's project with the configurations set within the [variables.tf](./variables.tf) file.
2
4
3
5
<!-- BEGIN_TF_DOCS -->
4
6
## Requirements
@@ -27,11 +29,11 @@ No resources.
27
29
28
30
| Name | Description | Type | Default | Required |
Copy file name to clipboardExpand all lines: examples/metal-setup/README.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# Terraform Equinix Labs Metal Setup Example
2
2
3
+
This is an example of how to utilize the root module to deploy the [invite-from-csv](https://github.com/equinix-labs/terraform-equinix-labs/tree/main/modules/invite-from-csv) module and the [metal](https://github.com/equinix-labs/terraform-equinix-labs/tree/main/modules/metal) module. In this example, each user identified in the `users.csv` file (see users.csv.example) will have a project provisioned and an invitation sent by email to join that project. Kubernetes will then be provisioned into each user's project with the configurations set within the [variables.tf](./variables.tf) file.
4
+
3
5
<!-- BEGIN_TF_DOCS -->
4
6
## Requirements
5
7
@@ -27,11 +29,11 @@ No resources.
27
29
28
30
| Name | Description | Type | Default | Required |
This module creates a project with collaborator users, sends each user an inviation for each user to join their project, and assigns those users `limited_collaborator` role.
Copy file name to clipboardExpand all lines: modules/eksa/README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# Terraform Equinix Labs EKS-A Module
2
2
3
+
This module utilizes the [metal-eks-anywhere](https://registry.terraform.io/modules/equinix-labs/metal-eks-anywhere/equinix/latest) module to deploy AWS EKS-A.
4
+
3
5
<!-- BEGIN_TF_DOCS -->
4
6
## Requirements
5
7
@@ -25,8 +27,8 @@ No resources.
25
27
26
28
| Name | Description | Type | Default | Required |
Copy file name to clipboardExpand all lines: modules/invite-from-csv/README.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# Terraform Equinix Labs Invite from CSV Module
2
2
3
+
This module reads a given filename `users.csv`, identifies each user entry in the file, then calls [collaborator-project](../collaborator-project/) module to create a project for them.
| <aname="input_metal_organization_id"></a> [metal\_organization\_id](#input\_metal\_organization\_id)| Equinix Metal organization id |`string`| n/a | yes |
34
35
| <aname="input_csv_file"></a> [csv\_file](#input\_csv\_file)| Path to a CSV file containing a list of projects to provision: email,metro,plan. Email address is used as the project name and the collaborator. Metro and plan are used to provision the project. |`string`|`"users.csv"`| no |
36
+
| <aname="input_metal_organization_id"></a> [metal\_organization\_id](#input\_metal\_organization\_id)| Equinix Metal organization id |`string`| n/a | yes |
0 commit comments