|
1 | 1 | from pulumi import ComponentResource, ResourceOptions |
2 | | -from pulumi_kubernetes.core.v1 import Namespace |
| 2 | +from pulumi_kubernetes.core.v1 import Namespace, Secret |
3 | 3 | from pulumi_kubernetes.meta.v1 import ObjectMetaArgs |
4 | 4 | from pulumi_kubernetes.helm.v3 import Release |
5 | 5 | from pulumi_kubernetes.helm.v4 import RepositoryOptsArgs |
6 | 6 | from pulumi_kubernetes.storage.v1 import StorageClass |
| 7 | +from pulumi_random import RandomPassword |
7 | 8 |
|
8 | 9 | from enums import K8sEnvironment, PodSecurityStandard |
9 | 10 |
|
@@ -62,6 +63,25 @@ def __init__( |
62 | 63 | opts=child_opts, |
63 | 64 | ) |
64 | 65 |
|
| 66 | + longhorn_encryption_secret = Secret( |
| 67 | + "longhorn-encryption-secret", |
| 68 | + metadata=ObjectMetaArgs( |
| 69 | + name="longhorn-crypto-secret", |
| 70 | + namespace=longhorn_ns.metadata.name, |
| 71 | + ), |
| 72 | + string_data={ |
| 73 | + "CRYPTO_KEY_VALUE": RandomPassword( |
| 74 | + "longhorn-encryption-key", |
| 75 | + length=32, |
| 76 | + special=True, |
| 77 | + ).result |
| 78 | + }, |
| 79 | + opts=ResourceOptions.merge( |
| 80 | + child_opts, |
| 81 | + ResourceOptions(depends_on=[longhorn_ns]), |
| 82 | + ), |
| 83 | + ) |
| 84 | + |
65 | 85 | longhorn = Release( |
66 | 86 | "longhorn", |
67 | 87 | namespace=longhorn_ns.metadata.name, |
@@ -103,6 +123,13 @@ def __init__( |
103 | 123 | "fsType": "ext4", |
104 | 124 | "numberOfReplicas": "2", |
105 | 125 | "staleReplicaTimeout": "2880", |
| 126 | + "encrypted": "true", |
| 127 | + "csi.storage.k8s.io/provisioner-secret-name": longhorn_encryption_secret.metadata.name, |
| 128 | + "csi.storage.k8s.io/provisioner-secret-namespace": longhorn_ns.metadata.name, |
| 129 | + "csi.storage.k8s.io/node-stage-secret-name": longhorn_encryption_secret.metadata.name, |
| 130 | + "csi.storage.k8s.io/node-stage-secret-namespace": longhorn_ns.metadata.name, |
| 131 | + "csi.storage.k8s.io/node-publish-secret-name": longhorn_encryption_secret.metadata.name, |
| 132 | + "csi.storage.k8s.io/node-publish-secret-namespace": longhorn_ns.metadata.name, |
106 | 133 | }, |
107 | 134 | provisioner="driver.longhorn.io", |
108 | 135 | opts=ResourceOptions.merge( |
|
0 commit comments