summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2025-09-11 15:32:42 +0200
committerPatrick Spek <p.spek@tyil.nl>2025-09-11 15:32:42 +0200
commit97846730d1f8dc5b38a45ebb15a8b6d9764c8192 (patch)
tree4a2dd5883080f363627db08cefb8f73a31ca2a68
downloadkubernetes-hostpath-claim-97846730d1f8dc5b38a45ebb15a8b6d9764c8192.tar.gz
kubernetes-hostpath-claim-97846730d1f8dc5b38a45ebb15a8b6d9764c8192.tar.bz2
Initial commitHEADmaster
-rw-r--r--claim.tf17
-rw-r--r--main.tf47
-rw-r--r--volume.tf32
3 files changed, 96 insertions, 0 deletions
diff --git a/claim.tf b/claim.tf
new file mode 100644
index 0000000..c483e40
--- /dev/null
+++ b/claim.tf
@@ -0,0 +1,17 @@
+resource "kubernetes_persistent_volume_claim_v1" "this" {
+ metadata {
+ name = var.name
+ namespace = var.namespace
+ }
+
+ spec {
+ volume_name = kubernetes_persistent_volume_v1.this.metadata[0].name
+ access_modes = var.modes
+
+ resources {
+ requests = {
+ storage = var.size
+ }
+ }
+ }
+}
diff --git a/main.tf b/main.tf
new file mode 100644
index 0000000..6a61adb
--- /dev/null
+++ b/main.tf
@@ -0,0 +1,47 @@
+terraform {
+ required_providers {
+ kubernetes = {
+ source = "hashicorp/kubernetes"
+ version = "~> 2.37.1"
+ }
+ }
+}
+
+variable "name" {
+ type = string
+}
+
+variable "namespace" {
+ type = string
+ default = "default"
+}
+
+variable "path" {
+ type = string
+}
+
+variable "type" {
+ type = string
+ default = "DirectoryOrCreate"
+}
+
+variable "size" {
+ type = string
+ default = "10Gi"
+}
+
+variable "modes" {
+ type = list(string)
+ default = [
+ "ReadWriteOnce",
+ ]
+}
+
+variable "nodes" {
+ type = list(string)
+ default = []
+}
+
+output "claim" {
+ value = kubernetes_persistent_volume_claim_v1.this.metadata[0].name
+}
diff --git a/volume.tf b/volume.tf
new file mode 100644
index 0000000..645b5a0
--- /dev/null
+++ b/volume.tf
@@ -0,0 +1,32 @@
+resource "kubernetes_persistent_volume_v1" "this" {
+ metadata {
+ name = var.name
+ }
+
+ spec {
+ access_modes = var.modes
+
+ capacity = {
+ storage = var.size
+ }
+
+ persistent_volume_source {
+ host_path {
+ path = var.path
+ type = var.type
+ }
+ }
+
+ node_affinity {
+ required {
+ node_selector_term {
+ match_expressions {
+ key = "kubernetes.io/hostname"
+ operator = "In"
+ values = var.nodes
+ }
+ }
+ }
+ }
+ }
+}