Skip to content

Conversation

allamand
Copy link

Summary

This PR fixes multiple issues in the Backstage CICD pipeline template that were preventing successful pipeline execution.

Issues Fixed

1. ArgoCD Project Duplication Error

  • Problem: Template tried to create 'default' project which already exists
  • Fix: Use unique project names: ${{parameters.appname}}-project

2. Repository URL Format for ArgoCD

  • Problem: ArgoCD couldn't access GitLab repos without .git suffix (301 redirect)
  • Fix: Add .git suffix to repository URLs

3. Catalog Registration URL Format

  • Problem: Malformed URLs missing branch reference and wrong catalogInfoPath
  • Fix: Use proper GitLab blob URL format with /main/ and leading slash in catalogInfoPath

4. Kubernetes Manifest Application

  • Problem: kube:apply couldn't find processed template files
  • Fix: Correct file path reference with ./ prefix

5. Crossplane API Compatibility

  • Problem: Template used Crossplane APIs not available in cluster
  • Fix: Create ACK-based template (ekspodidentity.yaml) using available iam.services.k8s.aws and eks.services.k8s.aws APIs

Files Changed

  • platform/backstage/templates/cicd-pipeline/template-cicd-pipeline.yaml - Main template fixes
  • platform/backstage/templates/cicd-pipeline/provisioner/ekspodidentity.yaml - New ACK-based provisioner template

Testing

  • Pipeline now progresses through all steps without errors
  • ArgoCD applications and projects are created successfully
  • Kubernetes resources are properly applied using ACK controllers

Related Issues

Fixes template execution failures in Backstage CICD pipeline deployment.

Workshop User added 7 commits September 25, 2025 22:06
… error

- Change projectName from 'default' to '${{parameters.appname}}-project'
- Prevents 'Duplicate project detected' error when creating ArgoCD resources
- Each app will have its own ArgoCD project (e.g., rust-04-project)
Signed-off-by: Workshop User <[email protected]>
- ArgoCD requires .git suffix for GitLab repository access
- Fixes 'repository not accessible' error with 301 status code
- Repository URL now: https://domain/user/repo-name.git
- Fix malformed repoContentsUrl for catalog registration
- Use proper GitLab blob URL format: /user/repo/-/blob/main
- Fixes 400 Bad Request error during catalog registration step
- Change catalogInfoPath from 'catalog-info.yaml' to '/catalog-info.yaml'
- Match working S3 template syntax with leading slash
- Should fix 400 Bad Request error in catalog registration
- Change manifest from 'podidentity.yaml' to './podidentity.yaml'
- Ensures kube:apply can find the processed template file
- File is created by previous fetch:template step
- Create ekspodidentity.yaml using ACK APIs instead of Crossplane
- Use iam.services.k8s.aws/v1alpha1 and eks.services.k8s.aws/v1alpha1
- Add aws_account_id parameter for roleARN construction
- Update template to use ekspodidentity.yaml instead of podidentity.yaml
- Should work with existing ACK controllers in cluster
@allamand allamand changed the base branch from main to riv25 September 26, 2025 12:24
@allamand allamand marked this pull request as draft September 26, 2025 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant