diff options
author | Andreas Geissler <andreas-geissler@telekom.de> | 2022-09-16 16:02:29 +0200 |
---|---|---|
committer | Andreas Geissler <andreas-geissler@telekom.de> | 2022-09-16 16:37:03 +0200 |
commit | 81ccf6da68a2861666c88d62fc3ea1b4243419c6 (patch) | |
tree | 3657e6fbf5518f37e995168e7a4adfa0e4a3707e /doc/chained-ci-intro.md | |
parent | dbd0a11229207f99c1b515b88a5b58e21f23922d (diff) |
[GITLAB] Initial content for gitlab project chained-ci
Issue-ID: INT-2150
Signed-off-by: Andreas Geissler <andreas-geissler@telekom.de>
Change-Id: Id5dc270b6a7c25189b4e09c4227b806323711d72
Diffstat (limited to 'doc/chained-ci-intro.md')
-rw-r--r-- | doc/chained-ci-intro.md | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/doc/chained-ci-intro.md b/doc/chained-ci-intro.md new file mode 100644 index 0000000..01d74fe --- /dev/null +++ b/doc/chained-ci-intro.md @@ -0,0 +1,61 @@ +# Introduction to Chained-ci + +Chained-ci is a solution to chain CI/CD pipelines from different gilab projects. +It leverages gitlab APIs and features like the artifacts. + +![Chained-ci overview](img/chained-CI.png) + +As an example if you want to install a solution on an infrastructure, you can +chain the project pipeline in charge of infrastructure deployment then the +pipeline in charge of the deployment of the target solution thanks to +environment variables, configuration parameters provided as artifacts at the +end of the first pipeline. + +Chained-ci offers additional possibilities such as using static artifacts, +notifying third parties. + +## Why Chained-ci + +Historically involved in several Open Source projects, it was very hard to +harmonize CI/CD strategies as each project had its own way to manage it and +automation culture. +OPNFV XCI initiative was created to provide a way to create links between CI/CD +teams of different Open Source Networking communities. + +In parallel, internally we started having lots of projects on gitlab. +The goal was to be able to chain the pipelines of these different gitlab +projects. Each project remains responsible for its CI/CD strategy but may expose +artifacts and can be consumed by other projects. + +Thanks to Chained-ci, it is possible to easily mix and match pipelines and unify +CI/CD strategy leveraging gitlab capabilities. + +It is possible on the same infrastructure to automate the deployments and +testing of several projects in parallel. + +## Chained-ci project + +Chained-ci is composed of several sub-projects: + +* [Chained-ci](https://gitlab.forge.orange-labs.fr/osons/chained-ci): the part + where the chains will be created and configured +* [Chained-ci-roles](https://gitlab.com/Orange-OpenSource/lfn/ci_cd/chained-ci-roles): + the repository hosting the ansible roles +* [Chained-ci-tools](https://gitlab.com/Orange-OpenSource/lfn/ci_cd/chained-ci-tools): + some tooling to simplify the creation of the chains +* [Chained-ci-vue](https://gitlab.com/Orange-OpenSource/lfn/ci_cd/chained-ci-vue): + a web front end to easily visualise the different chains. + +![chained-ci-vue](img/chained-ci-ui.png) + +If you click on any element of the chain, you will see the corresponding gitlab +pipeline. You can also restart the chain in case of failure at the step it +failed. + +## Get started + +* [DTs Chained-ci installation](chained-ci-install.md) +* [DTs Chained-ci pipelines](chained-ci-pipeline.md) +* [Orange: Create your Chained-ci](./user-guide/configure.md) +* [Orange: Run your Chained-ci](./user-guide/run.md) +* [Orange: Examples](./example/example.md) |