AWS CodeCommit vs. GitLab
Version Control as a Cloud Component or Platform Core Version control is often reduced to a …
Diese Serie erklärt systematisch, wie moderne Software compliant entwickelt und betrieben wird – von EU-Regulierungen bis zur technischen Umsetzung.
.gitlab-ci.yml, stages, jobs, and artifacts allow you to model a clear, reproducible supply chain – including build (Kaniko, SBOM), test (pytest, integration, Trivy), package (push to Harbor, signature), deploy (GitOps with ArgoCD).Today, those responsible for software manage not just source code but entire supply chains: source code management, build processes, container images, policy checks, deployments, audits. GitLab CI/CD brings these threads together in one place.
Instead of loosely linking individual tools, with GitLab CI/CD you define:
The pipeline thus becomes the formal, verifiable description of your delivery process. This is not only operationally valuable but also a strong lever in audits in the context of NIS‑2, DORA, and the upcoming Cyber Resilience Act.
The .gitlab-ci.yml in the repository is the “contract” between your team and GitLab:
Organizationally, it makes sense to clearly define responsibility for this file: e.g., ownership in the platform team, review obligation with product teams.
Stages structure the pipeline into successive phases. A common pattern for modern container-based development:
Within a stage, multiple jobs can run in parallel. Only when all jobs of a stage are successfully completed does the next one begin. This way, you model explicit “quality gates”, for example: no build as long as tests or security scans fail.
A job describes a specific task, e.g.:
Each job:
Artifacts are files that a job generates and passes on to subsequent jobs or human reviewers – particularly important for compliance:
In a world shaped by the Cyber Resilience Act and NIS‑2, artifacts are not only technically useful but also evidence: They document that defined checks have actually taken place.
Below, we outline a typical, proven pipeline structure for containerized applications on a modern platform with Kubernetes, GitLab, Harbor, and ArgoCD.
In the build phase, it’s about reproducible, secure images.
Kaniko for Container-Native Builds
Instead of running a Docker daemon in the CI, the pipeline uses a Kaniko image as the build environment. The job:
Important from a compliance perspective:
SBOM Generation in the Build
Parallel or directly afterwards, another job generates a Software Bill of Materials (SBOM) for the image just built, e.g., in CycloneDX or SPDX format. The SBOM is:
The Cyber Resilience Act demands transparency over software components; automated SBOM generation in the build is the most practical way to achieve this.
The test stage can execute multiple jobs in parallel.
Unit and Integration Tests with pytest
A job runs, for example, unit tests with pytest in the application container or a corresponding test image, another job runs integration tests (e.g., against a temporary database).
Best Practices:
Security Scans with Trivy
Another job uses Trivy or a similar tool for vulnerability scanning:
Trivy reports are stored as artifacts. In a compliance context, you can define:
This directly bridges to requirements from NIS‑2 and DORA for systematic vulnerability management.
In the package phase, the results of the previous stages are transformed into reusable units.
Push to Harbor and Signature with Notary
A job handles publishing the container image in Harbor:
Subsequently, another job signs the image – for instance, via Notary or COSIGN:
Signed container images are a central component for a trustworthy supply chain in the sense of the Cyber Resilience Act.
Helm Charts Packaging
For Kubernetes-based deployment, Helm charts are built and stored in the same registry:
Instead of triggering deployments directly from the CI pipeline, GitOps is gaining ground: Your pipeline only changes Git repositories, while ArgoCD synchronizes these changes to target clusters.
A typical deploy job:
Advantages:
The Cyber Resilience Act was passed at the EU level in 2024 and comes into effect 20 days after publication in the Official Journal; most obligations will become applicable after a transition period of 36 months. GitLab CI/CD is the ideal vehicle to pragmatically implement these obligations:
Instead of relying on manual documentation, your pipeline automatically generates this evidence – consistently and auditable.
The NIS‑2 directive (Directive (EU) 2022/2555) came into force on 16.01.2023; member states must transpose it into national law by 17.10.2024. The DORA regulation (Regulation (EU) 2022/2554) applies directly to financial companies in the EU from 17.01.2025.
Both regimes require robust processes and traceable controls. GitLab CI/CD supports you in this:
GitLab thus becomes an important piece of your overarching compliance strategy.
The GDPR (DSGVO) has been in effect since 25.05.2018 and also addresses technical and organizational measures in software development.
Key points for your pipeline:
Version Control as a Cloud Component or Platform Core Version control is often reduced to a …
TL;DR Modern software development requires more than just code hosting. While hyperscalers like AWS …
TL;DR Polycrate is an Ansible-based framework for deployment automation that containerizes all …