From c2aa4919bd56857dc44b4faae9694a6be7a0f6ce Mon Sep 17 00:00:00 2001
From: Matthew Baggett <matthew@baggett.me>
Date: Wed, 27 Nov 2024 15:28:10 +0100
Subject: [PATCH] Add private cidr

---
 utils/private-cidr/cidr.tf      | 15 +++++++++++++++
 utils/private-cidr/outputs.tf   |  6 ++++++
 utils/private-cidr/terraform.tf | 12 ++++++++++++
 3 files changed, 33 insertions(+)
 create mode 100644 utils/private-cidr/cidr.tf
 create mode 100644 utils/private-cidr/outputs.tf
 create mode 100644 utils/private-cidr/terraform.tf

diff --git a/utils/private-cidr/cidr.tf b/utils/private-cidr/cidr.tf
new file mode 100644
index 0000000..d74bb56
--- /dev/null
+++ b/utils/private-cidr/cidr.tf
@@ -0,0 +1,15 @@
+resource "random_integer" "upper_mid_byte" {
+  min = 18
+  max = 31
+}
+resource "random_integer" "lower_mid_byte" {
+  min = 10
+  max = 254
+}
+locals {
+  // Generate a subnet
+  subnet = "172.${random_integer.upper_mid_byte.result}.${random_integer.lower_mid_byte.result}.0/24"
+  // Calculate the gateway from the subnet
+  gateway = cidrhost(local.subnet, 1)
+}
+
diff --git a/utils/private-cidr/outputs.tf b/utils/private-cidr/outputs.tf
new file mode 100644
index 0000000..82e6aa0
--- /dev/null
+++ b/utils/private-cidr/outputs.tf
@@ -0,0 +1,6 @@
+output "subnet" {
+  value = local.subnet
+}
+output "gateway" {
+  value = local.gateway
+}
\ No newline at end of file
diff --git a/utils/private-cidr/terraform.tf b/utils/private-cidr/terraform.tf
new file mode 100644
index 0000000..a9f39e7
--- /dev/null
+++ b/utils/private-cidr/terraform.tf
@@ -0,0 +1,12 @@
+terraform {
+  required_version = "~> 1.6"
+
+  required_providers {
+    random = {
+      source  = "hashicorp/random"
+      version = "~> 3.5"
+    }
+  }
+}
+
+