Skip to content

Commit 91f5faa

Browse files
committed
add clusterProfile doc
1 parent 2cd20e5 commit 91f5faa

File tree

5 files changed

+63
-2
lines changed

5 files changed

+63
-2
lines changed

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ nav:
3939
About API Overview: concepts/about-api.md
4040
Multicluster Services API Overview: concepts/multicluster-services-api.md
4141
Work API Overview: concepts/work-api.md
42+
ClusterProfile API Overview: concepts/cluster-profile-api.md
4243
- Guides:
4344
- Index: guides/index.md
4445
- Implementation Guidelines: guides/guidelines.md
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# ClusterProfile API Overview
2+
3+
This document provides an overview of the ClusterProfile (fka ClusterInventory) API.
4+
5+
![Alt](../images/cluster-profile-api.png "ClusterProfile API")
6+
7+
A Cluster Profile is essentially an individual member of the Cluster Inventory that details the properties and status of a cluster.
8+
This API proposes a universal, standardized interface that defines how cluster information should be presented
9+
and interacted with across different platforms and implementations.
10+
11+
You can read more details about the API in the [KEP-4322](https://github.com/kubernetes/enhancements/blob/master/keps/sig-multicluster/4322-cluster-inventory/README.md).
12+
13+
## Terminology
14+
15+
- **Cluster Inventory**: A conceptual term referring to a collection of clusters.
16+
17+
- **Cluster Manager**: An entity that creates the ClusterProfile API object per member cluster,
18+
and keeps their status up-to-date. Each cluster manager MUST be identified with a unique name.
19+
Each ClusterProfile resource SHOULD be managed by only one cluster manager. A cluster manager SHOULD
20+
have sufficient permission to access the member cluster to fetch the information so it can update the status
21+
of the ClusterProfile API resource.
22+
23+
- **ClusterProfile API Consumer**: the person running the cluster managers
24+
or the person developing extensions for cluster managers for the purpose of
25+
workload distribution, operation management etc.
26+
27+
## API Example
28+
29+
```yaml
30+
apiVersion: multicluster.x-k8s.io/v1alpha1
31+
kind: ClusterProfile
32+
metadata:
33+
name: generated-cluster-name
34+
labels:
35+
x-k8s.io/cluster-manager: some-cluster-manager
36+
spec:
37+
displayName: some-cluster
38+
clusterManager:
39+
name: some-cluster-manager
40+
status:
41+
version:
42+
kubernetes: 1.28.0
43+
properties:
44+
- name: clusterset.k8s.io
45+
value: some-clusterset
46+
- name: location
47+
value: apac
48+
conditions:
49+
- type: ControlPlaneHealthy
50+
status: True
51+
lastTransitionTime: "2023-05-08T07:56:55Z"
52+
message: ""
53+
- type: Joined
54+
status: True
55+
lastTransitionTime: "2023-05-08T07:58:55Z"
56+
message: ""
57+
```

site-src/contributing/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Bug reports should be filed as Github Issues on their respective subproject repo
1515
* [Open an issue for a bug with the About API][about-api-issues]
1616
* [Open an issue for a bug with the MCS API][mcs-api-issues]
1717
* [Open an issue for a bug with the Work API][work-api-issues]
18+
* [Open an issue for a bug with the ClusterProfile API][clusterprofile-api-issues]
1819

1920
**NOTE**: If you're reporting a bug that applies to a specific implementation of
2021
a SIG-MC sponsored API and not the API specification itself, please check our
@@ -23,6 +24,7 @@ you can get help with your specific implementation.
2324
[about-api-issues]: https://github.com/kubernetes-sigs/about-api/issues
2425
[mcs-api-issues]: https://github.com/kubernetes-sigs/mcs-api/issues
2526
[work-api-issues]: https://github.com/kubernetes-sigs/work-api/issues
27+
[clusterprofile-api-issues]: https://github.com/kubernetes-sigs/cluster-inventory-api/issues
2628
[implementations]: ../guides/index.md
2729

2830
## Communications
137 KB
Loading

site-src/index.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,18 @@ The following charter defines the scope and governance of the [Multicluster Spec
5050

5151
## Approach
5252

53-
To meet the goals listed above, the SIG-Multicluster team has worked to define three different APIs:
53+
To meet the goals listed above, the SIG-Multicluster team has worked to define four different APIs:
5454

5555
* [About API][about-api-reference]: allows to uniquely identify clusters within a set of clusters ([clusterset][clusterset-definition])
5656
* [Multicluster Services API][mc-api-reference]: allows to expose services across clusters which are part of a given [clusterset][clusterset-definition].
5757
* [Work API][work-api-reference]: allows to define the workloads to be deployed across clusters which are part of a given [clusterset][clusterset-definition].
58-
* [ClusterInventory API](https://github.com/kubernetes/enhancements/pull/4323/): simplifies the discovery and management of clusters, offering a comprehensive status overview for both applications and human operators. Work in progress.
58+
* [ClusterProfile API][clusterprofile-reference]: simplifies the discovery and management of clusters, offering a comprehensive status overview for both applications and human operators.
5959

6060
[about-api-reference]: ./concepts/about-api.md
6161
[mc-api-reference]: ./concepts/multicluster-services-api.md
6262
[work-api-reference]: ./concepts/work-api.md
6363
[clusterset-definition]: ./api-types/cluster-set.md
64+
[clusterprofile-reference]: ./concepts/cluster-profile-api.md
6465

6566
To leave room for implementation, SIG-Multicluster does not focus on the implementation of the mechanisms that rely on those APIs. For example, no reference implementation is provided for a cluster registry or for service discovery itself.
6667

0 commit comments

Comments
 (0)