-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcsi.tf
94 lines (90 loc) · 2.27 KB
/
csi.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
resource "proxmox_virtual_environment_role" "csi" {
role_id = var.proxmox_csi_role_id
privileges = [
"VM.Audit",
"VM.Config.Disk",
"Datastore.Allocate",
"Datastore.AllocateSpace",
"Datastore.Audit"
]
}
resource "proxmox_virtual_environment_user" "kubernetes_csi" {
user_id = var.proxmox_csi_user_id
acl {
path = "/"
propagate = true
role_id = proxmox_virtual_environment_role.csi.role_id
}
}
resource "proxmox_virtual_environment_user_token" "kubernetes_csi_token" {
comment = "Managed by Terraform"
expiration_date = "2033-01-01T22:00:00Z"
token_name = var.proxmox_csi_token_name
user_id = proxmox_virtual_environment_user.kubernetes_csi.user_id
privileges_separation = false
}
output "proxmox_csi_token" {
value = split("=", proxmox_virtual_environment_user_token.kubernetes_csi_token.value)[1]
sensitive = true
}
data "helm_template" "proxmox_csi_plugin" {
namespace = "csi-proxmox"
name = "cilium"
repository = "oci://ghcr.io/sergelogvinov/charts"
chart = "proxmox-csi-plugin"
version = "0.2.13"
kube_version = var.kubernetes_version
api_versions = []
set {
name = "createNamespace"
value = "true"
}
set {
name = "config.clusters[0].url"
value = "${var.proxmox_endpoint}/api2/json"
}
set {
name = "config.clusters[0].insecure"
value = "true"
}
set {
name = "config.clusters[0].token_id"
value = proxmox_virtual_environment_user_token.kubernetes_csi_token.id
}
set {
name = "config.clusters[0].token_secret"
value = split("=", proxmox_virtual_environment_user_token.kubernetes_csi_token.value)[1]
}
set {
name = "config.clusters[0].region"
value = var.proxmox_cluster_name
}
set {
name = "storageClass[0].name"
value = "proxmox-csi"
}
set {
name = "storageClass[0].storage"
value = "local-lvm"
}
set {
name = "storageClass[0].reclaimPolicy"
value = "Retain"
}
set {
name = "storageClass[0].fstype"
value = "ext4"
}
set {
name = "storageClass[0].cache"
value = "writethrough"
}
set {
name = "storageClass[0].ssd"
value = "true"
}
set {
name = "storageClass[0].mountOptions[0]"
value = "noatime"
}
}