Skip to content

Commit 5f96d67

Browse files
feat: add aws-codepipeline workspace (redhat-developer#1873)
* feat: add aws-codepipeline workspace Adds AWS CodePipeline plugin from awslabs/backstage-plugins-for-aws monorepo to the RHDH Extensions Catalog. - Frontend: @aws/aws-codepipeline-plugin-for-backstage - Backend: @aws/aws-codepipeline-plugin-for-backstage-backend - License: Apache 2.0 JIRA: RHIDP-11143 * fix: add backstage.json override for aws-codepipeline Override Backstage version to 1.42.5 (RHDH target) from upstream's 1.43.1. Minor version difference should be backward compatible. * chore: sync versions.json and update backstage override to 1.45.3 Sync versions.json from main branch and update backstage.json override to match new RHDH target version 1.45.3. * fix: apply aws-codebuild patterns to aws-codepipeline - Fix repo-flat to be boolean true (not string) - Add patches/1-avoid-double-wildcards.patch (fixes workspace glob) - Add --embed-package for backend shared dependencies * feat: add metadata and catalog entity for aws-codepipeline - Add Package metadata for frontend and backend plugins - Add Plugin entity for Extensions Catalog - Register plugin in all.yaml * refactor: fold aws-codepipeline into backstage-plugins-for-aws workspace Signed-off-by: Hope Hadfield <hhadfiel@redhat.com> --------- Signed-off-by: Hope Hadfield <hhadfiel@redhat.com> Co-authored-by: Hope Hadfield <hhadfiel@redhat.com>
1 parent 1b71899 commit 5f96d67

5 files changed

Lines changed: 209 additions & 0 deletions

File tree

catalog-entities/extensions/plugins/all.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ spec:
1313
- ./argocd-scaffolder-actions.yaml
1414
- ./aws-scaffolder-actions.yaml
1515
- ./aws-codebuild.yaml
16+
- ./aws-codepipeline.yaml
1617
- ./aws-ecs.yaml
1718
- ./azure-container-registry.yaml
1819
- ./azure-devops.yaml
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/redhat-developer/rhdh-plugins/refs/heads/main/workspaces/extensions/json-schema/plugins.json
2+
apiVersion: extensions.backstage.io/v1alpha1
3+
kind: Plugin
4+
metadata:
5+
name: aws-codepipeline
6+
namespace: community
7+
title: Amazon CodePipeline
8+
annotations:
9+
extensions.backstage.io/pre-installed: 'true'
10+
description: |
11+
View and monitor AWS CodePipeline executions directly from your Backstage catalog.
12+
Track pipeline execution status, stage progress, and execution history alongside your service entities.
13+
tags:
14+
- aws
15+
- cloud
16+
- ci-cd
17+
- codepipeline
18+
links:
19+
- url: https://github.com/awslabs/backstage-plugins-for-aws
20+
title: Homepage
21+
- url: https://github.com/awslabs/backstage-plugins-for-aws/issues
22+
title: Bugs
23+
- title: Source Code
24+
url: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline
25+
- title: Documentation
26+
url: https://github.com/awslabs/backstage-plugins-for-aws/blob/main/plugins/codepipeline/README.md
27+
spec:
28+
authors:
29+
- name: AWS
30+
url: https://aws.amazon.com/
31+
32+
publisher: AWS
33+
support:
34+
provider: Community
35+
level: community
36+
lifecycle: active
37+
38+
categories:
39+
- CI/CD
40+
41+
highlights:
42+
- Real-time CodePipeline execution monitoring
43+
- View pipeline stage status and progress
44+
- Pipeline execution history and details
45+
- Tag-based or ARN-based pipeline discovery
46+
- Integration with AWS SDK credential chain
47+
48+
description: |
49+
The Amazon CodePipeline plugin for Backstage enables developers to view and monitor their AWS CodePipeline
50+
pipelines directly within the Backstage developer portal. This integration provides visibility into
51+
your CI/CD pipelines alongside your service catalog entities.
52+
53+
## Key Features
54+
55+
* **Pipeline Monitoring**: View real-time status of CodePipeline executions including stage progress and current state
56+
* **Execution History**: Access detailed information about pipeline executions and their outcomes
57+
* **Flexible Discovery**: Find CodePipeline pipelines using either specific ARNs or tag-based queries
58+
* **AWS Integration**: Seamlessly integrates with AWS SDK credential chain for authentication
59+
* **Entity Annotations**: Link Backstage catalog entities to CodePipeline pipelines using simple annotations
60+
61+
## Adding The Plugin To Red Hat Developer Hub
62+
63+
This plugin consists of both frontend and backend components that work together to provide CodePipeline integration.
64+
65+
See the [Red Hat Developer Hub documentation](https://docs.redhat.com/en/documentation/red_hat_developer_hub/latest/html/installing_and_viewing_plugins_in_red_hat_developer_hub/rhdh-extensions-plugins_assembly-install-third-party-plugins-rhdh)
66+
for further instructions on how to add, enable, configure, and remove plugins in your instance.
67+
68+
## Configuring The Plugin
69+
70+
The AWS CodePipeline plugin requires AWS credentials to be configured. The backend plugin uses the AWS SDK credential chain,
71+
which supports multiple authentication methods including environment variables, IAM roles, and AWS profiles.
72+
73+
### Backend Configuration
74+
75+
Configure AWS credentials via environment variables:
76+
77+
```bash
78+
AWS_REGION=us-east-1
79+
AWS_ACCESS_KEY_ID=your-access-key-id
80+
AWS_SECRET_ACCESS_KEY=your-secret-access-key
81+
```
82+
83+
For production deployments, using IAM roles for service accounts (IRSA) or EC2 instance profiles is recommended
84+
for better security.
85+
86+
### Entity Annotations
87+
88+
Add CodePipeline information to your catalog entities using annotations:
89+
90+
```yaml
91+
apiVersion: backstage.io/v1alpha1
92+
kind: Component
93+
metadata:
94+
name: my-service
95+
annotations:
96+
# Option 1: Specific pipeline ARN
97+
aws.amazon.com/aws-codepipeline-arn: arn:aws:codepipeline:us-east-1:123456789012:my-pipeline
98+
99+
# Option 2: Tag-based discovery
100+
# aws.amazon.com/aws-codepipeline-tags: component=my-app,environment=production
101+
spec:
102+
type: service
103+
lifecycle: production
104+
owner: platform-team
105+
```
106+
107+
The frontend plugin will automatically display an "AWS CodePipeline" card on catalog entities with these annotations,
108+
showing the associated pipeline execution information.
109+
110+
## Prerequisites
111+
112+
* AWS account with CodePipeline pipelines
113+
* AWS credentials configured with appropriate IAM permissions
114+
* IAM permissions required:
115+
* `codepipeline:GetPipelineState`
116+
* `codepipeline:ListPipelineExecutions`
117+
* Additional permissions may be required based on your configuration
118+
119+
For more detailed configuration instructions, see the [plugin documentation](https://github.com/awslabs/backstage-plugins-for-aws/blob/main/plugins/codepipeline/README.md).
120+
121+
packages:
122+
- aws-aws-codepipeline-plugin-for-backstage
123+
- aws-aws-codepipeline-plugin-for-backstage-backend
124+
125+
history:
126+
added: '2026-01-29'
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/redhat-developer/rhdh-plugins/refs/heads/main/workspaces/extensions/json-schema/packages.json
2+
apiVersion: extensions.backstage.io/v1alpha1
3+
kind: Package
4+
metadata:
5+
name: aws-aws-codepipeline-plugin-for-backstage-backend
6+
namespace: community
7+
title: "@aws/aws-codepipeline-plugin-for-backstage-backend"
8+
links:
9+
- url: https://github.com/awslabs/backstage-plugins-for-aws
10+
title: Homepage
11+
- url: https://github.com/awslabs/backstage-plugins-for-aws/issues
12+
title: Bugs
13+
- title: Source Code
14+
url: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline/backend
15+
annotations:
16+
backstage.io/source-location: url:https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline/backend
17+
tags: []
18+
spec:
19+
packageName: "@aws/aws-codepipeline-plugin-for-backstage-backend"
20+
dynamicArtifact: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/aws-aws-codepipeline-plugin-for-backstage-backend:bs_1.45.3__0.10.0
21+
version: 0.10.0
22+
backstage:
23+
role: backend-plugin
24+
supportedVersions: 1.45.3
25+
author: AWS
26+
support: community
27+
lifecycle: active
28+
partOf:
29+
- backstage-plugins-for-aws
30+
appConfigExamples:
31+
- title: AWS Credentials Configuration
32+
content: |
33+
# Backend plugin uses AWS SDK credential chain
34+
# Configure via environment variables:
35+
# AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/redhat-developer/rhdh-plugins/refs/heads/main/workspaces/extensions/json-schema/packages.json
2+
apiVersion: extensions.backstage.io/v1alpha1
3+
kind: Package
4+
metadata:
5+
name: aws-aws-codepipeline-plugin-for-backstage
6+
namespace: community
7+
title: "@aws/aws-codepipeline-plugin-for-backstage"
8+
links:
9+
- url: https://github.com/awslabs/backstage-plugins-for-aws
10+
title: Homepage
11+
- url: https://github.com/awslabs/backstage-plugins-for-aws/issues
12+
title: Bugs
13+
- title: Source Code
14+
url: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline/frontend
15+
annotations:
16+
backstage.io/source-location: url:https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline/frontend
17+
tags: []
18+
spec:
19+
packageName: "@aws/aws-codepipeline-plugin-for-backstage"
20+
dynamicArtifact: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/aws-aws-codepipeline-plugin-for-backstage:bs_1.45.3__0.8.0
21+
version: 0.8.0
22+
backstage:
23+
role: frontend-plugin
24+
supportedVersions: 1.45.3
25+
author: AWS
26+
support: community
27+
lifecycle: active
28+
partOf:
29+
- backstage-plugins-for-aws
30+
appConfigExamples:
31+
- title: Default configuration
32+
content:
33+
dynamicPlugins:
34+
frontend:
35+
aws.aws-codepipeline-plugin-for-backstage:
36+
mountPoints:
37+
- mountPoint: entity.page.overview/cards
38+
importName: EntityAwsCodePipelineCard
39+
config:
40+
layout:
41+
gridColumn: "1 / span 6"
42+
if:
43+
anyOf:
44+
- hasAnnotation: aws.amazon.com/aws-codepipeline-arn
45+
- hasAnnotation: aws.amazon.com/aws-codepipeline-tags

workspaces/backstage-plugins-for-aws/plugins-list.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ plugins/ecs/frontend:
22
plugins/ecs/backend: --embed-package @aws/aws-core-plugin-for-backstage-common --embed-package @aws/aws-core-plugin-for-backstage-node
33
plugins/codebuild/frontend:
44
plugins/codebuild/backend: --embed-package @aws/aws-core-plugin-for-backstage-common --embed-package @aws/aws-core-plugin-for-backstage-node
5+
plugins/codepipeline/frontend:
6+
plugins/codepipeline/backend: --embed-package @aws/aws-core-plugin-for-backstage-common --embed-package @aws/aws-core-plugin-for-backstage-node

0 commit comments

Comments
 (0)