|
| 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