private getFederationSupportActions()

in source/repositories/compliant-framework-central-pipeline/lib/environment-pipeline-stack.ts [860:934]


  private getFederationSupportActions(): codepipeline.IAction[] {

    let tags: any = [
      {
        Key: 'solution-info:built-by',
        Value: this.props.solutionInfo.builtBy
      },
      {
        Key: 'solution-info:name',
        Value: this.props.solutionInfo.name
      },
      {
        Key: 'solution-info:version',
        Value: this.props.solutionInfo.version
      }
    ]

    let actions: codepipeline.IAction[] = []

    for (var region of this.props.config.deployToRegions) {
      actions.push(
        new codepipeline_actions.LambdaInvokeAction({
          actionName: `Federation-StackSet-${cfw.getActionName(region)}`,
          lambda: this.lambdas[cfw.STACK_SET_ACTION],
          userParameters: {
            'stackSetName': `${this.props.environment}-federation-stackset-${region}`,
            'ouName': this.getOuName(region),
            'templateUrl': `https://${this.s3Bucket.bucketRegionalDomainName}/` +
              `${this.sources[cfw.SECURITY_BASELINE].repo.repositoryName}/` +
              'templates/federation/federation.yml',
            'region': region,
            'parameters': {
              'pFederationName': this.props.config.federation.name
            },
            'capabilities': [
              'CAPABILITY_NAMED_IAM'
            ],
            'tags': tags
          },
          runOrder: 1,
        }),
      );
    }

    if (this.props.environment == this.props.config.federation.sourceEnvironment) {
      actions.push(new codepipeline_actions.CloudFormationCreateUpdateStackAction({
        actionName: 'Federation-CentralAccount',
        stackName: 'federation-stack',
        adminPermissions: true,
        replaceOnFailure: true,
        templatePath: this.sources[cfw.SECURITY_BASELINE].output.atPath('templates/federation/federation.yml'),
        parameterOverrides: {
          ['pFederationName']: this.props.config.federation.name,

        },
        runOrder: 2
      }));

      actions.push(new codepipeline_actions.CloudFormationCreateUpdateStackAction({
        actionName: 'Federation-LoggingAccount',
        stackName: 'federation-stack',
        adminPermissions: true,
        replaceOnFailure: true,
        templatePath: this.sources[cfw.SECURITY_BASELINE].output.atPath('templates/federation/federation.yml'),
        parameterOverrides: {
          ['pFederationName']: this.props.config.federation.name,

        },
        account: this.props.config.logging.accountId,
        runOrder: 2
      }));
    }

    return actions
  }