@@ -5,6 +5,7 @@ update_settings ( k8s_upsert_timeout_secs = 150)
55load ('ext://helm_resource' , 'helm_repo' ,'helm_resource' )
66load ('ext://git_resource' , 'git_checkout' )
77load ('ext://deployment' , 'job_create' )
8+ load ('ext://helm_remote' , 'helm_remote' )
89
910#### Install Flux needed for some integration tests
1011helm_repo (
@@ -146,3 +147,37 @@ local_resource(
146147 """ ,
147148 resource_deps = ['package-and-upload-local-image-chart' ],
148149)
150+
151+ enable_vault = os .getenv ('ENABLE_VAULT' , 'false' ).lower () == 'true'
152+
153+ if enable_vault :
154+ ### We create a vault instance reachable at http://127.0.0.1:8200 with a kv1 engine secret with the values from
155+ ### data/vault_kv1_secrets.json and a kv2 engine secret with the values from vault_kv2_secrets.json, dev token is root
156+ helm_remote (
157+ 'vault' ,
158+ repo_name = 'hashicorp' ,
159+ repo_url = 'https://helm.releases.hashicorp.com' ,
160+ set = ['server.dev.enabled=true' ,'server.serviceAccount.create=true' ]
161+ )
162+
163+ # expose the service on localhost:8200
164+ k8s_resource (
165+ workload = 'vault' ,
166+ port_forwards = 8200
167+ )
168+
169+ local_resource (
170+ 'enable_kv1' ,
171+ cmd = """curl --header "X-Vault-Token: root" --request POST --data '{"type":"kv","options":{"version":1}}' http://127.0.0.1:8200/v1/sys/mounts/kv-v1
172+ """ ,
173+ resource_deps = ['vault' ],
174+ )
175+
176+ # kv2 is enabled by default
177+ local_resource (
178+ 'populate_vault_v1_v2_secrets' ,
179+ cmd = """curl --header "X-Vault-Token: root" --request POST --data @data/vault_kv1_secrets.json http://127.0.0.1:8200/v1/kv-v1/my-secret &&
180+ curl --header "X-Vault-Token: root" --request POST --data @data/vault_kv2_secrets.json http://127.0.0.1:8200/v1/secret/data/my-secret
181+ """ ,
182+ resource_deps = ['enable_kv1' ],
183+ )
0 commit comments