Compare commits

...

77 commits

Author SHA1 Message Date
4ed3dc8d2a backstage update tutorial, part 2 2025-04-24 13:40:17 +02:00
97a09ce1b3 backstage update tutorial 2025-04-23 15:36:53 +02:00
1bf97759d6 Merge branch 'development' into likec4 2025-04-09 23:28:55 +02:00
aaaa5a100f Merge remote-tracking branch 'refs/remotes/origin/likec4' into likec4 2025-04-09 23:27:45 +02:00
c8695eb403 refactor(technical-documentation): first itration finished. can be pushed as mkdocs-awesome-pages-plugin is now implemented in backstage-edp 2025-04-09 23:25:31 +02:00
75a2ad1cfa Merge branch 'development' into feature/tech-doc-refactoring 2025-04-09 22:34:09 +02:00
70676f0bf8 feat(c4-arch): added kyverno, fixed developer -> git relation 2025-04-09 22:25:38 +02:00
39b9d4935f feat(c4-arch): added edp-as-orchestratir view 2025-04-09 22:25:38 +02:00
f882aa4159 refactor(c4-arch): one again forgejo refactored, to get single components in the developer-context-view 2025-04-09 22:25:38 +02:00
2d9276f73e feat(c4-arch): created edp-as.idp.view. added new elemenst api and garfana. refactored forgejo, it also contains git and collaboration. rmeoved repos from forgejo 2025-04-09 22:25:38 +02:00
d3e51c3777 fix(c4-devdays): removed typos 2025-04-09 22:25:38 +02:00
1c3d72ebb6 feat(c4-devday): slide 1 - developer landscape view 2025-04-09 22:25:38 +02:00
09e05c3d02 feat(c4-arch): added cicd-outerloop dynamic view 2025-04-09 22:25:38 +02:00
abeb011276 feat(c4-developer-scope): documentation of reached developer-landscape view 2025-04-09 22:25:38 +02:00
4cb5718193 refactor(c4-edp): extracted all components from edp as ectending models in single files 2025-04-09 22:25:38 +02:00
174f605106 refactor(c4): changed to models and views folders 2025-04-09 22:25:38 +02:00
884be568ab feat(c4-context): added/changed context of EDFoundry/EDP 2025-04-09 22:25:37 +02:00
d8a5101efb refactor(c4): created c4 folders, divided models and views into seperate files 2025-04-09 22:25:37 +02:00
a0c13075bb Make workflow source more explicit 2025-04-09 22:25:37 +02:00
bf26d48694 Added edpbuilder workflow 2025-04-09 22:25:37 +02:00
92203fdd18 Added argocd to comonent view 2025-04-09 22:25:37 +02:00
d38b710955 Added relation from argo to forgejo 2025-04-09 22:25:37 +02:00
51a312c226 Added Argocd to deployment view 2025-04-09 22:25:37 +02:00
5df918dd43 Added Spark Operator 2025-04-09 22:25:37 +02:00
2155fb281c Fixed deployment view for local deployments 2025-04-09 22:25:37 +02:00
834a4c21ea Added mailhog 2025-04-09 22:25:37 +02:00
50092a8a03 Added Fibonacci App 2025-04-09 22:25:37 +02:00
3bbd29b47a More tweaks to architecture diagrams 2025-04-09 22:25:37 +02:00
bc96681b7d chore(arch): projectmgmt likec4 model separated from arch models by projects
ref: https://likec4.dev/dsl/projects/#_top
2025-04-09 22:25:37 +02:00
f9a7d18df4 Added more models 2025-04-09 22:25:37 +02:00
9d757a7432 chore(arch): added devbox for likec4 cli 2025-04-09 22:25:37 +02:00
7437b22a08 Inital draft of architecture documentation 2025-04-09 22:25:37 +02:00
089273c038 doc(references): ex post added Humanitec annual platform reports https://humanitec.com/whitepapers 2025-04-09 12:37:14 +02:00
19b7917283 doc(references): added CDE white paper from https://cloudomation.com/whitepaper-en/cde-vendors-feature-comparison/ 2025-04-09 12:31:44 +02:00
ea6a32f3f0 feat(c4-arch): added kyverno, fixed developer -> git relation 2025-04-08 10:52:59 +02:00
5126d3bc6d feat(c4-arch): added edp-as-orchestratir view 2025-04-07 18:23:54 +02:00
03c0a41a96 refactor(c4-arch): one again forgejo refactored, to get single components in the developer-context-view 2025-04-07 17:45:35 +02:00
3d43f58742 feat(c4-arch): created edp-as.idp.view. added new elemenst api and garfana. refactored forgejo, it also contains git and collaboration. rmeoved repos from forgejo 2025-04-07 17:01:06 +02:00
e5d387ba3c fix(c4-devdays): removed typos 2025-04-07 15:16:55 +02:00
62faa70b61 feat(c4-devday): slide 1 - developer landscape view 2025-04-07 12:47:34 +02:00
c37cff7665 feat(c4-arch): added cicd-outerloop dynamic view 2025-04-07 00:28:30 +02:00
1192c02435 feat(c4-developer-scope): documentation of reached developer-landscape view 2025-04-06 18:44:15 +02:00
8c78105c07 refactor(c4-edp): extracted all components from edp as ectending models in single files 2025-04-06 18:43:29 +02:00
9a60bf2637 refactor(c4): changed to models and views folders 2025-04-06 17:43:43 +02:00
c57bc7ad18 feat(c4-context): added/changed context of EDFoundry/EDP 2025-04-06 17:13:31 +02:00
f3bf66d9e5 refactor(c4): created c4 folders, divided models and views into seperate files 2025-04-06 15:43:47 +02:00
65afaf047e refactor(techdoc): section technical documentation refactored. WiP - usage of plugin awesome-pages in test 2025-04-03 00:04:22 +02:00
08458fd7a7 Make workflow source more explicit 2025-04-02 18:25:34 +02:00
47c0d84d6e Added edpbuilder workflow 2025-04-02 18:19:51 +02:00
c81132d2d9 Added argocd to comonent view 2025-04-01 14:57:59 +02:00
0f1a0c6fc8 Added relation from argo to forgejo 2025-04-01 14:55:55 +02:00
b35cfd3864 Added Argocd to deployment view 2025-04-01 14:46:17 +02:00
37e8b23c87 Added Spark Operator 2025-04-01 14:38:42 +02:00
cd6234d321 Fixed deployment view for local deployments 2025-04-01 14:19:53 +02:00
6a2e3d4e16 Added mailhog 2025-04-01 13:15:21 +02:00
8dd577d64e Added Fibonacci App 2025-04-01 12:59:05 +02:00
1698d437e6 More tweaks to architecture diagrams 2025-04-01 09:59:22 +02:00
51729f6c84 chore(arch): projectmgmt likec4 model separated from arch models by projects
ref: https://likec4.dev/dsl/projects/#_top
2025-03-31 22:05:01 +02:00
6089a37669 Added more models 2025-03-31 16:27:38 +02:00
a03c971461 chore(arch): added devbox for likec4 cli 2025-03-31 14:43:11 +02:00
c3204dec79 Inital draft of architecture documentation 2025-03-31 14:27:02 +02:00
b623a09875 doc(local-development): added tldr; explanation in the network routing doc 2025-03-12 22:35:52 +00:00
2accc93181 doc(local-development): added host to docker network routing 2025-03-12 17:13:51 +01:00
7700428175 Merge branch 'development' into feature/ipceicis-2285-local-development-enablement 2025-03-12 15:56:29 +01:00
e16689a8fe Added proposed edpbuilder networking images 2025-03-11 08:57:10 +01:00
e0688a01c5 feat(docker-registry-caching-concept): added output from ipceicis-1766 into edp-doc 2025-03-10 14:45:51 +01:00
e8eeeddb4d Merge branch 'development' into feature/ipceicis-2285-local-development-enablement 2025-03-10 13:00:08 +01:00
7e2453b5d6 feat(local-dev): WiP - placeholder for roberts great mnetwork drawings and documentation 2025-03-10 12:45:09 +01:00
9a3f17ec02 feat(mkdocs): enable auto navigation by removing the nac section from mkdocs.yaml 2025-03-10 12:41:34 +01:00
223f873724 feat(mkdocs): enable auto navigation by removing the nac section from mkdocs.yaml 2025-03-10 12:24:46 +01:00
ad8bfcd1b3 grammar fix 2025-03-05 17:19:35 +01:00
f6b88a3d2f Report on the investigation of CNOE Backstage commit history added to the documentation 2025-02-21 18:07:44 +01:00
5410d9c877 Report on the investigation of CNOE Backstage commit history added to the documentation 2025-02-21 18:00:54 +01:00
956067da1f doc(solution-design-architecture): WiP ... added chart from Berlin 21st Jan 25 and corresponding team discussion from Jan 23rd 25 2025-02-04 14:05:11 +01:00
ff3a38e909 Merge remote-tracking branch 'refs/remotes/origin/development' into development 2025-01-23 09:37:52 +01:00
c7a58836a5 chore(devbox) 2025-01-23 09:37:48 +01:00
11da49f966 Merge pull request 'new OpenBao documentation' (#3) from Michal.Wrobel/edp-doc:development into development
Reviewed-on: DevFW-CICD/edp-doc#3
2025-01-15 15:15:54 +00:00
224 changed files with 2806 additions and 129 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
node_modules

View file

@ -1,4 +1,5 @@
{
"peacock.color": "#832561",
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#ab307e",
"activityBar.background": "#ab307e",
@ -17,6 +18,5 @@
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#83256199",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "#832561"
}
}

