terraform-provider-thalassa

command module
v0.25.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

README

Terraform Provider Thalassa Cloud

Official Terraform provider for Thalassa Cloud. Manage infrastructure, Kubernetes clusters, databases, identity, DNS, object storage, KMS keys, and secrets as code.

Documentation

Requirements

  • Terraform >= 1.0
  • A Thalassa Cloud account with API access

Quick start

Add the provider to your Terraform configuration:

terraform {
  required_providers {
    thalassa = {
      source  = "thalassa-cloud/thalassa"
      version = "~> 0.24"
    }
  }
}

provider "thalassa" {
  organisation_id = "my-org"
}

Authenticate with a personal API token:

export THALASSA_API_TOKEN="your-token"

Then run terraform init and terraform apply as usual.

Provider configuration

The provider block supports the following arguments. Each can also be set via environment variable.

Argument Environment variable Description
token THALASSA_API_TOKEN Personal API token
access_token THALASSA_ACCESS_TOKEN Access token (OIDC flow)
client_id THALASSA_CLIENT_ID OIDC client ID
client_secret THALASSA_CLIENT_SECRET OIDC client secret
allow_insecure_oidc THALASSA_ALLOW_INSECURE_OIDC Allow insecure OIDC (default: false)
api THALASSA_API_ENDPOINT API endpoint (default: https://api.thalassa.cloud)
organisation_id THALASSA_ORGANISATION Default organisation ID
project_id THALASSA_PROJECT_ID Default project ID

Many resources accept an optional organisation_id attribute to override the provider default.

Supported services

Infrastructure (IaaS)

Resources

Resource Description
thalassa_vpc Virtual private cloud
thalassa_subnet Subnet within a VPC
thalassa_security_group Security group
thalassa_security_group_ingress_rule Ingress rule
thalassa_security_group_egress_rule Egress rule
thalassa_route_table Route table
thalassa_route_table_route Route within a route table
thalassa_natgateway NAT gateway
thalassa_reserved_ip Reserved public IP
thalassa_vpc_peering_connection VPC peering request
thalassa_vpc_peering_connection_acceptance Accept a VPC peering request
thalassa_vpc_firewall_rule VPC firewall rule
thalassa_virtual_machine_instance Virtual machine
thalassa_block_volume Block storage volume
thalassa_block_volume_attachment Volume attachment
thalassa_snapshot Volume snapshot
thalassa_snapshot_policy Automated snapshot policy
thalassa_cloud_init_template Cloud-init template
thalassa_loadbalancer Load balancer
thalassa_loadbalancer_listener Load balancer listener
thalassa_target_group Target group
thalassa_target_group_attachment Target group attachment

Data sources

Data source Description
thalassa_region Single region
thalassa_regions List of regions
thalassa_machine_image Machine image
thalassa_machine_type Machine type
thalassa_volume_type Block volume type
thalassa_vpc VPC
thalassa_subnet Subnet
thalassa_vpc_default_route_table Default route table for a VPC
thalassa_route_table Route table
thalassa_security_group Security group
thalassa_natgateway NAT gateway
thalassa_loadbalancer Load balancer
thalassa_snapshot Snapshot
thalassa_snapshot_policy Snapshot policy
thalassa_vpc_peering_connection VPC peering connection
thalassa_vpc_peering_connections VPC peering connections
thalassa_vpc_firewall_rule VPC firewall rule
thalassa_vpc_firewall_rules VPC firewall rules
Kubernetes (KaaS)

Resources

Resource Description
thalassa_kubernetes_cluster Kubernetes cluster
thalassa_kubernetes_node_pool Node pool
thalassa_kubernetes_cluster_role Cluster-scoped RBAC role
thalassa_kubernetes_cluster_role_binding Cluster-scoped RBAC role binding

Data sources

Data source Description
thalassa_kubernetes_version Available Kubernetes versions
thalassa_kubernetes_cluster Cluster details
thalassa_kubernetes_cluster_session_token Cluster session token
thalassa_kubernetes_cluster_role Cluster role
Database as a Service (DBaaS)

Resources

Resource Description
thalassa_dbaas_db_cluster Database cluster
thalassa_dbaas_pg_database PostgreSQL database
thalassa_dbaas_pg_roles PostgreSQL roles
thalassa_dbaas_pg_grant PostgreSQL grants
thalassa_dbaas_db_backupschedule Backup schedule

Data sources

Data source Description
thalassa_dbaas_db_cluster Database cluster
thalassa_dbaas_pg_database PostgreSQL database
thalassa_dbaas_pg_roles PostgreSQL roles
thalassa_dbaas_db_backupschedule Backup schedule
thalassa_dbaas_db_backup Backup
Identity & Access Management (IAM)

Resources

Resource Description
thalassa_iam_team Team
thalassa_iam_role IAM role
thalassa_iam_role_rule IAM role rule
thalassa_iam_role_binding Role binding
thalassa_iam_service_account Service account
thalassa_iam_service_account_access_credential Service account credential

Data sources

Data source Description
thalassa_iam_team Team
thalassa_iam_role IAM role
thalassa_iam_service_account Service account
thalassa_iam_organisation_members Organisation members
Key Management Service (KMS)

KMS is in early access. The API and resource schema may change.

Resources

Resource Description
thalassa_kms_key Encryption key

Data sources

Data source Description
thalassa_kms_key KMS key
thalassa_kms_summary KMS availability summary
Secrets Manager

Resources

Resource Description
thalassa_secret Secret
thalassa_secret_version Secret version
thalassa_secret_access_policy Secret access policy
DNS

Resources

Resource Description
thalassa_dns_zone DNS zone
thalassa_dns_record DNS record
thalassa_dns_zone_dnssec DNSSEC configuration
Object Storage

Resources

Resource Description
thalassa_objectstorage_bucket Object storage bucket
thalassa_objectstorage_bucket_lifecycle Bucket lifecycle rules

Data sources

Data source Description
thalassa_objectstorage_bucket Object storage bucket
Thalassa File Service (TFS)

Resources

Resource Description
thalassa_tfs_instance TFS instance

Data sources

Data source Description
thalassa_tfs_instance TFS instance
Organisation

Data sources

Data source Description
thalassa_organisation Organisation

Examples

Runnable examples live under examples/.

Provider configuration
Infrastructure (IaaS)
Networking
Compute & storage
Load balancing
Kubernetes (KaaS)
Database as a Service (DBaaS)
Identity & Access Management (IAM)
Key Management Service (KMS)
Secrets Manager
DNS
Object Storage

Development

Prerequisites
  • Go (see go.mod for the required version)
  • Make
Build and install locally

Build the provider binary and install it into the local Terraform plugin directory:

make install NAMESPACE=thalassa HOSTNAME=thalassa.cloud OS_ARCH=darwin_arm64

Adjust OS_ARCH for your platform (e.g. linux_amd64, darwin_amd64).

Reference the locally installed provider in your Terraform configuration:

terraform {
  required_providers {
    thalassa = {
      source = "thalassa.cloud/thalassa/thalassa"
    }
  }
}
Run tests
make test
Generate documentation

Provider docs in docs/ are generated from schema definitions:

make docs

Contributing

Contributions are welcome. Please open an issue or pull request on GitHub.

When adding or changing resources, run make docs to regenerate the registry documentation and add an example under examples/ where practical.

License

Apache 2.0 License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
dns
iam
kms
tfs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL