@@ -192,6 +192,16 @@ in {
192192 id "aws_vpc_peering_connection.${ vpc . region } " ;
193193 } ) ) ;
194194
195+ resource . aws_s3_bucket_object = lib . flip lib . mapAttrs' config . cluster . awsAutoScalingGroups ( name : group :
196+ lib . nameValuePair "${ name } -flake" rec {
197+ bucket = config . cluster . s3Bucket ;
198+ key = with config ; "infra/secrets/${ cluster . name } /${ cluster . kms } /source/${ name } -source.tar.xz" ;
199+ etag = var ''filemd5("${ source } ")'' ;
200+ source = "${ pkgs . runCommand "source.tar.xz" { } ''
201+ tar cvf $out -C ${ config . cluster . flakePath } .
202+ '' } ";
203+ } ) ;
204+
195205 resource . aws_subnet = mapAwsAsgVpcs ( vpc :
196206 lib . flip lib . mapAttrsToList vpc . subnets ( suffix : subnet :
197207 lib . nameValuePair "${ vpc . region } -${ suffix } " {
316326 lib . nameValuePair vpc . region {
317327 provider = awsProviderFor vpc . region ;
318328 vpc_peering_connection_id =
319- id "aws_vpc_peering_connection .${ vpc . region } " ;
329+ id "aws_vpc_peering_connection_accepter .${ vpc . region } " ;
320330
321331 requester = { allow_remote_vpc_dns_resolution = true ; } ;
322332 } ) ;
334344 requesterMeshPeeringOptions = mapAwsAsgVpcPeers ( link :
335345 lib . nameValuePair "${ link . connector } -connect-${ link . accepter } " {
336346 provider = awsProviderFor link . connector ;
337- vpc_peering_connection_id =
338- id
339- "aws_vpc_peering_connection.${ link . connector } -connect-${ link . accepter } " ;
347+ vpc_peering_connection_id = id
348+ "aws_vpc_peering_connection_accepter.${ link . accepter } -accept-${ link . connector } " ;
340349
341350 requester = { allow_remote_vpc_dns_resolution = true ; } ;
342351 } ) ;
@@ -378,10 +387,17 @@ in {
378387 lib . nameValuePair group . uid {
379388 name = group . uid ;
380389 inherit ( group . iam . instanceProfile ) path ;
381- role = group . iam . instanceProfile . role . tfName ;
382- lifecycle = [ { create_before_destroy = true ; } ] ;
390+ role = var "data.aws_iam_role. ${ config . cluster . iam . roles . client . uid } .name" ;
391+ lifecycle = [ { create_before_destroy = true ; } ] ;
383392 } ) ;
384393
394+ data . aws_iam_role = let
395+ # deploy for core role
396+ inherit ( config . cluster . iam . roles . client ) uid ;
397+ in {
398+ "${ uid } " . name = "core-${ uid } " ;
399+ } ;
400+
385401 data . aws_iam_policy_document = let
386402 # deploy for client role
387403 role = config . cluster . iam . roles . client ;
@@ -395,31 +411,18 @@ in {
395411 inherit ( policy ) condition ;
396412 } ) ;
397413 } ;
398- in
399- lib . listToAttrs ( lib . mapAttrsToList op role . policies ) ;
400-
401- resource . aws_iam_role = let
402- # deploy for client role
403- role = config . cluster . iam . roles . client ;
404- in {
405- "${ role . uid } " = {
406- name = role . uid ;
407- assume_role_policy = role . assumePolicy . tfJson ;
408- lifecycle = [ { create_before_destroy = true ; } ] ;
409- } ;
410- } ;
414+ in lib . mapAttrs' op role . policies ;
411415
412416 resource . aws_iam_role_policy = let
413417 # deploy for client role
414418 role = config . cluster . iam . roles . client ;
415419 op = policyName : policy :
416420 lib . nameValuePair policy . uid {
417421 name = policy . uid ;
418- role = role . id ;
422+ role = id "data.aws_iam_role. ${ role . uid } " ;
419423 policy = var "data.aws_iam_policy_document.${ policy . uid } .json" ;
420424 } ;
421- in
422- lib . listToAttrs ( lib . mapAttrsToList op role . policies ) ;
425+ in lib . mapAttrs' op role . policies ;
423426
424427 resource . aws_security_group =
425428 lib . flip lib . mapAttrsToList config . cluster . awsAutoScalingGroups
0 commit comments