14
devbox.json Normal file
View file

@ -0,0 +1,14 @@
{
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.0/.schema/devbox.schema.json",
"packages": ["nodejs@latest"],
"shell": {
"init_hook": [
"echo 'Welcome to devbox!' > /dev/null"
],
"scripts": {
"test": [
"echo \"Error: no test specified\" && exit 1"
]
}
}
}

73
devbox.lock Normal file
View file

@ -0,0 +1,73 @@
{
"lockfile_version": "1",
"packages": {
"github:NixOS/nixpkgs/nixpkgs-unstable": {
"resolved": "github:NixOS/nixpkgs/2d9e4457f8e83120c9fdf6f1707ed0bc603e5ac9?lastModified=1741462378&narHash=sha256-ZF3YOjq%2BvTcH51S%2BqWa1oGA9FgmdJ67nTNPG2OIlXDc%3D"
},
"nodejs@latest": {
"last_modified": "2025-03-16T16:17:41Z",
"plugin_version": "0.0.2",
"resolved": "github:NixOS/nixpkgs/8f76cf16b17c51ae0cc8e55488069593f6dab645#nodejs_23",
"source": "devbox-search",
"version": "23.10.0",
"systems": {
"aarch64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/ks94i4365833bykrzg3d3mqxnciygyrn-nodejs-23.10.0-libv8"
}
],
"store_path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0"
},
"aarch64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/kfvlfxx83n2w2fyb8hiz4p4dc165r035-nodejs-23.10.0-libv8"
}
],
"store_path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0"
},
"x86_64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/k5rvmvqyibamfxa7cfzjfd5ldmi38kf3-nodejs-23.10.0-libv8"
}
],
"store_path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0"
},
"x86_64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0",
"default": true
},
{
"name": "libv8",
"path": "/nix/store/wy7ysxmd2ygdc5zpbhf9ripwgvvvnwsd-nodejs-23.10.0-libv8"
}
],
"store_path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0"
}
}
}
}
}

