Merge remote-tracking branch 'refs/remotes/edp/main'
All checks were successful
ci / build (push) Successful in 55s

This commit is contained in:
Stephan Lo 2025-12-19 16:36:48 +01:00
commit 9bcaa73747
14 changed files with 41 additions and 220 deletions

View file

@ -1,84 +0,0 @@
# Review
1) 09h35 Marco
business plan
issue: value of software, depreciation
FTE: around 100 overall, 3 full teams of developers
tax discussion
10h04 Discussions
2) 10h10 Julius
3) 10h27 Sebastiano - DevDay bis 10h40
schriften bei votes größer - fragen sollten lesbar sein!
devops is dead .... claim
4) Stephan bis 10h55
5) christopher 10h58
6) robert 11:11
* app
* devops-pipelines
* edp in osc deployed
7) michal has nothing to show
8) evgenii wants to finish -- 11:30
9) patrick 11:32
====
projekt management meeting
workshops, externe teams
customer episodes
wem was wo prinzipien
|
Rollen, Personas
weiter die perspektive des nutzers bekommen, inneres verlangen eines developers, mein anspruch an das EDP
(bekommen wir das hin, möchte ic damit arbeiten)
level 2 erklimmen
workshops halten
senioren bekommen
level1: source code structure, artefakte builden, revision control, branching model, e.g. pull requesting, tests der software, local debugging
level2: automatisierung des artefakte-builds, versionsmgmt, milestones, tickets, issues, compliances an security
level3: deployment auf stages, feedback pipeline verhalten
level4: feedback app-verhalten (logs, metrics, alerts) + development loop
level5: 3rd level support in production
level1: coding
source code structure, artefakte builden, revision control, branching model, e.g. pull requesting, tests der software, local debugging
level2: reaching the outdside world with output
automatisierung des artefakte-builds, versionsmgmt, milestones, tickets, issues, compliances an security
level3: run the app anywhere
deployment auf stages, feedback pipeline verhalten
level4: monitoring the app
feedback app-verhalten (logs, metrics, alerts) + development loop
level5: support
3rd level support in production (or any outer stage)
sprint 4
leveraging säule
eigene app säule
chore säule

View file

@ -1,6 +0,0 @@
---
title: important links
weight: 20
---
* Gardener login to Edge and orca cluster: IPCEICIS-6222

View file

@ -1,40 +0,0 @@
---
title: Architecture session
weight: 20
---
## Platform Generics
* https://tag-app-delivery.cncf.io/whitepapers/platforms/#capabilities-of-platforms
* https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/
* https://humanitec.com/blog/wtf-internal-developer-platform-vs-internal-developer-portal-vs-paas
## reference architecture + Portfolio
* https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures
* https://humanitec.com/reference-architectures
* https://www.youtube.com/watch?v=AimSwK8Mw-U
## Platform Portfolio
### Viktor Farcic
* https://technologyconversations.com/
* https://technologyconversations.com/2024/01/08/the-best-devops-tools-platforms-and-services-in-2024/
### Internal devloper platform
* https://internaldeveloperplatform.org/core-components/
### Workflow / CI/CD
* https://cnoe.io/blog/optimizing-data-quality-in-dev-portals

View file

