Skip to content

Commit

Permalink
Merge pull request #6 from eclipse-tractusx/restructure_repository_fo…
Browse files Browse the repository at this point in the history
…r_initial_release

Restructure repository for initial release
  • Loading branch information
Siegfriedk authored Nov 21, 2022
2 parents e64500b + 0d6d362 commit 4b9f2ad
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 145 deletions.
25 changes: 20 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Overarching Tractus-X releases are tested to the best of our knowledge. Test are performed on specific runtime
configurations, which is documented per release.

## [Unreleased]
Tractus-X is sponsored by catena-X. For more information visit [catena.x.net](https://catena-x.net/).

### Runtime
## [2.0.0.RC1]

Disclaimer: This is a test / demo release candidate only.

### Added
- Portal, v0.5.4
- Golden Record Business Partner Number (BPN) Service, v2.0.0
- Managed Identity Wallet, v0.5.2
- Dynamic Attribute Provisioning Service (DAPS), v1.7.1
- Digital Twin Registry, v0.2.0M2

- Tested on kubernetes versions: `1.21`, `1.22`
- Tested with PostgreSQL versions: `1.11`
### Known knowns
- FOSS components developed and pre-tested to TRL6 with artificial test data only
- No execution of Load-, Performance- or Penetration Tests
- No assignment of Export Control Classification Numbers (ECCN) to FOSS components
- GeoBlocking recommended for Operations (GBaaS)

### Runtime

### Products
- Tested on [Kubernetes](https://en.wikipedia.org/wiki/Kubernetes) versions: `1.22`
- Tested with [PostgreSQL](https://en.wikipedia.org/wiki/PostgreSQL) versions: `1.11`
103 changes: 12 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,19 @@
# Tractus-X release
# Eclipse Tractus-X

This repository specifies details about overarching Tractus-X releases.
It contains process definitions, as well as technical implementations for testing and packaging release artifacts.
This is the central [Eclipse Tractus-X](https://projects.eclipse.org/projects/automotive.tractusx) release repository.
As Eclipse Tractus-X contains multiply components / products, this repository reflects the
unified official release of the Eclipse Tractus-X distribution.

## Schedule

Tractus-X releases follow a quarterly schedule. In addition to the overarching quarterly release, single product
releases take place on demand.
The overarching release is done to ensure compatibility, quality standards and alignment between Tractus-X products.

## Process

The release process describes manual and automated steps, that are performed to create a release.
A release consists of at least one artifact, that can be used to deploy your application, or to be used as a dependency
by other projects.

### Product release process

Tractus-X products are individually developed and therefore no strict workflow is enforced.
To ensure a consistent view on releases, the following aspects should still be met:

- [GitHub releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases) are used to
publish artifacts. Git tags are added accordingly (usually done automatically)
- A CHANGELOG.md file, that follows [keep a changelog](https://keepachangelog.com/en/1.0.0/) recommendations is
maintained and updated with descriptions for the current release. Links to GitHub external artifacts
(i.e. mvncentral or Docker Hub) are referenced

### Overarching release process

Overarching Tractus-X releases are initiated and coordinated by a release managment group.
This group is working with already released versions of Tractus-X products to form the overarching release.

__TL;DR__

- Identify individual product version, that should be included in the overarching release
- Verify that products work well together, by deploying and testing on dedicated infrastructure
- Collect released product artifacts
- Create overarching release artifact package
- Update overarching release [CHANGELOG](CHANGELOG.md)

To verify, the released products work together correctly, integration- and end-to-end tests are performed.
These test include deploying the products to a dedicated runtime environment, using the provided Helm charts and
installation instructions.

If all tests are successful, the individual product release artifacts are collected and re-packaged to a combined,
overarching release artifact. This single artifact is afterwards published with a pe-defined version number
as GitHub release.

As last step, the release is documented in the [CHANGELOG](CHANGELOG.md)
## Minimum requirement

## Artifacts
Eclipse Tractus-X components are based on modern cloud technology and require a current Kubernetes Cluster. You need to be able to install Helm Charts. For supported Kubernetes Versions and technical details, please refer to the [CHANGELOG.md](CHANGELOG.md) and to the product specific README.md.

Tractus-X products are released in multiple formats. The number of artifacts and its format varies between
individual product and the overarching releases.

### Product release artifacts

The following sections describe some common formats of release artifacts used by Tractus-X products.

#### Sourcecode

Most Tractus-X products are software products. In these cases, packaging the sourcecode together with a
list of used dependencies is a good starting point and should be included as artifact of a release in
almost any case.

#### Container images

`tbd`

#### Helm charts

Applications developed in the Tractus-X context typically provide a [Helm chart](https://helm.sh/) for easy deployment
on [kubernetes](https://kubernetes.io/).

To add a Helm chart as a release artifact it has to be packaged. There are multiple tools, that help packaging charts.
We recommend using the [chart-releaser-action]() GitHub action though, since together with activated
[GitHub pages](https://pages.github.com/), it can transform your repository to function as Helm chart repository on
its own.

Additionally, Tractus-X offers a central Helm chart repository. It supports two channels for released
Helm charts - `dev` and `stable`.

The `dev`-channel is used to publish the most recently released charts.
It is updated nightly and automatically pulls in the latest chart releases of the
[eclipse-tractusx](https://github.com/eclipse-tractusx) GitHub organization.

The `stable` channel is used by the releaese management group, to publish all helm charts, that were successfully
tested and included in an overarching release. This means, that the stable channel only includes specifc versions
of product charts, that are tested to the best of our knowledge to work together with other stable charts.

## Patching strategy
## Schedule

`tbd`
Tractus-X releases follow a quarterly schedule. In addition to the overarching quarterly release, single product
releases take place on demand.
The overarching release is done to ensure compatibility, quality standards and alignment between Eclipse Tractus-X products.

## Helm Repository
## Release process

For information about using the Tractus-X Helm repository, please refer to [this documentation](docs/helm-repsoitory.md).
For more information on the release process for components / products, please see [RELEASE.md](RELEASE.md).
92 changes: 92 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Tractus-X release process

This repository specifies details about overarching Tractus-X releases.
It contains process definitions, as well as technical implementations for testing and packaging release artifacts.

## Process

The release process describes manual and automated steps, that are performed to create a release.
A release consists of at least one artifact, that can be used to deploy your application, or to be used as a dependency
by other projects.

### Product release process

Tractus-X products are individually developed and therefore no strict workflow is enforced.
To ensure a consistent view on releases, the following aspects should still be met:

- [GitHub releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases) are used to
publish artifacts. Git tags are added accordingly (usually done automatically)
- A CHANGELOG.md file, that follows [keep a changelog](https://keepachangelog.com/en/1.0.0/) recommendations is
maintained and updated with descriptions for the current release. Links to GitHub external artifacts
(i.e. mvncentral or Docker Hub) are referenced

### Overarching release process

Overarching Tractus-X releases are initiated and coordinated by a release managment group.
This group is working with already released versions of Tractus-X products to form the overarching release.

__TL;DR__

- Identify individual product version, that should be included in the overarching release
- Verify that products work well together, by deploying and testing on dedicated infrastructure
- Collect released product artifacts
- Create overarching release artifact package
- Update overarching release [CHANGELOG](CHANGELOG.md)

To verify, the released products work together correctly, integration- and end-to-end tests are performed.
These test include deploying the products to a dedicated runtime environment, using the provided Helm charts and
installation instructions.

If all tests are successful, the individual product release artifacts are collected and re-packaged to a combined,
overarching release artifact. This single artifact is afterwards published with a pe-defined version number
as GitHub release.

As last step, the release is documented in the [CHANGELOG](CHANGELOG.md)

## Artifacts

Tractus-X products are released in multiple formats. The number of artifacts and its format varies between
individual product and the overarching releases.

### Product release artifacts

The following sections describe some common formats of release artifacts used by Tractus-X products.

#### Sourcecode

Most Tractus-X products are software products. In these cases, packaging the sourcecode together with a
list of used dependencies is a good starting point and should be included as artifact of a release in
almost any case.

#### Container images

`tbd`

#### Helm charts

Applications developed in the Tractus-X context typically provide a [Helm chart](https://helm.sh/) for easy deployment
on [kubernetes](https://kubernetes.io/).

To add a Helm chart as a release artifact it has to be packaged. There are multiple tools, that help packaging charts.
We recommend using the [chart-releaser-action]() GitHub action though, since together with activated
[GitHub pages](https://pages.github.com/), it can transform your repository to function as Helm chart repository on
its own.

Additionally, Tractus-X offers a central Helm chart repository. It supports two channels for released
Helm charts - `dev` and `stable`.

The `dev`-channel is used to publish the most recently released charts.
It is updated nightly and automatically pulls in the latest chart releases of the
[eclipse-tractusx](https://github.com/eclipse-tractusx) GitHub organization.

The `stable` channel is used by the releaese management group, to publish all helm charts, that were successfully
tested and included in an overarching release. This means, that the stable channel only includes specifc versions
of product charts, that are tested to the best of our knowledge to work together with other stable charts.

## Patching strategy

`tbd`

## Helm Repository

For information about using the Tractus-X Helm repository, please refer to the [charts](https://github.com/eclipse-tractusx/charts) repository.
49 changes: 0 additions & 49 deletions docs/helm-repsoitory.md

This file was deleted.

0 comments on commit 4b9f2ad

Please sign in to comment.