(@aws-cdk/aws-codepipeline-actions): No AppConfigDeployAction available
- Dominant language
- TypeScript
- Stars
- 12.9k
- Forks
- 4.6k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 83
Description
### Describe the feature
For CodePipeline there is no AppConfig deployment action available.
### Use Case
We have pipelines that are solely deploying appConfig, json parameters.
(SSM parameters are not yet supported, we validated this by contacting internal teams through a support case).
### Proposed Solution
Simplified construct, perhaps prefixing it with Cfn like all other AppConfig resources.
The pipeline role will also need a policy allowing appConfig actions.
```
import * as codepipeline from "@aws-cdk/aws-codepipeline";
import { Construct } from "constructs";
import { Action } from "../action";
import { deployArtifactBounds } from "../common";
export interface AppConfigDeployActionProps extends codepipeline.CommonAwsActionProps {
readonly actionName: string;
readonly inputs: codepipeline.Artifact[]
readonly applicationId: string
readonly environmentId: string
readonly configurationProfileId: string
readonly deploymentStrategyId: string
readonly inputArtifactConfigurationPath: string
}
class AppConfigDeployAction extends Action {
protected readonly providedActionProperties: AppConfigDeployActionProps
constructor(providedActionProperties: AppConfigDeployActionProps) {
super({
...providedActionProperties,
category: codepipeline.ActionCategory.DEPLOY,
provider: 'AppConfig',
artifactBounds: deployArtifactBounds(),
});
this.providedActionProperties = providedActionProperties;
}
protected bound(scope: Construct, _stage: codepipeline.IStage, _options: codepipeline.ActionBindOptions): codepipeline.ActionConfig {
return {
configuration: {
Application: this.providedActionProperties.applicationId,
Environment: this.providedActionProperties.environmentId,
ConfigurationProfile: this.providedActionProperties.configurationProfileId,
DeploymentStrategy: this.providedActionProperties.deploymentStrategyId,
InputArtifactConfigurationPath: this.providedActionProperties.inputArtifactConfigurationPath,
},
};
}
}
```
### Other Information
We wanted to port [this example piece of Kotlin](https://github.com/aws-samples/aws-appconfig-codepipeline-cdk/blob/main/infrastructure/src/main/kotlin/com/app/config/AppConfigCiCdStack.kt) code to ts, but it was not a 1-on-1 mapping.
AppConfig is still prefixed with Cfn, thus no priority is given towards this service. However it is rather a small request and may be useful for others as well.
### Acknowledgements
- [X] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### CDK version used
2.59.0
### Environment details (OS name and version, etc.)
/
Contributor guide
Research direction
Start in the @aws-cdk/aws-codepipeline-actions package and compare the proposed AppConfigDeployAction with existing deployment actions. Verify the action configuration and pipeline role permissions against the linked AppConfig CodePipeline example; done means a TypeScript construct can deploy an AppConfig configuration artifact through CodePipeline.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cloud
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100