View file

@ -0,0 +1,6 @@
title: Technical doc
arrange:
- concepts
- architecture
- product
- project

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

View file

@ -5,3 +5,5 @@ description: Edge Developver Framework Design Documents
---
This design documentation structure is inspired by the [design of crossplane](https://github.com/crossplane/crossplane/tree/main/design#readme).

View file

@ -0,0 +1,27 @@
---
title: Architecture
weight: 1
description: High level EDP Architecture
---
## Architecture
> This architecture chart was discussed in the Berlin arch workshop Jan. 21st 2025
![alt text](architecture-IMG_20250121_163020.jpg)
## Additional notes
With respect to the meaning of 'Platform as a product' there are following notes to EDP as a product:
* Product items are
1. EDP Foundry
a) oppionated extreme, (aka 'locked down version')
b) 'construction set' ('baukasten') extreme
c) provide documentation
2. all EDP's themsselves
* 'product' in terms of a ciustomer view means two aspects:
* they get it provisionned, i.e. we do the bootstrapping
* they have it in maintenines state, i.w. we do the maintaining (compare to github: there is no github version to the customer!)

View file

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View file

@ -0,0 +1,6 @@
title: Concepts
arrange:
- overview.md
- general
- customer-developer
- edp-developer

View file

@ -0,0 +1,10 @@
title: edgeDeveloper Framework
arrange:
- storyline.md
- introduction.md
- edge-developer-framework.md
- platforming.md
- orchestrators.md
- cnoe.md
- cnoe-showtime.md
- conclusio.md

