@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
200 lines (199 loc) • 8.49 kB
TypeScript
import type { aws_codepipeline, aws_iam, aws_s3, pipelines } from 'aws-cdk-lib';
/**
* CodePipelineProps
*/
export interface CodePipelineProps {
/**
* Deploy every stack by creating a change set and executing it.
* When enabled, creates a "Prepare" and "Execute" action for each stack. Disable
* to deploy the stack in one pipeline action.
* @default true
* @stability stable
*/
readonly useChangeSets?: boolean;
/**
* Additional customizations to apply to the synthesize CodeBuild projects.
* @default - Only `codeBuildDefaults` are applied
* @stability stable
*/
readonly synthCodeBuildDefaults?: pipelines.CodeBuildOptions;
/**
* Additional customizations to apply to the self mutation CodeBuild projects.
* @default - Only `codeBuildDefaults` are applied
* @stability stable
*/
readonly selfMutationCodeBuildDefaults?: pipelines.CodeBuildOptions;
/**
* Whether the pipeline will update itself.
* This needs to be set to `true` to allow the pipeline to reconfigure
* itself when assets or stages are being added to it, and `true` is the
* recommended setting.
*
* You can temporarily set this to `false` while you are iterating
* on the pipeline itself and prefer to deploy changes using `cdk deploy`.
* @default true
* @stability stable
*/
readonly selfMutation?: boolean;
/**
* The IAM role to be assumed by this Pipeline.
* @default - A new role is created
* @stability stable
*/
readonly role?: aws_iam.IRole;
/**
* Reuse the same cross region support stack for all pipelines in the App.
* @default - true (Use the same support stack for all pipelines in App)
* @stability stable
*/
readonly reuseCrossRegionSupportStacks?: boolean;
/**
* Publish assets in multiple CodeBuild projects.
* If set to false, use one Project per type to publish all assets.
*
* Publishing in parallel improves concurrency and may reduce publishing
* latency, but may also increase overall provisioning time of the CodeBuild
* projects.
*
* Experiment and see what value works best for you.
* @default true
* @stability stable
*/
readonly publishAssetsInParallel?: boolean;
/**
* The name of the CodePipeline pipeline.
* @default - Automatically generated
* @stability stable
*/
readonly pipelineName?: string;
/**
* Enable KMS key rotation for the generated KMS keys.
* By default KMS key rotation is disabled, but will add
* additional costs when enabled.
* @default - false (key rotation is disabled)
* @stability stable
*/
readonly enableKeyRotation?: boolean;
/**
* Enable Docker for the 'synth' step.
* Set this to true if you are using file assets that require
* "bundling" anywhere in your application (meaning an asset
* compilation step will be run with the tools provided by
* a Docker image), both for the Pipeline stack as well as the
* application stacks.
*
* A common way to use bundling assets in your application is by
* using the `aws-cdk-lib/aws-lambda-nodejs` library.
*
* Configures privileged mode for the synth CodeBuild action.
*
* If you are about to turn this on in an already-deployed Pipeline,
* set the value to `true` first, commit and allow the pipeline to
* self-update, and only then use the bundled asset.
* @default false
* @stability stable
*/
readonly dockerEnabledForSynth?: boolean;
/**
* Enable Docker for the self-mutate step.
* Set this to true if the pipeline itself uses Docker container assets
* (for example, if you use `LinuxBuildImage.fromAsset()` as the build
* image of a CodeBuild step in the pipeline).
*
* You do not need to set it if you build Docker image assets in the
* application Stages and Stacks that are *deployed* by this pipeline.
*
* Configures privileged mode for the self-mutation CodeBuild action.
*
* If you are about to turn this on in an already-deployed Pipeline,
* set the value to `true` first, commit and allow the pipeline to
* self-update, and only then use the Docker asset in the pipeline.
* @default false
* @stability stable
*/
readonly dockerEnabledForSelfMutation?: boolean;
/**
* A list of credentials used to authenticate to Docker registries.
* Specify any credentials necessary within the pipeline to build, synth, update, or publish assets.
* @default []
* @stability stable
*/
readonly dockerCredentials?: Array<pipelines.DockerCredential>;
/**
* A map of region to S3 bucket name used for cross-region CodePipeline.
* For every Action that you specify targeting a different region than the Pipeline itself,
* if you don't provide an explicit Bucket for that region using this property,
* the construct will automatically create a Stack containing an S3 Bucket in that region.
* Passed directly through to the {@link cp.Pipeline}.
* @default - no cross region replication buckets.
* @stability stable
*/
readonly crossRegionReplicationBuckets?: Record<string, aws_s3.IBucket>;
/**
* Create KMS keys for the artifact buckets, allowing cross-account deployments.
* The artifact buckets have to be encrypted to support deploying CDK apps to
* another account, so if you want to do that or want to have your artifact
* buckets encrypted, be sure to set this value to `true`.
*
* Be aware there is a cost associated with maintaining the KMS keys.
* @default false
* @stability stable
*/
readonly crossAccountKeys?: boolean;
/**
* An existing Pipeline to be reused and built upon.
* [disable-awslint:ref-via-interface]
* @default - a new underlying pipeline is created.
* @stability stable
*/
readonly codePipeline?: aws_codepipeline.Pipeline;
/**
* Customize the CodeBuild projects created for this pipeline.
* @default - All projects run non-privileged build, SMALL instance, LinuxBuildImage.STANDARD_7_0
* @stability stable
*/
readonly codeBuildDefaults?: pipelines.CodeBuildOptions;
/**
* CDK CLI version to use in self-mutation and asset publishing steps.
* If you want to lock the CDK CLI version used in the pipeline, by steps
* that are automatically generated for you, specify the version here.
*
* We recommend you do not specify this value, as not specifying it always
* uses the latest CLI version which is backwards compatible with old versions.
*
* If you do specify it, be aware that this version should always be equal to or higher than the
* version of the CDK framework used by the CDK app, when the CDK commands are
* run during your pipeline execution. When you change this version, the *next
* time* the `SelfMutate` step runs it will still be using the CLI of the the
* *previous* version that was in this property: it will only start using the
* new version after `SelfMutate` completes successfully. That means that if
* you want to update both framework and CLI version, you should update the
* CLI version first, commit, push and deploy, and only then update the
* framework version.
* @default - Latest version
* @stability stable
*/
readonly cliVersion?: string;
/**
* Additional customizations to apply to the asset publishing CodeBuild projects.
* @default - Only `codeBuildDefaults` are applied
* @stability stable
*/
readonly assetPublishingCodeBuildDefaults?: pipelines.CodeBuildOptions;
/**
* An existing S3 Bucket to use for storing the pipeline's artifact.
* @default - A new S3 bucket will be created.
* @stability stable
*/
readonly artifactBucket?: aws_s3.IBucket;
/**
* The build step that produces the CDK Cloud Assembly.
* The primary output of this step needs to be the `cdk.out` directory
* generated by the `cdk synth` command.
*
* If you use a `ShellStep` here and you don't configure an output directory,
* the output directory will automatically be assumed to be `cdk.out`.
* @stability stable
*/
readonly synth?: pipelines.IFileSetProducer;
}