|
42 | 42 |
|
43 | 43 | - Entities, e.g. financial institutions, internet companies, with many Kubernetes clusters. |
44 | 44 | - Vendors that provide platform engineering services. |
| 45 | + - Not tied to any specific market segement. More details can be seen in [Adopters][https://github.com/open-cluster-management-io/ocm/blob/main/ADOPTERS.md]. |
45 | 46 |
|
46 | 47 | * Please describe any completed end user research and link to any reports. |
47 | 48 |
|
|
66 | 67 |
|
67 | 68 | * Describe how this project integrates with other projects in a production environment. |
68 | 69 |
|
| 70 | +Some integration examples includes: |
69 | 71 | - [ArgoCD](https://github.com/open-cluster-management-io/addon-contrib/tree/main/argocd-agent-addon): OCM integrates |
70 | 72 | ArgoCD by deploying an agent addon to managed clusters, enabling automated GitOps-based application synchronization and management. |
71 | 73 | - [Kueue](https://github.com/open-cluster-management-io/addon-contrib/tree/main/kueue-addon): OCM integrates Kueue by installing |
|
75 | 77 | - [Open-Telemetry](https://github.com/open-cluster-management-io/addon-contrib/tree/main/open-telemetry-addon): OCM |
76 | 78 | integrates Open-Telemetry by deploying its operator through an addon, allowing centralized observability and telemetry data |
77 | 79 | collection across clusters. |
| 80 | + - [KubeVela](https://kubevela.io/docs/platform-engineers/system-operation/working-with-ocm/) uses OCM to deploy application |
| 81 | + over multiple clusters. |
| 82 | + - [KubeStellar](https://docs.kubestellar.io/release-0.28.0/direct/start-from-ocm/) uses OCM as the underlying multicluster |
| 83 | + management "Inventory and Transport Space". |
| 84 | + - [ICOS Meta OS](https://www.icos-project.eu/docs/Administration/ICOS%20Agent/Orchestrators/controlplane/) uses OCM as |
| 85 | + the multicluster management controlplane. |
| 86 | + |
| 87 | +The [Adopeters](https://github.com/open-cluster-management-io/ocm/blob/main/ADOPTERS.md) has full list of projects that has integration |
| 88 | +with |
78 | 89 |
|
79 | 90 | ### Design |
80 | 91 |
|
|
187 | 198 | * Describe how the project is installed and initialized, e.g. a minimal install with a few lines of code or does it require more complex integration and configuration? |
188 | 199 |
|
189 | 200 | The project can be installed in minutes using a command-line tool for a minimal setup, while also offering more configurable installation methods for production environments. |
| 201 | + The detailed installation doc is [here](https://open-cluster-management.io/docs/getting-started/quick-start/). |
| 202 | + |
190 | 203 | A minimal install, which sets up a hub cluster and registers a spoke cluster, is achieved with the clusteradm CLI tool. This provides a "few lines of code" experience: |
191 | 204 | Initialize the Hub Cluster: On your designated hub cluster, run: |
192 | 205 | ``` |
@@ -434,3 +447,114 @@ Self-assessment: https://github.com/open-cluster-management-io/ocm/blob/main/SEL |
434 | 447 | The project follows the API upgrade flow https://github.com/open-cluster-management-io/api/blob/main/docs/development.md#api-upgrade-flow to rollout from alpha to beta. |
435 | 448 | Feature gates from alpha to beta follow a standard lifecycle: |
436 | 449 | https://open-cluster-management.io/docs/getting-started/administration/featuregates/ |
| 450 | + |
| 451 | + |
| 452 | +## Day 2 \- Day-to-Day Operations Phase |
| 453 | + |
| 454 | +### Scalability/Reliability |
| 455 | + |
| 456 | +* Describe how the project increases the size or count of existing API objects. |
| 457 | + |
| 458 | + OCM will generate 1 secret in each ManagedCluster for the agent, and 1 secret for each addon in each ManagedCluster depending |
| 459 | + on the configuration. |
| 460 | + |
| 461 | +* Describe how the project defines Service Level Objectives (SLOs) and Service Level Indicators (SLIs). |
| 462 | + |
| 463 | + OCM defines SLOs and SLIs based on the status of APIs representing the cluster managed, the status of the workload |
| 464 | + propagated to multiple clusters and the addons running on each cluster. |
| 465 | + |
| 466 | +* Describe any operations that will increase in time covered by existing SLIs/SLOs. |
| 467 | + |
| 468 | +* Describe the increase in resource usage in any components as a result of enabling this project, to include CPU, Memory, Storage, Throughput. |
| 469 | + |
| 470 | + The resource usage increases when then number of managed cluster increases. |
| 471 | + - The number of CRs, managedCluster and manifestworks, will increase which will result in the increase of memory and storage |
| 472 | + usage in kube-apiserver and etcd in the hub cluster. |
| 473 | + - The number of connection from agent to the kube-apiserver of the hub cluster will increase. |
| 474 | + |
| 475 | +* Describe which conditions enabling / using this project would result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.) |
| 476 | + |
| 477 | + If extreme large number of clusters are registered into the hub cluster, or extreme large number of ManifestWorks are created on |
| 478 | + the hub cluster. It may cause large memory usage in kube-apiserver with too many CRs created and also result in resource exhaustion |
| 479 | + in etcd. |
| 480 | + |
| 481 | +* Describe the load testing that has been performed on the project and the results. |
| 482 | + |
| 483 | + OCM developed a performance testing tools https://github.com/open-cluster-management-io/multicluster-controlplane/tree/main/test/performance. |
| 484 | + |
| 485 | +* Describe the recommended limits of users, requests, system resources, etc. and how they were obtained. |
| 486 | + |
| 487 | + TBD |
| 488 | + |
| 489 | +* Describe which resilience pattern the project uses and how, including the circuit breaker pattern. |
| 490 | + |
| 491 | + TBD |
| 492 | + |
| 493 | +### Observability Requirements |
| 494 | + |
| 495 | +* Describe the signals the project is using or producing, including logs, metrics, profiles and traces. Please include supported formats, recommended configurations and data storage. |
| 496 | + |
| 497 | + The monitoring of the project is described here https://open-cluster-management.io/docs/getting-started/administration/monitoring/ |
| 498 | + |
| 499 | +* Describe how the project captures audit logging. |
| 500 | + |
| 501 | + Audit logging can be obtained from kube-apiserver audit log. |
| 502 | + |
| 503 | +* Describe any dashboards the project uses or implements as well as any dashboard requirements. |
| 504 | + |
| 505 | + OCM has an experiment dashboard here: https://github.com/open-cluster-management-io/lab/tree/main/dashboard |
| 506 | + |
| 507 | +* Describe how the project surfaces project resource requirements for adopters to monitor cloud and infrastructure costs, e.g. FinOps |
| 508 | +* Which parameters is the project covering to ensure the health of the application/service and its workloads? |
| 509 | + |
| 510 | + OCM is using operator to deploy service, and the operator also monitor the healthiness of the service. The status of |
| 511 | + the operator API, `ClusterManager` and `Klusterlet`, will show the healthiness of the services. |
| 512 | + |
| 513 | +* How can an operator determine if the project is in use by workloads? |
| 514 | + |
| 515 | + The operator can check in the cluster if the operator API, `ClusterManager` and `Klusterlet`, exists and their status. |
| 516 | + The operator can also run `clusteradm get hub-info` and `clusteradm get klusterlet-info` to get status of the hub |
| 517 | + cluster and the managed cluster. |
| 518 | + |
| 519 | +* How can someone using this project know that it is working for their instance? |
| 520 | + |
| 521 | + The operator API, `ClusterManager` and `Klusterlet`, show the healthiness of the services. |
| 522 | + User can also run `clusteradm get hub-info` and `clusteradm get klusterlet-info` to get status of the hub |
| 523 | + cluster and the managed cluster. |
| 524 | + |
| 525 | +* Describe the SLOs (Service Level Objectives) for this project. |
| 526 | + |
| 527 | +TBD |
| 528 | + |
| 529 | +* What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service? |
| 530 | + |
| 531 | + - percentage of available ManagedClusters. |
| 532 | + - percentage of successfully applied ManifestWorks |
| 533 | + - percentage of available ManagedClusterAddons |
| 534 | + |
| 535 | +### Dependencies |
| 536 | + |
| 537 | +* Describe the specific running services the project depends on in the cluster. |
| 538 | +* Describe the project’s dependency lifecycle policy. |
| 539 | +* How does the project incorporate and consider source composition analysis as part of its development and security hygiene? Describe how this source composition analysis (SCA) is tracked. |
| 540 | +* Describe how the project implements changes based on source composition analysis (SCA) and the timescale. |
| 541 | + |
| 542 | +### Troubleshooting |
| 543 | + |
| 544 | +* How does this project recover if a key component or feature becomes unavailable? e.g Kubernetes API server, etcd, database, leader node, etc. |
| 545 | + |
| 546 | + The CRs data needs backup, and when key component, e.g. kube-apiserver or etcd becomes unavailable. User can start a |
| 547 | + new kubernetes controlplane, restore the CRs data and configura klusterlet agent to reconnect to the new controlplane. |
| 548 | + The steps to handle it is decribed in https://github.com/open-cluster-management-io/ocm/tree/main/solutions/multiplehubs. |
| 549 | + |
| 550 | +* Describe the known failure modes. |
| 551 | + |
| 552 | + TBD |
| 553 | + |
| 554 | +### Security |
| 555 | + |
| 556 | +* Security Hygiene |
| 557 | + * How is the project executing access control? |
| 558 | +* Cloud Native Threat Modeling |
| 559 | + * How does the project ensure its security reporting and response team is representative of its community diversity (organizational and individual)? |
| 560 | + * How does the project invite and rotate security reporting team members? |
0 commit comments