View file

@ -0,0 +1,3 @@
{
"name": "project-management"
}

View file

@ -6,7 +6,8 @@ description: Next level platforming is orchestrating platforms
## Summary
When defining and setting up platforms next two intrinsic problems arise:
When defining and setting up platforms next two intrinsic problems arise:
1. it is not declarative and automated
2. it is not or least not easily changable
@ -21,7 +22,7 @@ This is something extremely new since late 2023 - the rise of the automation of
It was Humanitec creating a definition of platform architecture, as they needed to defien what they are building with their 'orchestrator':
<img src="./vendor-neutral-idp-final.gif" width="600" alt="https://developer.humanitec.com/introduction/overview/">
![https://developer.humanitec.com/introduction/overview/](./4_orchestrators/vendor-neutral-idp-final.gif)
## Declarative Platform Orchestration
@ -29,16 +30,13 @@ Based on the refence architecture you next can build - or let's say 'orchestrate
https://humanitec.com/reference-architectures
<img src="./platform-architectures.webp" width="600" alt="https://humanitec.com/blog/aws-azure-and-gcp-open-source-reference-architectures-to-start-your-mvp">
![https://humanitec.com/blog/aws-azure-and-gcp-open-source-reference-architectures-to-start-your-mvp](./4_orchestrators/platform-architectures.webp)
> Hint: There is a [slides tool provided by McKinsey](https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures) to set up your own platform deign based on the reference architecture
{{% pageinfo color="info" %}}
### What comes next?
[Next](../cnoe/) we'll see how we are going to do platform orchestration with CNOE!
{{% /pageinfo %}}
> What comes next?
> [Next](./cnoe.md) we'll see how we are going to do platform orchestration with CNOE!
## Addendum
@ -46,6 +44,4 @@ https://humanitec.com/reference-architectures
You remember the [capability mappings from the time before orchestration](../platforming)? Here we have a [similar setup based on Humanitecs platform engineering status ewhite paper](https://humanitec.com/whitepapers/state-of-platform-engineering-report-volume-2):
<img src="./platform-tooling-humanitec-platform-report-2024.PNG" width="600" alt="https://humanitec.com/whitepapers/state-of-platform-engineering-report-volume-2 Whitepaper_ State of Platform Engineering Report.pdf">
![https://humanitec.com/whitepapers/state-of-platform-engineering-report-volume-2 Whitepaper_ State of Platform Engineering Report.pdf](./4_orchestrators/platform-tooling-humanitec-platform-report-2024.PNG)

View file

@ -18,7 +18,7 @@ Let's start with a look into the history of platform engineering. A good startin
They create lots of [beautiful articles and insights](https://humanitec.com/blog), their own [platform products](https://humanitec.com/products/) and [basic concepts for the platform architecture](https://humanitec.com/platform-engineering) (we'll meet this later on!).
<img src="./humanitec-history.png" width="600" alt="https://platformengineering.org/blog/the-story-of-platform-engineering">
<img src="./3_platforming/humanitec-history.png" width="600" alt="https://platformengineering.org/blog/the-story-of-platform-engineering">
### Further nice reference to the raise of platforms
@ -41,7 +41,7 @@ When looking at these 'capabilities', we have CNCF itself:
There is a CNCF working group which provides the definition of [Capabilities of platforms](https://tag-app-delivery.cncf.io/whitepapers/platforms/#capabilities-of-platforms) and shows a first idea of the layered architecture of platforms as **service layer for developers** ("product and application teams"):
<img src="./platforms-def.drawio.png" width="600">
<img src="./3_platforming/platforms-def.drawio.png" width="600">
> Important: As Platform engineer also notice the [platform-eng-maturity-model](https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/)
@ -50,7 +50,7 @@ There is a CNCF working group which provides the definition of [Capabilities of
Or, in another illustration for the platform as a developer service interface, which also defines the **'Platform Engineering Team'** inbetween:
<img src="./platform-self-services.webp" width="600" alt="https://medium.com/@bijit211987/what-is-platform-engineering-and-how-it-reduce-cognitive-load-on-developers-ac7805603925">
<img src="./3_platforming/platform-self-services.webp" width="600" alt="https://medium.com/@bijit211987/what-is-platform-engineering-and-how-it-reduce-cognitive-load-on-developers-ac7805603925">
## How to set up Platforms
@ -77,7 +77,7 @@ Build or buy - this is also in pltaform engineering a tweaked discussion, which
{{% pageinfo color="info" %}}
### What comes next?
[Next](../orchestrators/) we'll see how these concepts got structured!
[Next](./orchestrators.md) we'll see how these concepts got structured!
{{% /pageinfo %}}
## Addendum

View file

@ -1,3 +1,11 @@
---
title: 'Storyline'
linktitle: Conceptual Onboarding
weight: 20
description: How to conceptually onboard onto the Edge Developer Framework (EDF) requirements and the designed solution
---
# Platform 101: Conceptual Onboarding
## Storyline
@ -24,5 +32,3 @@
3. Don't miss to further investigate and truely understand **CNOE solution**
## Architecture

View file

Before

Width:  |  Height:  |  Size: 944 KiB

After

Width:  |  Height:  |  Size: 944 KiB

View file

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View file

@ -0,0 +1,7 @@
---
title: General Concepts
weight: 1
description: The underlying platforming concepts of the Edge Developer Framework (EDF) solution, i.e. the problem domain
---
The underlying platforming concepts of the Edge Developer Framework (EDF) solution, i.e. the problem domain

View file

@ -1,7 +1,8 @@
---
title: Concepts
title: Overview
weight: 1
description: The underlying platforming concepts of the Edge Developer Framework (EDF) solution, i.e. the problem domain
---
The underlying platforming concepts of the Edge Developer Framework (EDF) solution, i.e. the problem domain

View file

@ -1,6 +1,7 @@
---
title: Solution
title: Overview
weight: 2
description: "The implemented platforming solutions of EDF, i.e. the solution domain. The documentation of all project output: Design, Building blocks, results, show cases, artifacts and so on"
---
The implemented platforming solutions of EDF, i.e. the solution domain. The documentation of all project output: Design, Building blocks, results, show cases, artifacts and so on

View file

@ -0,0 +1,163 @@
## CNOE Backstage commit history
This page describes the features and changes added to CNOE Backstage, along with a brief summary of what was done in each commit.
Commits and changes that are important for implementation of the EDP Backstage will be marked with <span style="color:red"> red </span> color and commits
that may be relevant, but not in priority, will be marked with <span style="color:green"> green </span> color. Commits are listed from newest to oldest.
### <span style="color:green">№19. Commit name: Imported roadiehq http request plugin </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/135c0cb26f3e004a27a11edb6a4779035aff9805)<br>
This commit adds the `@roadiehq/scaffolder-backend-module-http-request` plugin. This plugin provides Scaffolder actions
that allow sending web requests within Backstage templates.
[Description and usage examples](https://roadie.io/backstage/plugins/scaffolder-http-requests/)
[RoadieHQ's Backstage plugins repository](https://github.com/RoadieHQ/roadie-backstage-plugins)
#### Code changes:
The dependency was added to `package.json`:
```
"@roadiehq/scaffolder-backend-module-http-request": "^4.3.5"
```
This means the project now includes this module and can import it in the code.
The module was registered in `packages/backend/src/index.ts`:
```
backend.add(
import('@roadiehq/scaffolder-backend-module-http-request/new-backend'),
);
```
This integrates the module into the Backstage backend.
<span style="color:green">This commit introduces functionality that may be useful for extending our Backstage templates with web request capabilities </span>
### №18. Commit name: add mkdoc to docker image
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/9232d633b2698fffa6d0a73b715e06640d170162)<br>
In this commit, several changes were made to the Dockerfile:
1. Mkdoc was added to the Dockerfile as part of the build process, enabling seamless integration for generating and managing project documentation during the containerization process. [Information about mkdocs](https://www.mkdocs.org/)
2. Refactoring of the Dockerfile. Optimization of the build structure
### №17. Commit name: move argo workflows to ci/cd tab. remove unused components
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/e8b84831e99f13033beb11530149fbb24d846f29)<br>
In this commit no new functionality was added. Refactoring commit
### №16. Commit name: Updated argoworkflows to query workflows based on component annotation
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/5f3a54f571ea6f210ebb3418611e1ac4e6e3e7c5)<br>
This commit is mostly refactoring
1. Refined the structure of the `argoWorkflowsPlugin` by updating `createPlugin` and `createRoutableExtension` definitions. <br>Files changed: `plugins/argo-workflows/src/plugin.ts` and `plugins/argo-workflows/src/api/index.ts`
2. Reformatted and standardized code style
### <span style="color:green">№15. Commit name: Extended plugin to support more k8s objects </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/2cde0a09caf55fe907463b0b8b4a6321482b322e)<br>
This commit contains improvements to the plugin for working with k8s. All changes are in file `packages/backend/src/plugins/k8s-apply.ts`
#### Changes:
1. <b>Manifest Handling Optimization</b>. Simplified writing manifest to file based on input type (string or object).
2. <b>Support for Multiple Manifests</b>. Writes each manifest from a list to a separate file with a unique name.
3. <b>Kubernetes Config Generation</b>. Adds logic for creating Kubernetes config with server, certificate, and token details.
4. <b>kubectl Command Execution</b>. Executes kubectl apply or kubectl create for each manifest in the list.
5. <b>Error Handling</b>. Throws an error if a valid cluster name is not specified.
### №14. Commit name: Fix for k8s-apply plugin config issue
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/6329ea80b1b0bb2e22f78333ae6462f147e1f4a1)<br>
This commit contains fixes to the plugin for working with k8s. All changes are in file `packages/backend/src/plugins/k8s-apply.ts`
### <span style="color:red"> №13. Commit name: bump backstage version to 1.28.4 </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/db5d40f2848aaa8ca22a15fbdb7a06cfd986a162)<br>
In this commit, the Backstage version for the build was updated. Along with this, the dependency versions in the
package.json files for Backstage, the Backstage backend, and for the custom CNOE plugins (appache-spark, argo-workflows, cnoe-ui, terraform-backend, and terraform) were also updated.
Additionally, in some places, the plugin imports were replaced with the current ones, such as in the file `packages/app/src/App.tsx`.
<span style="color:red">This commit is important, because here is an example of the update of the backstage version and actualizing of the dependencies </span>
### №12. Commit name: fix typos
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/6f1e1764859ad29c042b9ed015cc71cd8dcc6543)<br>
This commit contains only fixes of the typos.
### №11. Commit name: add actions for PRs
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/2361b299f2291f55062fde61afd06dbf9542fbef)<br>
Added `.github/workflows/pr.yaml` defining actions to run on pull request events. The workflow includes steps for checking out the repository, setting up Node.js, installing dependencies, and running TypeScript checks.
### №10. Commit name: fix tsc errors
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/d328b6986b4721b31c606e1da3ba93afce1864b7)<br>
Bugfixes and improvements of the logging and tests for the custom `terraform-backend` plugin of the CNOE.
### №9. Commit name: Add terraform plugin into backstage-app
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/10b78fca7a474b24b5e8124697a01bdf76b152ca)<br>
In this commit, Terraform was integrated into CNOE Backstage. To achieve this, two custom plugins, `terraform` and `terraform-backend`, were created in the `/plugins` directory.
#### The following steps were taken to integrate these plugins into Backstage:
1. The Terraform plugin was added as an internal dependency (`"@internal/plugin-terraform"`) in the project's dependencies file (`packages/app/package.json`).
2. In `packages/app/src/App.tsx`, the Terraform Page component was imported from the plugin, and a route for this page was created with the path `/terraform`.
3. In the entity page component (`packages/app/src/components/catalog/EntityPage.tsx`), the Terraform plugin component was imported and integrated.
4. The Terraform backend plugin (`"@internal/backstage-plugin-terraform-backend"`) was added as an internal dependency in the Backstage backend dependencies file (`packages/backend/package.json`).
5. In the Backstage backend creation file (`packages/backend/src/index.ts`), the plugin was imported and added to the backend object.
### <span style="color:red"> №8. Commit name: upgrade to backstage 1.26.5 </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/c2ff2abd11c6f719c51b50d04878b108ba70d40e)<br>
The name of this commit is misleading because, in addition to updating the Backstage version and actualizing dependency files and imports, several other changes were made.
#### Changes besides version update:
1. Fully rewritten Backstage backend creation (`packages/backend/src/index.ts`). After the changes, the backend is now created using the createBackend function from the `@backstage/backend-defaults` plugin.
2. <span style="color:red"> Keycloak OIDC </span> <br>The authentication mechanism has been rewritten using Keycloak OIDC (<span style="color:red">file location: packages/backend/src/plugins/auth.ts</span>). The object responsible for authentication is named `authModuleKeycloakOIDCProvider`.
3. <span style="color:red"> Custom CNOE Scaffolder Actions (for Gitea and ArgoCD) </span> <br> Mechanism for creating and adding custom CNOE Scaffolder Actions, which are used as actions for Backstage templates, has been rewritten (<span style="color:red">file location: packages/backend/src/plugins/scaffolder.ts</span>)
<span style="color:red">This commit is important, because here we can find locations of the CNOE custom actions for templates and implemintation of the keycloak auth for Backstage </span>
### №7. Commit name: update readme
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/b8e4f08914af17a48ed6b8b83a3621a9f4b4181d)<br>
In this commit only README was updated
### <span style="color:green"> №6. Commit name: use cnoe theme </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/12eef8100d2521a6f665ef603ebe8196b12c8e96)<br>
In this commit design of user interface was updated and integrated into the Backstage app
#### Changes:
1. Interface styles were update in plugin cnoe-ui in files: `plugins/cnoe-ui/src/components/themes/light-theme.ts` and `plugins/cnoe-ui/src/components/themes/dark-theme.ts`
2. UI style is connected to Backstage in file `packages/app/src/App.tsx`
3. Routs to CNOE logo for interface are created in file `packages/app/src/components/Root/Root.tsx`
<span style="color:green"> This commit could be intersting for the team, because here we can see how to connect custom ui to backstage and how to remove CNOE logo </span>
### <span style="color:red"> №5. Commit name: Add workflow to automate backstage builds </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/9ee3514e51c1a354b7fe85a90117faf8328bfa0b)<br>
In this commit were added github workflow for building backstage image and Dockerfile (files: `.github/workflows/build-and-push.yaml` and `Dockerfile`)
### <span style="color:red"> №4. Commit name: Include plugin scaffolder actions directly in src </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/139a3674c035bfe9f486f50aa8cb3deee8b25fd5)<br>
#### Changes:
1. Test Backstage templates were created
2. `k8s-apply` plugin were added to backend of the Backstage (file: `packages/backend/src/plugins/k8s-apply.ts`)
3. `sanitize` plugin were added to backend of the Backstage (file: `packages/backend/src/plugins/sanitize.ts`)
4. `scaffolder` plugin were added to backend of the Backstage (file: `packages/backend/src/plugins/scaffolder.ts`)
5. `verify` plugin were added to backend of the Backstage (file: `packages/backend/src/plugins/verify.ts`
<span style="color:red">This commit is important, because we will need scaffolder plugin in EDP backstage for using actions in backstage templates</span>
### <span style="color:red"> №3. Commit name: working integrations </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/4b61eaef5920da8b0110af8e6f2997354b8af63a)<br>
#### Changes:
1. Created custom CNOE plugin for integration with apache-spark (`/plugins/appache-spark`)
2. Created custom CNOE plugin for integration with apache-spark (`/plugins/argo-workflows`)
3. Created custom CNOE plugin for integration with apache-spark (`/plugins/cnoe-ui`)
4. In Backstage backend in file with custom gitea actions (<span style="color:red"> packages/backend/src/plugins/gitea-actions.ts </span>) were commented out: <span style="color:green">checkGiteaContentUrl, checkDurationLimit and checkAvailabilityGiteaRepository </span>
5. Integration with ArgoCD was added into backend of the Backstage as a backend plugin (<span style="color:red"> packages/backend/src/plugins/argocd.ts</span>)
6. In `packages/app/src/App.tsx` `argo-workflows plugin` and `apache-spark` plugin were integrated into Backstage and routs for their pages were created
7. To the backstage component for the catalog items (`packages/app/src/components/catalog/EntityPage.tsx`) were integrated components from `argo-wrkflows` plugin. <br> <span style="color:red"> And was added component EntityArgoCDOverviewCard from @roadiehq/backstage-plugin-argo-cd which is a visual component for showing ArgoCD status of the catalog items, which are registered in ArgoCD.</span> [Link to plugin's repo](https://github.com/RoadieHQ/roadie-backstage-plugins/tree/main/plugins/frontend/backstage-plugin-argo-cd).
8. New plugins were added to the dependencies
<span style="color:red">This commit is important, because here we can find an implementation of the ArgoCD plugin for the Backstage backend and how it's integrated to a backstage. And here we can see integration of the component for showing ArgoCD status from @roadiehq/backstage-plugin-argo-cd plugin
### <span style="color:red"> №2. Commit name: working gitea scaffolding </span>
[Link to a commit](https://github.com/cnoe-io/backstage-app/commit/fe842bed997f317979da7fd42093bc62b3e491b7)<br>
#### Changes:
1. Implemented integration with gitea (<span style="color:red">file: packages/backend/src/plugins/gitea-actions.ts</span>)
2. Implemented integration with the kubernetes (<span style="color:red">file: packages/backend/src/plugins/kubernetes.ts</span>)
<span style="color:red">This commit is important, because here was implemented gitea and kubernetes integration that should be ported to EDP Backstage</span>
### №1. Commit name: Initial commit

View file

@ -0,0 +1,103 @@
---
title: Backstage Update Tutorial
---
The first Backstage update was performed as described in the ticket https://jira.telekom-mms.com/browse/IPCEICIS-2299 from version 1.28 to version 1.36.1.
This document provides a detailed guide on the process to update Backstage locally on your machine from version 1.36.1 to 1.38.1.
Later updates can be performed accordingly. (The fixing of deprecated imports should not be necessary, again.)
## Table of Contents
1. [Prerequisites](#prerequisites)
2. [Setting Up Backstage](#setting-up-backstage)
3. [Updating Backstage](#updating-backstage)
4. [Fix deprecated import](#fix-deprecated-import)
5. [Running Backstage](#running-backstage)
## Prerequisites <a name="prerequisites"></a>
Before you start, make sure you have the following installed on your machine:
1. **Node.js**: Backstage requires Node.js. You can download it from the [Node.js website](https://nodejs.org/).
2. **Yarn**: Backstage uses Yarn as its package manager.
3. **Git**
4. **Docker**
## Setting Up Backstage <a name="setting-up-backstage"></a>
To download the latest version of our Backstage-EDP app, use git to clone it from the OSC repository at https://forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/DevFW-CICD/backstage-edp.git.
Make sure yarn ist installed locally. If it hasn't been installed yet, run in the project path:
```bash
yarn install
```
## Updating Backstage <a name="updating-backstage"></a>
In the project path run:
```bash
yarn backstage-cli versions:bump
```
This will update all relevant components to the newest versions.
## Fix deprecated import <a name="fix-deprecated-import"></a>
In a text editor of your choice open the file <I>'/backstage-edp/packages/backend/src/plugins/proxy.ts'</I> and implement the two following changes.
### Update import
First (due to changes in the library) replace the deprecated import
```typescript
import { createRouter } from '@backstage/plugin-proxy-backend';
```
with the following import:
```typescript
import { createRouter } from '@roadiehq/backstage-plugin-argo-cd-backend';
```
### Update method call createRouter()
Secondly (due to a changed signature) replace the <B>old</B> call of method createRouter()
```typescript
return await createRouter({
logger: env.logger,
config: env.config,
discovery: env.discovery
});
```
with the following <B>new</B> method call:
```typescript
return await createRouter({
logger: env.logger,
config: env.config
});
```
## Running backstage <a name="running-backstage"></a>
After completing all updates and fixes, run backstage to verify everything was updated correctly.
In the project path run:
```bash
docker build --no-cache -t backstage-cnoe .
```
Start the backend from a console:
```bash
yarn run start-backend
```
Start the frontend from a console:
```bash
yarn run start
```
The backstage frontend should now open in your browser.

Some files were not shown because too many files have changed in this diff Show more