Compare commits
77 commits
developmen
...
developmen
Author | SHA1 | Date | |
---|---|---|---|
4ed3dc8d2a | |||
97a09ce1b3 | |||
1bf97759d6 | |||
aaaa5a100f | |||
c8695eb403 | |||
75a2ad1cfa | |||
70676f0bf8 | |||
39b9d4935f | |||
f882aa4159 | |||
2d9276f73e | |||
d3e51c3777 | |||
1c3d72ebb6 | |||
09e05c3d02 | |||
abeb011276 | |||
4cb5718193 | |||
174f605106 | |||
884be568ab | |||
d8a5101efb | |||
a0c13075bb | |||
bf26d48694 | |||
92203fdd18 | |||
d38b710955 | |||
51a312c226 | |||
5df918dd43 | |||
2155fb281c | |||
834a4c21ea | |||
50092a8a03 | |||
3bbd29b47a | |||
bc96681b7d | |||
f9a7d18df4 | |||
9d757a7432 | |||
7437b22a08 | |||
089273c038 | |||
19b7917283 | |||
ea6a32f3f0 | |||
5126d3bc6d | |||
03c0a41a96 | |||
3d43f58742 | |||
e5d387ba3c | |||
62faa70b61 | |||
c37cff7665 | |||
1192c02435 | |||
8c78105c07 | |||
9a60bf2637 | |||
c57bc7ad18 | |||
f3bf66d9e5 | |||
65afaf047e | |||
08458fd7a7 | |||
47c0d84d6e | |||
c81132d2d9 | |||
0f1a0c6fc8 | |||
b35cfd3864 | |||
37e8b23c87 | |||
cd6234d321 | |||
6a2e3d4e16 | |||
8dd577d64e | |||
1698d437e6 | |||
51729f6c84 | |||
6089a37669 | |||
a03c971461 | |||
c3204dec79 | |||
b623a09875 | |||
2accc93181 | |||
7700428175 | |||
e16689a8fe | |||
e0688a01c5 | |||
e8eeeddb4d | |||
7e2453b5d6 | |||
9a3f17ec02 | |||
223f873724 | |||
ad8bfcd1b3 | |||
f6b88a3d2f | |||
5410d9c877 | |||
956067da1f | |||
ff3a38e909 | |||
c7a58836a5 | |||
11da49f966 |
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
node_modules
|
4
.vscode/settings.json
vendored
|
@ -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
|
@ -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
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
6
docs/technical-documentation/.pages
Normal file
|
@ -0,0 +1,6 @@
|
|||
title: Technical doc
|
||||
arrange:
|
||||
- concepts
|
||||
- architecture
|
||||
- product
|
||||
- project
|
After Width: | Height: | Size: 626 KiB |
|
@ -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).
|
||||
|
||||
|
27
docs/technical-documentation/architecture/highlevelarch.md
Normal 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
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
## 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!)
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 932 KiB After Width: | Height: | Size: 932 KiB |
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 182 KiB |
6
docs/technical-documentation/concepts/.pages
Normal file
|
@ -0,0 +1,6 @@
|
|||
title: Concepts
|
||||
arrange:
|
||||
- overview.md
|
||||
- general
|
||||
- customer-developer
|
||||
- edp-developer
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
10
docs/technical-documentation/concepts/edp-developer/.pages
Normal 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
|
Before Width: | Height: | Size: 904 KiB After Width: | Height: | Size: 904 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 600 KiB After Width: | Height: | Size: 600 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 723 KiB After Width: | Height: | Size: 723 KiB |
Before Width: | Height: | Size: 397 KiB After Width: | Height: | Size: 397 KiB |
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB |
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB |
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 243 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 275 KiB |
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 397 KiB After Width: | Height: | Size: 397 KiB |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 372 KiB After Width: | Height: | Size: 372 KiB |
Before Width: | Height: | Size: 766 KiB After Width: | Height: | Size: 766 KiB |
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB |
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"name": "project-management"
|
||||
}
|
|
@ -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/">
|
||||

|
||||
|
||||
## 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">
|
||||
|
||||

|
||||
|
||||
> 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">
|
||||
|
||||
|
||||

|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 944 KiB After Width: | Height: | Size: 944 KiB |
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 732 KiB After Width: | Height: | Size: 732 KiB |
Before Width: | Height: | Size: 554 KiB After Width: | Height: | Size: 554 KiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 364 KiB After Width: | Height: | Size: 364 KiB |
Before Width: | Height: | Size: 208 KiB After Width: | Height: | Size: 208 KiB |
7
docs/technical-documentation/concepts/general/_index.md
Normal 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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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.
|