Exemple #1
0
        private void CreateAsgCapacityProviders()
        {
            if (CdkOptions == null || CdkOptions.CapacityProviders?.Any() != true)
            {
                return;
            }

            foreach (var capacityProvider in CdkOptions.CapacityProviders)
            {
                ValidateCapacityProvider(capacityProvider);
            }

            Cluster cluster = default;

            foreach (var providerOptions in CdkOptions.CapacityProviders)
            {
                var autoScalingGroup = LocateAutoScalingGroup(providerOptions.AutoScalingGroupId, "ASG assigned to capacity provider does not exist");
                if (cluster == null || cluster.Node.Id != providerOptions.Id)
                {
                    cluster = LocateEcsCluster(providerOptions.ClusterId, "Cluster assigned to capacity provider does not exist") as Cluster;
                }

                var provider = AwsCdkHandler.CreateAsgCapacityProvider(providerOptions.Id, providerOptions.Name, providerOptions.TargetCapacityPercent, providerOptions.EnableScaleInTerminationProtection, autoScalingGroup);
                AwsCdkHandler.AddAsgCapacityProviderToCluster(provider, cluster);

                StackResources.AsgCapacityProviders.Add(providerOptions.Id, provider);
            }
        }