Skip to content

Commit c83dcd8

Browse files
committed
Update with lenka's comment
Signed-off-by: Jian Qiu <jqiu@redhat.com>
1 parent da21c66 commit c83dcd8

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

cncf/GTR.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
- Entities, e.g. financial institutions, internet companies, with many Kubernetes clusters.
4444
- 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].
4546

4647
* Please describe any completed end user research and link to any reports.
4748

@@ -66,6 +67,7 @@
6667

6768
* Describe how this project integrates with other projects in a production environment.
6869

70+
Some integration examples includes:
6971
- [ArgoCD](https://github.com/open-cluster-management-io/addon-contrib/tree/main/argocd-agent-addon): OCM integrates
7072
ArgoCD by deploying an agent addon to managed clusters, enabling automated GitOps-based application synchronization and management.
7173
- [Kueue](https://github.com/open-cluster-management-io/addon-contrib/tree/main/kueue-addon): OCM integrates Kueue by installing
@@ -75,6 +77,15 @@
7577
- [Open-Telemetry](https://github.com/open-cluster-management-io/addon-contrib/tree/main/open-telemetry-addon): OCM
7678
integrates Open-Telemetry by deploying its operator through an addon, allowing centralized observability and telemetry data
7779
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
7889

7990
### Design
8091

@@ -187,6 +198,8 @@
187198
* 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?
188199

189200
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+
190203
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:
191204
Initialize the Hub Cluster: On your designated hub cluster, run:
192205
```
@@ -434,3 +447,114 @@ Self-assessment: https://github.com/open-cluster-management-io/ocm/blob/main/SEL
434447
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.
435448
Feature gates from alpha to beta follow a standard lifecycle:
436449
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

Comments
 (0)