An open API service indexing awesome lists of open source software.

https://github.com/spectrocloud/terraform-spectrocloud-modules


https://github.com/spectrocloud/terraform-spectrocloud-modules

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

          

# Spectrocloud Terraform Modules. ####

Spectro Cloud module is a container for all Palette resources that are used together.
You can use modules to create lightweight abstractions, using yaml files translated into Terraform.

## Disclaimer

This repository serves as a demonstration for utilizing the SpectroCloud Terraform Provider to create resources using YAML as a source.
SpectroCloud does not actively maintain or provide modules support for all active Spectrocloud Terraform Provider releases/features.

This repository can be forked and customized to meet your specific requirements.

# Module structure. ####
Create yaml files such as: ```cluster.yaml```, ```profile.yaml```, ```main.tf``` and others describing the cloud resources and module configuration. [More examples could be found here](https://github.com/spectrocloud/terraform-spectrocloud-modules/tree/main/examples).

### The list of Spectro Cloud module supported cloud types are:
* EKS
* AKS
* VMware
* Edge

### Additional Spectro Cloud resources supported:
* cloud accounts for supported cloud types
* alerts
* cluster profiles
* addon deployments
* appliances
* backup storage locations
* registries
* projects
* teams
* macros
* application profiles

#### 1. Users can provision multiple resources from different modules and define and set as many parameters as required with unique names (duplicate names are not recommended).


module "SpectroAcc" {

accounts = {
for k in fileset("config/account", "account-*.yaml") :
trimsuffix(k, ".yaml") => yamldecode(templatefile("config/account/${k}", local.accounts_params))
}
}

module "SpectroOrg" {

profiles = {
for k in fileset("config/profile", "profile-*.yaml") :
trimsuffix(k, ".yaml") => yamldecode(templatefile("config/profile/${k}", local.profile_params))
}
}

module "SpectroProject" {

clusters = {
for k in fileset("config/cluster", "cluster-*.yaml") :
trimsuffix(k, ".yaml") => yamldecode(templatefile("config/cluster/${k}", local.project_params))
}


1. Provision cloud accounts:

terraform apply -target module.SpectroAcc.spectrocloud_cloudaccount_aws.account

2. Provision profiles:

terraform apply -target module.SpectroOrg.spectrocloud_cluster_profile.profile_resource

3. Provision clusters:

terraform apply -target module.SpectroProject.spectrocloud_cluster_eks.this

4. Provision addon deployments:

terraform apply -target module.SpectroProject.spectrocloud_addon_deployment.this

#### 2. Use reverse commands order to de-provision resources:


1. terraform destroy -target module.SpectroProject.spectrocloud_addon_deployment.this
2. terraform destroy -target module.SpectroProject.spectrocloud_cluster_eks.this
3. terraform destroy -target module.SpectroOrg.spectrocloud_cluster_profile.profile_resource
4. terraform destroy -target module.SpectroAcc.spectrocloud_cloudaccount_aws.account

# Module Resources & Requirements

## Requirements

| Name | Version |
|------|---------|
| [spectrocloud](#requirement\_spectrocloud) | ~> 0.11.0 |

## Providers

| Name | Version |
|------|---------|
| [spectrocloud](#provider\_spectrocloud) | ~> 0.11.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [spectrocloud_addon_deployment.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/addon_deployment) | resource |
| [spectrocloud_alert.cluster_health_alerts](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/alert) | resource |
| [spectrocloud_appliance.appliance](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/appliance) | resource |
| [spectrocloud_application.app_deployment](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/application) | resource |
| [spectrocloud_application_profile.app_profile](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/application_profile) | resource |
| [spectrocloud_backup_storage_location.bsl](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/backup_storage_location) | resource |
| [spectrocloud_cloudaccount_aws.account](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cloudaccount_aws) | resource |
| [spectrocloud_cloudaccount_tencent.account](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cloudaccount_tencent) | resource |
| [spectrocloud_cluster_edge.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_edge) | resource |
| [spectrocloud_cluster_edge_vsphere.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_edge_vsphere) | resource |
| [spectrocloud_cluster_eks.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_eks) | resource |
| [spectrocloud_cluster_group.clustergroup](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_group) | resource |
| [spectrocloud_cluster_libvirt.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_libvirt) | resource |
| [spectrocloud_cluster_profile.profile_resource](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_profile) | resource |
| [spectrocloud_cluster_profile_import.import](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_profile_import) | resource |
| [spectrocloud_cluster_tke.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_tke) | resource |
| [spectrocloud_cluster_vsphere.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_vsphere) | resource |
| [spectrocloud_macro.macro](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/macro) | resource |
| [spectrocloud_project.project](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/project) | resource |
| [spectrocloud_registry_helm.helm_registry](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/registry_helm) | resource |
| [spectrocloud_registry_oci.oci_registry](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/registry_oci) | resource |
| [spectrocloud_team.project_team](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/team) | resource |
| [spectrocloud_virtual_cluster.virtual_cluster](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/virtual_cluster) | resource |
| [spectrocloud_appliance.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/appliance) | data source |
| [spectrocloud_application_profile.app_profile](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/application_profile) | data source |
| [spectrocloud_backup_storage_location.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/backup_storage_location) | data source |
| [spectrocloud_cloudaccount_aws.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cloudaccount_aws) | data source |
| [spectrocloud_cloudaccount_tencent.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cloudaccount_tencent) | data source |
| [spectrocloud_cloudaccount_vsphere.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cloudaccount_vsphere) | data source |
| [spectrocloud_cluster.cluster_gps](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster) | data source |
| [spectrocloud_cluster.clusters](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster) | data source |
| [spectrocloud_cluster.deployment_cluster](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster) | data source |
| [spectrocloud_cluster.host_cluster](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster) | data source |
| [spectrocloud_cluster_group.cluster_group](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster_group) | data source |
| [spectrocloud_cluster_group.vir_cluster_group](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster_group) | data source |
| [spectrocloud_cluster_profile.this](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/cluster_profile) | data source |
| [spectrocloud_pack.data_packs](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/pack) | data source |
| [spectrocloud_pack_simple.app_source_tiers](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/pack_simple) | data source |
| [spectrocloud_registry.all_registries](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/registry) | data source |
| [spectrocloud_registry.app_registries](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/registry) | data source |
| [spectrocloud_role.data_roles](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/data-sources/role) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [accounts](#input\_accounts) | n/a | `map(any)` | `{}` | no |
| [alerts](#input\_alerts) | n/a | `any` | `{}` | no |
| [appliances](#input\_appliances) | n/a | `map(any)` | `{}` | no |
| [application\_deployments](#input\_application\_deployments) | n/a | `any` | `{}` | no |
| [application\_profiles](#input\_application\_profiles) | n/a | `any` | `{}` | no |
| [bsls](#input\_bsls) | n/a | `map(any)` | `{}` | no |
| [cluster\_groups](#input\_cluster\_groups) | n/a | `any` | `{}` | no |
| [cluster\_profile\_imports](#input\_cluster\_profile\_imports) | n/a | `list(string)` | `[]` | no |
| [cluster\_profile\_imports\_context](#input\_cluster\_profile\_imports\_context) | n/a | `string` | `"project"` | no |
| [clusters](#input\_clusters) | n/a | `map` | `{}` | no |
| [macros](#input\_macros) | n/a | `map(any)` | `{}` | no |
| [profiles](#input\_profiles) | n/a | `map` | `{}` | no |
| [projects](#input\_projects) | n/a | `map(any)` | `{}` | no |
| [registries](#input\_registries) | n/a | `map(any)` | `{}` | no |
| [teams](#input\_teams) | n/a | `map(any)` | `{}` | no |
| [virtual\_clusters](#input\_virtual\_clusters) | n/a | `any` | `{}` | no |

## Outputs

| Name | Description |
|------|-------------|
| [debug](#output\_debug) | n/a |
| [debug\_addon\_pack\_manifests](#output\_debug\_addon\_pack\_manifests) | n/a |
| [debug\_aws\_accounts](#output\_debug\_aws\_accounts) | n/a |
| [debug\_cluster\_infra\_profiles\_map](#output\_debug\_cluster\_infra\_profiles\_map) | n/a |
| [debug\_cluster\_profile\_pack\_map](#output\_debug\_cluster\_profile\_pack\_map) | not addon specific |
| [debug\_cluster\_system\_profiles\_map](#output\_debug\_cluster\_system\_profiles\_map) | n/a |
| [debug\_libvirt\_system](#output\_debug\_libvirt\_system) | n/a |
| [debug\_system\_pack\_manifests](#output\_debug\_system\_pack\_manifests) | n/a |