diff --git a/README.md b/README.md index 875961cd..867ce0b2 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 00000000..7e2d0ef2 --- /dev/null +++ b/docs/architecture.md @@ -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 diff --git a/docs/diagrams/DVO_Human_Consumer_Workflow.vsdx b/docs/diagrams/DVO_Human_Consumer_Workflow.vsdx new file mode 100644 index 00000000..56ba11ea Binary files /dev/null and b/docs/diagrams/DVO_Human_Consumer_Workflow.vsdx differ diff --git a/docs/diagrams/DVO_Human_Developer_Workflow.vsdx b/docs/diagrams/DVO_Human_Developer_Workflow.vsdx new file mode 100644 index 00000000..f8061652 Binary files /dev/null and b/docs/diagrams/DVO_Human_Developer_Workflow.vsdx differ diff --git a/docs/diagrams/DVO_Internal_Codebase.vsdx b/docs/diagrams/DVO_Internal_Codebase.vsdx new file mode 100644 index 00000000..9bfc388a Binary files /dev/null and b/docs/diagrams/DVO_Internal_Codebase.vsdx differ diff --git a/docs/diagrams/DVO_Observability.vsdx b/docs/diagrams/DVO_Observability.vsdx new file mode 100644 index 00000000..a1a3a83b Binary files /dev/null and b/docs/diagrams/DVO_Observability.vsdx differ diff --git a/docs/diagrams/DVO_Operator_Managed.vsdx b/docs/diagrams/DVO_Operator_Managed.vsdx new file mode 100644 index 00000000..d535d6bf Binary files /dev/null and b/docs/diagrams/DVO_Operator_Managed.vsdx differ diff --git a/docs/images/DVO_Human_Consumer_Workflow.drawio.png b/docs/images/DVO_Human_Consumer_Workflow.drawio.png new file mode 100644 index 00000000..00892eb8 Binary files /dev/null and b/docs/images/DVO_Human_Consumer_Workflow.drawio.png differ diff --git a/docs/images/DVO_Human_Developer_Workflow.drawio.png b/docs/images/DVO_Human_Developer_Workflow.drawio.png new file mode 100644 index 00000000..87cbeb61 Binary files /dev/null and b/docs/images/DVO_Human_Developer_Workflow.drawio.png differ diff --git a/docs/images/DVO_Internal_Codebase.drawio.png b/docs/images/DVO_Internal_Codebase.drawio.png new file mode 100644 index 00000000..f7e4441c Binary files /dev/null and b/docs/images/DVO_Internal_Codebase.drawio.png differ diff --git a/docs/images/DVO_Observability.drawio.png b/docs/images/DVO_Observability.drawio.png new file mode 100644 index 00000000..46c80d59 Binary files /dev/null and b/docs/images/DVO_Observability.drawio.png differ diff --git a/docs/images/DVO_Operator_Managed.drawio.png b/docs/images/DVO_Operator_Managed.drawio.png new file mode 100644 index 00000000..dc062c15 Binary files /dev/null and b/docs/images/DVO_Operator_Managed.drawio.png differ