first commit
This commit is contained in:
101
main.tf
Normal file
101
main.tf
Normal file
@@ -0,0 +1,101 @@
|
||||
terraform {
|
||||
required_version = ">= 0.14.0"
|
||||
required_providers {
|
||||
openstack = {
|
||||
source = "terraform-provider-openstack/openstack"
|
||||
version = "~> 1.42.0"
|
||||
}
|
||||
ovh = {
|
||||
source = "ovh/ovh"
|
||||
version = "~> 0.13.0"
|
||||
}
|
||||
sops = {
|
||||
source = "carlpett/sops"
|
||||
version = "~> 0.6.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
locals {
|
||||
region = "GRA7"
|
||||
auht_url = "https://auth.cloud.ovh.net/v2.0/"
|
||||
}
|
||||
|
||||
data "sops_file" "openstack-secret" {
|
||||
source_file = "data/openstack.yml"
|
||||
}
|
||||
|
||||
data "sops_file" "ovh-secret" {
|
||||
source_file = "data/ovh.yml"
|
||||
}
|
||||
|
||||
locals {
|
||||
openstack_creds = yamldecode(data.sops_file.openstack-secret.raw)
|
||||
}
|
||||
|
||||
locals {
|
||||
ovh_creds = yamldecode(data.sops_file.ovh-secret.raw)
|
||||
}
|
||||
|
||||
provider "ovh" {
|
||||
endpoint = "ovh-eu"
|
||||
application_key = local.ovh_creds.app_key
|
||||
application_secret = local.ovh_creds.app_secret
|
||||
consumer_key = local.ovh_creds.consumer_key
|
||||
}
|
||||
provider "sops" {
|
||||
|
||||
}
|
||||
provider "openstack" {
|
||||
region = local.region
|
||||
tenant_id = local.openstack_creds.tenant_id
|
||||
password = local.openstack_creds.password
|
||||
user_name = local.openstack_creds.user
|
||||
auth_url = local.auht_url
|
||||
}
|
||||
|
||||
resource "openstack_compute_keypair_v2" "my-keypair" {
|
||||
name = "my-keypair"
|
||||
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBo80Dw18iUKeFuOFmq8CRCqCzPkk+25gErNGPCduBMrNY4vNGwk16FU6Bs4TqAF00tI7+YOZLc70qP8NKwWlUuW2hqnLMot1beztDbCTd9hbQ4J8rQ8Jz6NAhKGB8TqGBRJOAr6kmB06xZaL2j8AlQK8LEBndxAeQwCcUO5oEbQmuCUybtxuu4YZzHiNK8G0T6Faa6wWwBmN0SUGKSLKWB6AxpuSipnDgYSiHACgSSgq0kISLuBq/Jpe8l+ISwtM4vlDiivECNciNu/ZFVXmGANVTCskEr2Jzjz3lJBGFFOdd+yAGC8OY2X4onkAKkVPf9TDySOj95G/+bkTVaRa4wei0bzGWm88gFdYhaG9kbQVBj7DrNbCcqC7+nOzvR+9CzZ1opSUb5G4Uc6thCzhMycjPrUu5zkOC254IdmKWmUXMTLuCLTDAKJougYKwIhDS2+ZuIaMMUpB2NwU/2eV7+TF2HVQfToCe7Q1FEH1KKOBHlQsqwbBtAmPLwWwxdpSyVeWXbz1BgvuyGa6GKoKo4DeU3MUCV+WN2A0rLmwY7kgqJzUb7GAagj3hxwdPg0MgEPSEACInCw7zaa3TEZVDAuVgm3Oxt3FYeN+CcRIQsxJQefwy+/M6GI0MvXV6PDxGxmgwEoqbM6Bs7Jk17DNYOhgTVKgyeBPbATKPbjDPoQ=="
|
||||
}
|
||||
|
||||
resource "openstack_compute_instance_v2" "test" {
|
||||
name = "test"
|
||||
key_pair = openstack_compute_keypair_v2.my-keypair.id
|
||||
|
||||
network {
|
||||
name = "Ext-Net"
|
||||
}
|
||||
network {
|
||||
name = ovh_cloud_project_network_private.private-network.name
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
resource "ovh_cloud_project_network_private" "private-network" {
|
||||
service_name = local.openstack_creds.tenant_id
|
||||
# With OS_TENANT_ID your tenant id's project
|
||||
name = "private_network"
|
||||
# Network's name
|
||||
regions = [local.region]
|
||||
# With OS_REGION_NAME the OS_REGION_NAME environment variable
|
||||
vlan_id = 168
|
||||
# vRack identifier
|
||||
}
|
||||
|
||||
resource "ovh_cloud_project_network_private_subnet" "subnet" {
|
||||
service_name = local.openstack_creds.tenant_id
|
||||
# With OS_TENANT_ID your tenant id's project
|
||||
# Get the id of the resource ovh_publiccloud_private_network named network
|
||||
network_id = ovh_cloud_project_network_private.private-network.id
|
||||
start = "192.168.168.100"
|
||||
# First IP for the subnet
|
||||
end = "192.168.168.200"
|
||||
# Last IP for the subnet
|
||||
network = "192.168.168.0/24"
|
||||
# Global network
|
||||
dhcp = true
|
||||
# Active the DHCP
|
||||
region = local.region
|
||||
# With the OS_REGION_NAME the OS_REGION_NAME environment variable
|
||||
}
|
||||
Reference in New Issue
Block a user