Skip to content

Commit b6b6c74

Browse files
authored
feat: Add new project overview document (#576)
* feat: Add new project overview document * added some more content; removed the dev dashboard * Add more text * Add more text * Added refs * Added stackable-cockpit
1 parent 399837a commit b6b6c74

7 files changed

+112
-195
lines changed

modules/contributor/images/project-overview-docker-images.drawio.svg

+4
Loading

modules/contributor/images/project-overview-documentation.drawio.svg

+4
Loading

modules/contributor/images/project-overview-operators.drawio.svg

+4
Loading

modules/contributor/nav.adoc

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
* xref:index.adoc[]
2-
2+
** xref:project-overview.adoc[]
33
** xref:steps.adoc[]
44
** xref:testing_on_kubernetes.adoc[]
5-
** xref:development_dashboard.adoc[]
65
** xref:code-style-guide.adoc[]
76
** xref:docs-style-guide.adoc[]
87
** Implementation guidelines

modules/contributor/pages/development-dashboard.adoc

-172
This file was deleted.

modules/contributor/pages/index.adoc

+5-21
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@ This document aims at getting your contribution posted as soon as possible.
1010

1111
== Contribution Workflow
1212

13-
The development of the Stackable Platform takes place on https://github.com/stackabletech[GitHub]. On GitHub, each
14-
repository has its own issue tracker and since Stackable is a platform, there are several repositories where issues and
15-
pull-requests can be created. If you already have a good idea where the issue or pull-request belongs, then you can skip
16-
reading to the contribution steps below. Otherwise, you might want to a have a look at the
17-
xref:development_dashboard.adoc[] for hints.
13+
The development of the Stackable Platform takes place on https://github.com/stackabletech[GitHub].
14+
On GitHub, each repository has its own issue tracker and since Stackable is a platform, there are several repositories where issues and pull requests can be created.
15+
If you already have a good idea where the issue or pull request belongs, then you can skip reading to the contribution steps below.
16+
Otherwise, you might want to a have a look at the xref:project-overview.adoc[] for hints.
1817

1918
Contribution steps:
2019

@@ -39,22 +38,7 @@ When submitting a pull-request, you might be interested in knowing about the nec
3938

4039
== Repo Walkthrough
4140

42-
Please see the xref:development_dashboard.adoc[] page to get an overview of the most important Git repositories used by
43-
us.
44-
45-
=== Operator Repositories
46-
47-
At the core of the Stackable Platform are Kubernetes operators used to install and manage various data products.
48-
Each operator has its own repository, and therefore its own issue tracker and build pipeline.
49-
Every operator repository contains:
50-
51-
* The operator's source code
52-
* One or more Custom Resource Definitions owned by the operator
53-
* `Helm` chart to easily install the operator
54-
* Documentation
55-
* `Dockerfile` and related artifacts to generate the operator image
56-
57-
See the xref:development_dashboard.adoc[] for a detailed overview.
41+
Please see the xref:project-overview.adoc[] page to get an overview of the most important Git repositories used by us.
5842

5943
== Development Environment
6044

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
= Project overview
2+
:page-aliases: development_dashboard.adoc, development-dashboard.adoc
3+
4+
The Stackable Data Platform is made up of many different components, with code and tools spread across multiple repositories, and artifacts stored in multiple locations.
5+
This page gives you a high-level overview of all the technical bits in the Stackable organization.
6+
7+
[[repositories]]
8+
== Repositories
9+
10+
On GitHub you can find more than a 100 repositories in the https://github.com/orgs/stackabletech/repositories[stackabletech organization].
11+
Below you find an overview of the majority of these repositories and how they relate to each other.
12+
13+
[[operator-repositories]]
14+
=== Operator repositories, templating, operator-rs
15+
16+
At the core of the Stackable Platform are the Kubernetes operators used to install and manage various data products, like the https://github.com/stackabletech/nifi-operator[nifi-operator] for example.
17+
You can find all of operators if you https://github.com/orgs/stackabletech/repositories?q=operator[search the organization repositories].
18+
19+
image::project-overview-operators.drawio.svg[]
20+
21+
All the operators are written in https://www.rust-lang.org/[Rust] and the source code is found in the `rust` directory.
22+
`tests` contains the integration tests which use https://kuttl.dev/[kuttl] and our own test template https://github.com/stackabletech/beku.py[beku.py].
23+
Documentation is written in https://antora.org/[Antora] and found in the `docs` directory, see also <<documentation>> further down the page.
24+
`deploy` and `docker` contain files used to package the operator into a Docker image and Helm chart.
25+
Some files in these repositories are actually _templated_:
26+
27+
The https://github.com/stackabletech/operator-templating[operator-templating] repository contains a template for all operator repositories, where shared files are distributed from.
28+
You can read the README in that repository to find out more about the details.
29+
Whenever common files are changed, a GitHub action is used to distribute the changes to all operator repositories.
30+
31+
The https://github.com/stackabletech/operator-rs/[operator-rs] repository contains the common framework library for all operators.
32+
It is a Rust library that is used by all operators and contains shared structs and shared functionality.
33+
34+
[[docker-images-repository]]
35+
=== docker-images
36+
37+
image::project-overview-docker-images.drawio.svg[]
38+
39+
The https://github.com/stackabletech/docker-images/[docker-images] repository contains Dockerfiles for all the products that are supported by the SDP.
40+
The actual product artifacts are pulled from the <<product-artifacts, product artifacs store>> and packaged into images.
41+
The images are pushed into an <<docker-images, image registry>>.
42+
43+
[[management-tooling]]
44+
=== Management tooling: stackablectl, stackable-cockpit
45+
46+
The `stackablectl` commandline tool and the Stackable Cockpit UI are both found in the https://github.com/stackabletech/stackable-cockpit[stackable-cockpit] repository, and they both share some code.
47+
The structure of the repository is documented in its README.
48+
49+
[[documentation]]
50+
=== Documentation
51+
52+
image::project-overview-documentation.drawio.svg[]
53+
54+
The documentation is built with https://antora.org/[Antora] and the playbook file to build it is located in the https://github.com/stackabletech/documentation[documentation] repository, among some common platform documentation.
55+
The UI for the documentation is found in the https://github.com/stackabletech/documentation-ui[documentation-ui] repository; it is included as a submodule in the documentation repository.
56+
The documentation pulls in operator documentation files from the operator repositories.
57+
The documentation is found at https://docs.stackable.tech/.
58+
59+
There is also https://crds.stackable.tech/ where you can find generated documentation for all the CustomResourceDefinitions on the platform.
60+
The code to generate this page is found in the https://github.com/stackabletech/crddocs[crddocs] repository.
61+
62+
[[tooling-repositories]]
63+
=== Tooling repositories
64+
65+
On top of the mentioned repositories, there are various smaller tools or product extensions that Stackable developed, they are all linked to from relevant places.
66+
Two examples are the https://github.com/stackabletech/image-tools[image-tools] used to build Docker images and the https://github.com/stackabletech/druid-opa-authorizer/[druid-opa-authorizer] which is a Druid extensions that enables OPA support for Druid.
67+
68+
[[infrastructure-repositories]]
69+
=== Infastructure: T2
70+
71+
https://github.com/stackabletech/t2[T2 - Test & Troubleshoot Platform] is used for integration testing across different versions and cloud providers, find more information in the README of the repository.
72+
73+
[[issues-repository]]
74+
=== Issues
75+
76+
The https://github.com/stackabletech/issues[issues] repository exists solely for the purpose of tracking issues related to the Stackable Platform in general.
77+
Large topics that impact many or even all of the platform components are discussed here.
78+
There is no code in this repository.
79+
80+
[[artifact-storage]]
81+
== Artifact storage
82+
83+
Where are binaries, Helm Charts and Docker images stored?
84+
85+
[[product-artifacts]]
86+
=== Product artifacts
87+
88+
A lot of artifacts are stored in the https://repo.stackable.tech/#browse/browse[Nexus repo].
89+
Under `packages` you find product binaries, the different `helm-*` stores contain the Helm Charts and Docker images are stored there too.
90+
91+
[[docker-images]]
92+
=== Docker images
93+
94+
Docker images are stored in Nexus as mentioned above, but also in https://oci.stackable.tech - which is where we want to move to in the future.

0 commit comments

Comments
 (0)