Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ DVO will only monitor Kubernetes resources and will not modify them in any way.

This operator doesn't define any CRDs at the moment. It has been bootstrapped with `operator-sdk` making it possible to add a CRD in the future if required.

## Architecture Diagrams

[Architecure Diagrams](./docs/architecture.md)

## Deployment

The manifests to deploy DVO take a permissive approach to permissions. This is done to make it easier to support monitoring new object kinds without having to change rbac rules. This means that elevated permissions will be required in order to deploy DVO through standard manifests. There is a manifest to deploy DVO though OLM from opereatorhub which does alleviate this need to have elevated permissions.
Expand Down
47 changes: 47 additions & 0 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
![image info](./images/DVO_Human_Developer_Workflow.drawio.png "DVO Human-Developer Workflow")

Code Base: A developer interacts with the code base to add features, create new releases, create unit tests, modify files

GitHub: Submits PRs to DVO Repository, approve/reject PRs

Jenkins: Verifies the DVO build job has kicked off during new release process

Quay.io: Verifies the newly created DVO image exists in the corresponding repository

OLM: Submits PR during DVO release process so versioning matches with new DVO image

Cluster: Utilizes/Verifies changes work by deploying DVO to an OSD cluster and executing appropriate actions to test the change in functionality


![image info](./images/DVO_Human_Consumer_Workflow.drawio.png "DVO Human-Consumer Workflow")

Code Base: A consumer interacts with the code base perform a manual/OLM installaion of DVO

GitHub: A consumer will view the README to understand how they deploy DVO successfully either manually or via OLM

Cluster: A consumer will need a cluster to deploy DVO to and interact with (future tense will be able to deploy via catalog)



![image info](./images/DVO_Operator_Managed.drawio.png "DVO Operator Managed Deployment")

This diagram represents the resources deployed in a DVO Operator Managed Deployment. When a user deploys DVO via OLM this diagram shows the components that are created when connecting to the OLM catalog and deploying the operator. This configuration comes up with a subscription to operaterhub to check for upgrades (default 24h).



![image info](./images/DVO_Observability.drawio.png "DVO Observability Deployment")

This diagram represents the resources deployed in a DVO Observability Deployment. All of the components listed here make up what is needed to setup the Prometheus/Grafana parts of DVO. This setup allows for monitoring DVO for validation checks on resources and reporting when a validation check fails in an easily consumed format.


![image info](./images/DVO_Internal_Codebase.drawio.png "DVO Internal Codebase")

K8s API - allows for DVO to interact with Kube/Openshift objects

K8s Controller Runtime - Enables DVO to utilzie the reconciliation loop to constantly be checking for new K8s resources to validate

Kube-linter - provides standard templates for upstream validation checks

Prometheus - Provides metrics if a validation check has failed

OSDE2E - Provides end-to-end test framework and automated testing
Binary file added docs/diagrams/DVO_Human_Consumer_Workflow.vsdx
Binary file not shown.
Binary file added docs/diagrams/DVO_Human_Developer_Workflow.vsdx
Binary file not shown.
Binary file added docs/diagrams/DVO_Internal_Codebase.vsdx
Binary file not shown.
Binary file added docs/diagrams/DVO_Observability.vsdx
Binary file not shown.
Binary file added docs/diagrams/DVO_Operator_Managed.vsdx
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/DVO_Internal_Codebase.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/DVO_Observability.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/DVO_Operator_Managed.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.