@ -10,7 +10,7 @@ description: >
EdgeConnect is a custom cloud provided by the project as a whole. It has several goals, including retaining sovereign control over cloud compute resources, and supporting sustainability-aware infrastructure choices. EdgeConnect is a custom cloud provided by the project as a whole. It has several goals, including retaining sovereign control over cloud compute resources, and supporting sustainability-aware infrastructure choices.
While EdgeConnect is managed outwith our Edge Developer Platform, we have produced a number of tools to facilitate its use and broaden its applicability. These are an [SDK](/docs/components/deployments/edgeconnect/edgeconnect-sdk/), command-line [client](/docs/components/deployments/edgeconnect/edgeconnect-client/), bespoke [provider](/docs/components/orchestration/infrastructure/provider/) for [Terraform](https://developer.hashicorp.com/terraform), and tailor-made [Forgejo Actions](/docs/edgeconnect/edgeconnect-actions/). While EdgeConnect is managed outwith our Edge Developer Platform, we have produced a number of tools to facilitate its use and broaden its applicability. These are an [SDK](/docs/edgeconnect/edgeconnect-sdk/), command-line [client](/docs/edgeconnect/edgeconnect-client/), bespoke [provider](/docs/edgeconnect/terraform-provider/) for [Terraform](https://developer.hashicorp.com/terraform), and tailor-made [Forgejo Actions](/docs/edgeconnect/edgeconnect-actions/).
{{< likec4-view view="edgeconnect-context" project="architecture" title="EdgeConnect Context View: Users, Tooling and Control Plane" >}} {{< likec4-view view="edgeconnect-context" project="architecture" title="EdgeConnect Context View: Users, Tooling and Control Plane" >}}
@ -24,8 +24,8 @@ EDP appears here as an external consumer: it can automate provisioning and deplo
* Managed by the broader project, not specifically by EDP * Managed by the broader project, not specifically by EDP
* Focus on sovereignty and sustainability * Focus on sovereignty and sustainability
* Utilities such as [CLI](/docs/components/deployments/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/components/orchestration/infrastructure/provider/) encourage widespread platform use * Utilities such as [CLI](/docs/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/edgeconnect/terraform-provider/) encourage widespread platform use
* [EDP](/docs/edp/) products such as [Forgejo](/docs/components/forgejo/) are hosted on [OTC](/docs/components/deployments/otc/) rather than EdgeConnect * [EDP](/docs/edp/) products such as [Forgejo](/docs/edp/forgejo/) are hosted on [OTC](/docs/edp/deployment/otc/) rather than EdgeConnect
## Purpose in EDP ## Purpose in EDP

View file

@ -8,7 +8,7 @@ description: >
## Overview ## Overview
The EdgeConnect Client is a command-line tool for managing EdgeConnect applications and instances. It is built using our Golang [SDK](/docs/components/deployments/edgeconnect/edgeconnect-sdk/), and supports functionality to create, destroy, describe and list various resources. The EdgeConnect Client is a command-line tool for managing EdgeConnect applications and instances. It is built using our Golang [SDK](/docs/edgeconnect/edgeconnect-sdk/), and supports functionality to create, destroy, describe and list various resources.
The tool provides both imperative commands (for direct resource management) and declarative workflows (using YAML configuration files) to deploy applications across multiple edge cloudlets. It supports different EdgeConnect deployment environments through an API version selector. The tool provides both imperative commands (for direct resource management) and declarative workflows (using YAML configuration files) to deploy applications across multiple edge cloudlets. It supports different EdgeConnect deployment environments through an API version selector.
@ -240,7 +240,7 @@ spec:
## Additional Resources ## Additional Resources
* [EdgeConnect SDK Documentation](/docs/components/deployments/edgeconnect/edgeconnect-sdk/) * [EdgeConnect SDK Documentation](/docs/edgeconnect/edgeconnect-sdk/)
* **Edge Cloud**: [Console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) | [API Docs](https://swagger.edge.platform.mg3.mdb.osc.live/) * **Edge Cloud**: [Console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) | [API Docs](https://swagger.edge.platform.mg3.mdb.osc.live/)
* **Orca Cloud**: [Console](https://hub.apps.orca.platform.mg3.mdb.osc.live/) | [API Docs](https://swagger.orca.platform.mg3.mdb.osc.live/) * **Orca Cloud**: [Console](https://hub.apps.orca.platform.mg3.mdb.osc.live/) | [API Docs](https://swagger.orca.platform.mg3.mdb.osc.live/)
* [Source Code Repository](https://edp.buildth.ing/DevFW-CICD/edge-connect-client) * [Source Code Repository](https://edp.buildth.ing/DevFW-CICD/edge-connect-client)

View file

@ -8,7 +8,7 @@ description: >
## Overview ## Overview
The EdgeConnect SDK is a Go library which provides a simple method for interacting with Edge Connect within programs. It is designed to be used by other tools, such as the [EdgeConnect Client](/docs/components/deployments/edgeconnect/edgeconnect-client/) or [Terraform provider](/docs/components/orchestration/infrastructure/provider/), The EdgeConnect SDK is a Go library which provides a simple method for interacting with Edge Connect within programs. It is designed to be used by other tools, such as the [EdgeConnect Client](/docs/edgeconnect/edgeconnect-client/) or [Terraform provider](/docs/edgeconnect/terraform-provider/),
## Key Features ## Key Features
@ -18,7 +18,7 @@ The EdgeConnect SDK is a Go library which provides a simple method for interacti
## Purpose in EDP ## Purpose in EDP
No system can be considered useful unless it is actually, in practice, used. While the Edge Connect [console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) and [API](https://swagger.edge.platform.mg3.mdb.osc.live/) are essential tools to allow the platform to be used by developers, there are numerous use cases for interaction that is automated but simpler to use than an API. These include a [command-line tool](/docs/components/deployments/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/components/orchestration/infrastructure/provider/). No system can be considered useful unless it is actually, in practice, used. While the Edge Connect [console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) and [API](https://swagger.edge.platform.mg3.mdb.osc.live/) are essential tools to allow the platform to be used by developers, there are numerous use cases for interaction that is automated but simpler to use than an API. These include a [command-line tool](/docs/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/edgeconnect/terraform-provider/).
While each such tool could simply independently wrap existing endpoints, this is generally too low-level for sustainable development. It would involve extensive boilerplate code in each such package, plus small changes to API endpoints or error handling may require constant rework. While each such tool could simply independently wrap existing endpoints, this is generally too low-level for sustainable development. It would involve extensive boilerplate code in each such package, plus small changes to API endpoints or error handling may require constant rework.
@ -51,7 +51,7 @@ To avoid this, the Edge Connect SDK aims to provide a common library for interac
## Usage Examples ## Usage Examples
See [README](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk#examples) for simple code examples, or repositories for [EdgeConnect Client](/docs/components/deployments/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/components/orchestration/infrastructure/provider/) for full projects relying on it. See [README](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk#examples) for simple code examples, or repositories for [EdgeConnect Client](/docs/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/edgeconnect/terraform-provider/) for full projects relying on it.
## Troubleshooting ## Troubleshooting

View file

@ -22,7 +22,7 @@ Interacting with infrastructure is a complex process, with many parameters and c
Instead, automations are possible through APIs and SDKs. Working directly with an API (e.g. via `curl`) inevitably tends to involve large amounts of boilerplate code to manage authentication, rarely-changing configuration such as region/tenant selection, and more. When one resource (say, a web server) must interact with another (say, a DNS record), the cross-references further increase this complexity. Instead, automations are possible through APIs and SDKs. Working directly with an API (e.g. via `curl`) inevitably tends to involve large amounts of boilerplate code to manage authentication, rarely-changing configuration such as region/tenant selection, and more. When one resource (say, a web server) must interact with another (say, a DNS record), the cross-references further increase this complexity.
An SDK mitigates this complexity when coding software, by providing library functions which interact with the API in abstracted ways which require a minimum of necessary information. Our SDK for Edge Connect is described in a [separate section](/docs/components/deployments/edgeconnect/edgeconnect-sdk/). An SDK mitigates this complexity when coding software, by providing library functions which interact with the API in abstracted ways which require a minimum of necessary information. Our SDK for Edge Connect is described in a [separate section](/docs/edgeconnect/edgeconnect-sdk/).
However, when simply wanting to deploy infrastructure in isolation - say, updating the status of a Kubernetes or App resource after a change in configuration - an SDK is still an overly complicated tool. However, when simply wanting to deploy infrastructure in isolation - say, updating the status of a Kubernetes or App resource after a change in configuration - an SDK is still an overly complicated tool.

View file

@ -6,17 +6,6 @@ description: >
Platform-level component provisioning via Stacks Platform-level component provisioning via Stacks
--- ---
{{% alert title="Draft" color="" %}}
**Editorial Status**: This page is currently being developed.
* **Jira Ticket**: [TICKET-6729](https://jira.telekom-mms.com/browse/IPCEICIS-6729)
* **Assignee**: Stephan
* **Status**: Waiting for Review
* **Last Updated**: 2025-11-30
* **TODO**:
* [ ] Review and finalize content
{{% /alert %}}
## Overview ## Overview
The `stacks` and `stacks-instances` repositories form the core of a GitOps-based system for provisioning Edge Developer Platforms (EDP). They implement a template-instance pattern that enables the deployment of reusable platform components across different environments. The concept of "stacks" originates from the CNOE.io project (Cloud Native Operational Excellence), which can be traced through the evolutionary development from `edpbuilder` (derived from CNOE.io's `EDPbuilder`) to `infra-deploy`. The `stacks` and `stacks-instances` repositories form the core of a GitOps-based system for provisioning Edge Developer Platforms (EDP). They implement a template-instance pattern that enables the deployment of reusable platform components across different environments. The concept of "stacks" originates from the CNOE.io project (Cloud Native Operational Excellence), which can be traced through the evolutionary development from `edpbuilder` (derived from CNOE.io's `EDPbuilder`) to `infra-deploy`.
@ -117,7 +106,7 @@ A 'stack' is the declarative description for the platform provisionning in an ED
## Repository ## Repository
**Code**: **Code**:
* [Stacks Templates Repo](https://edp.buildth.ing/DevFW-CICD/stacks) * [Stacks Templates Repo](https://edp.buildth.ing/DevFW-CICD/stacks)
* [Stacks Instances Repo, used for ArgoCD Gitops](https://edp.buildth.ing/DevFW-CICD/stacks-instances) * [Stacks Instances Repo, used for ArgoCD Gitops](https://edp.buildth.ing/DevFW-CICD/stacks-instances)
* [EDP Stacks Deployment mechanism](https://edp.buildth.ing/DevFW/infra-deploy) * [EDP Stacks Deployment mechanism](https://edp.buildth.ing/DevFW/infra-deploy)
@ -262,7 +251,7 @@ Terragrunt Stacks provision:
The script `scripts/edp-install.sh` executes the following steps: The script `scripts/edp-install.sh` executes the following steps:
1. **Template Hydration**: 1. **Template Hydration**:
- Checkout of the `stacks` repository - Checkout of the `stacks` repository
- Execution of Gomplate to resolve template variables - Execution of Gomplate to resolve template variables
- Generation of environment-specific manifests - Generation of environment-specific manifests
@ -508,7 +497,7 @@ So imagine, you want to to the stacks 'core,observability' on your local machine
kind delete clusters --all kind delete clusters --all
./scripts/ensure-kind-cluster.sh -r ./scripts/ensure-kind-cluster.sh -r
# provide some emnv vars # provide some emnv vars
export TERRAFORM=/bin/bash export TERRAFORM=/bin/bash
export LOADBALANCER_ID=ABC export LOADBALANCER_ID=ABC
export DOMAIN=ABC export DOMAIN=ABC

View file

@ -5,11 +5,9 @@ weight: 10
description: GitHub Actions-compatible CI/CD automation description: GitHub Actions-compatible CI/CD automation
--- ---
## Overview ## Overview
Forgejo Actions is a built-in CI/CD automation system that enables developers to define and execute workflows directly within their Forgejo repositories. As a continuous integration and continuous deployment platform, Forgejo Actions automates software development tasks such as building, testing, packaging, and deploying applications whenever specific events occur in your repository. [Forgejo Actions](https://forgejo.org/docs/next/user/actions/reference/) is a built-in CI/CD automation system that enables developers to define and execute workflows directly within their Forgejo repositories. As a continuous integration and continuous deployment platform, Forgejo Actions automates software development tasks such as building, testing, packaging, and deploying applications whenever specific events occur in your repository.
Forgejo Actions provides [GitHub Actions similarity](https://forgejo.org/docs/latest/user/actions/github-actions/), allowing teams to easily adapt existing GitHub Actions workflows and marketplace actions with minimal or no modifications. This compatibility significantly reduces migration effort for teams transitioning from GitHub to Forgejo, while maintaining familiar syntax and workflow patterns. Forgejo Actions provides [GitHub Actions similarity](https://forgejo.org/docs/latest/user/actions/github-actions/), allowing teams to easily adapt existing GitHub Actions workflows and marketplace actions with minimal or no modifications. This compatibility significantly reduces migration effort for teams transitioning from GitHub to Forgejo, while maintaining familiar syntax and workflow patterns.
@ -35,7 +33,7 @@ Since Forgejo Actions is natively integrated into Forgejo, EDP provides this cri
### Prerequisites ### Prerequisites
* Installed Forgejo * Installed Forgejo
* Installed Forgejo runner (see [Runner Installation Quick Start](/docs/components/forgejo/actions/runner/#quick-start)) * Installed Forgejo runner (see [Runner Installation Quick Start](/docs/edp/forgejo/actions/runners/#quick-start))
### Quick Start ### Quick Start
@ -125,10 +123,10 @@ jobs:
## Status ## Status
**Maturity**: [Production / Beta / Experimental] **Maturity**: Production
## Additional Resources ## Additional Resources
* [Link to external documentation] * [Forgejo Actions](https://forgejo.org/docs/next/user/actions/reference/)
* [Link to community resources] * [GitHub Actions](https://github.com/features/actions)
* [Link to related components] * [GitHub Actions similarity](https://forgejo.org/docs/latest/user/actions/github-actions/)

View file

@ -18,9 +18,9 @@ This document explores different runner architectures, examining their security
## Key Features ## Key Features
* [Feature 1] * Consistent environment for Forgejo Actions
* [Feature 2] * Primary location to execute code e.g. deployments
* [Feature 3] * Good [security practices](/docs/edp/forgejo/actions/runners/garm/) essential due to broad remit
## Purpose in EDP ## Purpose in EDP
@ -155,11 +155,11 @@ Alternatives to `docker` are [`lxc`](https://forgejo.org/docs/latest/admin/actio
## Troubleshooting ## Troubleshooting
### In containerized environments, i want to build container images ### In containerized environments, I want to build container images
**Problem**: In containerized environment, containers usually do not have many privileges. To start or build containers additional privleges, usually root is required inside of the kernel, the container runtime needs to manage linux namespaces and cgroups. **Problem**: In containerized environment, containers usually do not have many privileges. To start or build containers additional privleges, usually root is required inside of the kernel, the container runtime needs to manage linux namespaces and cgroups.
**Solution**: A partial solution for this is `buildkitd` utilizing `rootlesskit`. This allows containers to be **built** in a non root environment. You can find examples here: [Examples](https://github.com/moby/buildkit/tree/master/examples/kubernetes). **Solution**: A partial solution for this is `buildkitd` utilizing `rootlesskit`. This allows containers to be **built** (but not run) in a non root environment. Several examples can be found in the [official buildkit repo](https://github.com/moby/buildkit/tree/master/examples/kubernetes).
***Rootless vs User namespaces:*** ***Rootless vs User namespaces:***
@ -169,14 +169,10 @@ Rootless is considered the more secure version, as the executable is mapped to a
## Status ## Status
**Maturity**: [Production / Beta / Experimental] **Maturity**: Beta
## Additional Resources ## Additional Resources
* [Forgejo Runner installation guide](https://forgejo.org/docs/latest/admin/actions/runner-installation) * [Forgejo Runner installation guide](https://forgejo.org/docs/latest/admin/actions/runner-installation)
* [Static Runners on Kubernetes](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo/forgejo-runner/dind-docker.yaml) * [Static Runners on Kubernetes](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo/forgejo-runner/dind-docker.yaml)
* [Runner Orchestartion using GARM on Edge Connect](../runner-orchestration) * [Runner Orchestartion using GARM on Edge Connect](../runner-orchestration)
## Documentation Notes
[Instructions for team members filling in this documentation - remove this section once complete]

View file

@ -29,8 +29,6 @@ A custom edge-connect provider was implemented for GARM to enable infrastructure
- [GARM deploy script](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/scripts/local-helm.sh) - [GARM deploy script](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/scripts/local-helm.sh)
- [GARM deploy manifests](https://edp.buildth.ing/DevFW/garm-deploy.git) - [GARM deploy manifests](https://edp.buildth.ing/DevFW/garm-deploy.git)
**Documentation**: [Link to component-specific documentation]
## Getting Started ## Getting Started
### Prerequisites ### Prerequisites
@ -95,22 +93,6 @@ The diagram below shows how a trigger of an action results in deployment of a ru
{{<likec4-view view="forgejoGarmArchitecture" browser="false" dynamic-variant="sequence" project="architecture" title="Architecture of Forgejo, Garm and Edge Connect">}} {{<likec4-view view="forgejoGarmArchitecture" browser="false" dynamic-variant="sequence" project="architecture" title="Architecture of Forgejo, Garm and Edge Connect">}}
[Add infrastructure and deployment diagrams showing how the component is deployed]
TODO c4
- Garm Container in OTC Kubernetes
- Garm-Provider in Garm Container
- Garm in Garm container
- EDP in OTC Kubernetes
- Forgejo Runner in Edge Connect
- EDP --notifies with webhook--> Garm
- Garm --calls--> EDP
- Garm --calls--> garm provider
- garm provider --provisions instance--> Forgejo runner
- Forgejo runner --retrieves bootstrap information-->Garm
- Forgejo runner --picks up job--> EDP
## Configuration ## Configuration
### Provider Setup ### Provider Setup
@ -184,28 +166,11 @@ garm-cli gitea credentials add \
Now, connect to the WebUI, use `GARM_ADMIN_USERNAME` and `GARM_ADMIN_PASSWORD` as credentials to authenticate. Click on repositories and Now, connect to the WebUI, use `GARM_ADMIN_USERNAME` and `GARM_ADMIN_PASSWORD` as credentials to authenticate. Click on repositories and
## Troubleshooting
### [Common Issue 1]
**Problem**: [Description]
**Solution**: [How to fix]
### [Common Issue 2]
**Problem**: [Description]
**Solution**: [How to fix]
## Status ## Status
**Maturity**: [Production / Beta / Experimental] **Maturity**: Beta
## Additional Resources ## Additional Resources
* [Using GARM](https://github.com/cloudbase/garm/blob/main/doc/using_garm.md) * [GARM repository](https://github.com/cloudbase/garm)
* [How to use](https://github.com/cloudbase/garm/blob/main/doc/using_garm.md)
## Documentation Notes
[Instructions for team members filling in this documentation - remove this section once complete]

View file

@ -1,9 +1,9 @@
--- ---
title: "Project Management" title: Project Management in Forgejo
linkTitle: "Forgejo Project Mgmt" linkTitle: Project Management
weight: 50 weight: 50
description: > description: >
Organization-level project and issue management (discontinued feature) Organization-level project and issue management
--- ---
{{% alert title="Discontinued Feature" color="warning" %}} {{% alert title="Discontinued Feature" color="warning" %}}

View file

@ -19,12 +19,15 @@ deployment {
description 'GARM container with runner orchestration' description 'GARM container with runner orchestration'
} }
garmService = instanceOf edp.garm.garm { environment edpCluster 'GARM pod' {
description 'GARM - Runner lifecycle manager' technology 'Kubernetes'
} garmService = instanceOf edp.garm.garm {
description 'GARM - Runner lifecycle manager'
}
instanceOf edp.garm.providerEdgeConnect { instanceOf edp.garm.providerEdgeConnect {
description 'GARM Provider for Edge Connect' description 'GARM Provider for Edge Connect'
}
} }
} }
} }

File diff suppressed because one or more lines are too long