@@ -177,14 +177,44 @@ resource "null_resource" "get_vault_reviewer_token" {
177
177
depends_on = [" null_resource.configure_k8s" ]
178
178
}
179
179
180
+ # Get certs again in case Ansible script takes too long to run
181
+ # and Vault token is no longer valid.
182
+ # We need the certs in Terraform worker container in second run
183
+ # This resource can be tainted before doing new run if first fails
184
+ resource "null_resource" "get_config_2" {
185
+
186
+ provisioner "local-exec" {
187
+ command = " echo \" ${ var . private_key_data } \" > private-key.pem"
188
+ }
189
+
190
+ provisioner "local-exec" {
191
+ command = " chmod 400 private-key.pem"
192
+ }
193
+
194
+ provisioner "local-exec" {
195
+ command = " scp -o StrictHostKeyChecking=no -i private-key.pem ec2-user@${ module . openshift . bastion_public_dns } :~/config config"
196
+ }
197
+ provisioner "local-exec" {
198
+ command = " sed -n 4,4p config | cut -d ':' -f 2 | sed 's/ //' > ca_certificate"
199
+ }
200
+ provisioner "local-exec" {
201
+ command = " sed -n 28,28p config | cut -d ':' -f 2 | sed 's/ //' > client_certificate"
202
+ }
203
+ provisioner "local-exec" {
204
+ command = " sed -n 29,29p config | cut -d ':' -f 2 | sed 's/ //' > client_key"
205
+ }
206
+
207
+ depends_on = [" null_resource.get_vault_reviewer_token" ]
208
+ }
209
+
180
210
data "null_data_source" "get_certs" {
181
211
inputs = {
182
212
client_certificate = " ${ file (" client_certificate" )} "
183
213
client_key = " ${ file (" client_key" )} "
184
214
ca_certificate = " ${ file (" ca_certificate" )} "
185
215
vault_reviewer_token = " ${ file (" vault-reviewer-token" )} "
186
216
}
187
- depends_on = [" null_resource.get_vault_reviewer_token " ]
217
+ depends_on = [" null_resource.get_config_2 " ]
188
218
}
189
219
190
220
# Use the vault_kubernetes_auth_backend_config resource
0 commit comments