Skip to content

Latest commit

 

History

History
189 lines (141 loc) · 16.1 KB

File metadata and controls

189 lines (141 loc) · 16.1 KB
title excerpt updated
Using Terraform with OVHcloud
Find out about useful resources in order to use Terraform with OVHcloud
2023-09-27

Introduction

Terraform is an open-source infrastructure as code (IaC) tool created by Hashicorp in 2014, written in Go. It aims at building, changing and version controlling your infrastructure. You can define and provision your infrastructure by writing the definition of your resources in Hashicorp Configuration Language (HCL).

It is widely used and you can also use it with OVHcloud.

At the heart of the Terraform product is the concept of provider which is a plugin that enables interaction with an API.

Providers

Based on your automation needs at OVHcloud, you have to pick one or more of the following Terraform providers:

Mapping OVHcloud GUI to Terraform providers & resources

OVHcloud console GUI (also called "Control Panel" or "Manager") hides some background API complexity to the user. From a GUI concept, it may be difficult to find the correct provider and the associated resource. The tables below are here to help.

[!primary]

  • The following categories are based on the Control Panel 'New version (Beta)' from December 2022.
  • If no resource is available but a Terraform data source is, this is mentioned in the table with "[data source]".
  • When multiple resources are available for one GUI concept, only the main resource is provided in this list.

Bare Metal Cloud

Control Panel concept Terraform provider  Resource or Data Source
Dedicated Server ovh [data source] ovh_dedicated_server
Virtual Private Server ovh ovh_vps
HA-NAS ovh -[data source] ovh_dedicated_nasha
- ovh_dedicated_nasha_partition
Enterprise File Storage  ovh not available
Cloud Disk array ovh [data source] ovh_dedicated_ceph
Veam Cloud Connect not available
Logs Data Platform  ovh partially available :
- ovh_dbaas_logs_graylog_output_stream
- ovh_dbaas_logs_input
- [data source] ovh_dbaas_logs_input_engine

Hosted Private Cloud

Control Panel concept Terraform provider  Resource or Data Source
VMware - not available for ordering
- vsphere for management
see provider
Nutanix - not available for ordering
- nutanix for management
see provider

Public Cloud

Compute

Control Panel concept Terraform provider(s)  Resource or Data Source
Instances (VM & Metal) openstack  openstack_compute_instance_v2

Storage and Backup

Control Panel concept Terraform provider(s)  Resource or Data Source
Block Storage openstack  blockstorage_volume_v3
Object Storage (Swift)  openstack  objectstorage_object_v1
 Object Storage Hashicorp aws  aws_s3_bucket
Object Storage users ovh ovh_cloud_project_user with objectstore_operator role
Cloud Archive openstack objectstorage_object_v1 with storage_policy set to “PCA” in order to create an “archive” swift container
 Cold Archive Hashicorp aws  aws_s3_bucket
Databases  ovh cloud_project_database and cloud_project_database_database
Volume Snapshot openstack  openstack_blockstorage_snapshot_v3
Volume Backup openstack [data source] openstack_blockstorage_volume_v3
Instance Backup openstack openstack_images_image_v2

Network

Control Panel concept Terraform provider(s)  Resource or Data Source
Private network (vRack)  ovh & openstack - ovh_vrack_cloudproject
- openstack_networking_network_v2
- openstack_networking_subnet_v2
- ovh_cloud_project_network_private
- ovh_cloud_project_network_private_subnet
Load Balancer openstack openstack_lb_loadbalancer_v2
Public IPs - Floating IPs openstack openstack_networking_floatingip_v2
Public IPs - Additional IPs ovh ovh_ip_service
Gateway openstack openstack_networking_router_v2

Containers & Orchestration

Control Panel concept Terraform provider(s)  Resource or Data Source
Managed Kubernetes Service - Cluster operations ovh ovh_cloud_project_kube
Managed Kubernetes Service - Application deployment operations Hashicorp Kubernetes kubernetes_namespace kubernetes_deployment
Kubernetes Load Balancer Hashicorp kubernetes kubernetes_service as described in this tutorial
Managed Private Registry ovh ovh_cloud_project_containerregistry
ovh_cloud_project_containerregistry_user
Workflow Management ovh cloud_project_workflow_backup

AI & Machine Learning

Control Panel concept Terraform provider(s)  Resource or Data Source
AI Notebooks  not available but ovhai CLI can help for automation
AI Training  not available but ovhai CLI can help for automation
 AI Deploy  not available but ovhai CLI can help for automation

Data & Analytics

Control Panel concept Terraform provider(s)  Resource or Data Source
Data Processing  not available
Logs Data Platform  ovh partially available :
- ovh_dbaas_logs_graylog_output_stream
- ovh_dbaas_logs_input
- ovh_dbaas_logs_cluster
- [data source] ovh_dbaas_logs_input_engine

Settings

Control Panel concept Terraform provider(s)  Resource or Data Source
 Users & Roles ovh ovh_cloud_project_user
Quotas & Regions  not available
SSH keys  ovh & openstack  ovh_me_ssh_key. If you use the openstack provider for compute, you will need to use openstack_compute_keypair_v2 to manage the ssh keys
Project Settings ovh  ovh_cloud_project

Web Cloud

Domain Names

Control Panel concept Terraform provider(s)  Resource or Data Source
Domain name ovh ovh_domain_zone
DNS Zone record ovh ovh_domain_zone_record
DNS Server  not available
Redirection ovh  ovh_domain_zone_redirection
DynHost  not available
GLUE Record  not available

Web

Control Panel concept Terraform provider(s)  Resource or Data Source
Hosting plan   not available
Database  ovh ovh_hosting_privatedatabase
Emails not available
 Microsoft  not available

Network

Control Panel concept Terraform provider(s)  Resource or Data Source
vRack private network  ovh  ovh_vrack
Public IP Adresses - Additional IPs  ovh ovh_ip_service
OVH Cloud Connect  not available
Load Balancer ovh ovh_iploadbalancing
CDN Infrastructure not available

Telecom

This universe is currently not supported by Terraform providers

My account

My profile

Control Panel concept Terraform provider(s)  Resource or Data Source
Profile  ovh [data source] ovh_me
Payment method ovh - [data source] ovh_me_paymentmean_bankaccount
- [data source] ovh_me_paymentmean_creditcard

Identity and Access Management (IAM)

Control Panel concept Terraform provider(s)  Resource or Data Source
Policies ovh ovh_iam_policy
Identities ovh - ovh_me_identity_user
- ovh_me_identity_group
Resource groups not available

Resources

Terraform with OVHcloud examples

OVH Provider