Skip to content

Commit 2661ccc

Browse files
authored
docs: polish readme (#330)
Signed-off-by: Mike Ng <[email protected]>
1 parent 98b87cc commit 2661ccc

File tree

1 file changed

+75
-26
lines changed

1 file changed

+75
-26
lines changed

README.md

Lines changed: 75 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,95 @@
1-
# AddOn Framework
1+
# Open Cluster Management Addon Framework
22

3-
This is to define an AddOn framework library.
3+
A Go library that provides a framework for developing addons for Open Cluster Management (OCM). This framework simplifies the process of creating, installing, and managing addons across multiple Kubernetes clusters in an OCM environment.
44

5-
## Community, discussion, contribution, and support
5+
## Overview
66

7-
Check the [CONTRIBUTING Doc](CONTRIBUTING.md) for how to contribute to the repo.
7+
Open Cluster Management (OCM) is a Kubernetes-native solution for managing multiple clusters. The Addon Framework enables developers to build addons that can be deployed and managed across these clusters with minimal complexity. The framework handles addon lifecycle management, configuration, registration, and deployment patterns.
88

9-
<!--
9+
## Features
1010

11-
You can reach the maintainers of this project at:
11+
- **Multiple Deployment Methods**: Support for Go templates, Helm charts, and template-based deployments
12+
- **Lifecycle Management**: Automated installation, upgrade, and removal of addons across managed clusters
13+
- **Configuration Management**: Flexible configuration system supporting various configuration types
14+
- **Hosting Modes**: Support for both standard and hosted deployment modes
15+
- **Registration Framework**: Automatic addon registration with cluster management
16+
- **RBAC Integration**: Built-in support for role-based access control
17+
- **Multi-cluster Support**: Deploy addons across multiple managed clusters from a central hub
1218

13-
- [#xxx on Slack](https://slack.com/signin?redir=%2Fmessages%2Fxxx)
19+
## Core Concepts
1420

15-
-->
21+
The framework is built around several key Kubernetes custom resources:
1622

17-
------
18-
## Purpose
23+
- **[ClusterManagementAddOn](https://github.com/open-cluster-management-io/api/blob/main/addon/v1alpha1/types_clustermanagementaddon.go)**: Hub cluster resource that defines addon metadata and installation strategy
24+
- **[ManagedClusterAddOn](https://github.com/open-cluster-management-io/api/blob/main/addon/v1alpha1/types_managedclusteraddon.go)**: Managed cluster resource that represents addon installation state
25+
- **AddOnTemplate**: Template-based addon deployment without dedicated controllers
1926

20-
This library is used to implement AddOn management like installation, registration etc.
21-
So developers could be able to develop their own addon functions more easily.
27+
## Getting Started
2228

23-
## Concepts
29+
### Prerequisites
2430

25-
* [ManagedClusterAddon](https://github.com/open-cluster-management-io/api/blob/main/addon/v1alpha1/types_managedclusteraddon.go)
26-
* [ClusterManagementAddOn](https://github.com/open-cluster-management-io/api/blob/main/addon/v1alpha1/types_clustermanagementaddon.go)
31+
- One or more Kubernetes clusters
32+
- [Open Cluster Management](https://github.com/open-cluster-management-io/registration-operator) installed and configured
33+
- At least one managed cluster imported and accepted
2734

28-
## Design Doc
35+
### Installation
2936

30-
* [AddOn Framework](https://github.com/open-cluster-management-io/enhancements/tree/main/enhancements/sig-architecture/8-addon-framework)
37+
Add the framework to your Go module:
3138

32-
## AddOn Consumers
33-
* [cluster-proxy](https://github.com/open-cluster-management-io/cluster-proxy)
39+
```bash
40+
go get open-cluster-management.io/addon-framework
41+
```
3442

35-
* [managed-serviceaccount](https://github.com/open-cluster-management-io/managed-serviceaccount)
43+
### Basic Usage
3644

37-
## AddOn Contributions
45+
The framework supports multiple addon implementation patterns:
3846

39-
A [collection of OCM addons](https://github.com/open-cluster-management-io/addon-contrib)
40-
for staging and testing PoC purposes:
47+
1. **Go Template Based**: Use Go templates to define addon resources
48+
2. **Helm Chart Based**: Deploy addons using Helm charts
49+
3. **Template Based**: Use AddOnTemplate for simplified deployment
50+
4. **Hosted Mode**: Run addon agents on hosting clusters
4151

42-
AI integration, IoT layer, cluster proxy, telemetry, resource usage collection and more.
52+
For detailed examples and tutorials, see the [examples directory](examples/README.md).
4353

44-
## AddOn Examples
54+
For comprehensive documentation on OCM addons, refer to:
55+
- [OCM Add-on Concepts](https://open-cluster-management.io/docs/concepts/add-on-extensibility/addon/) - Core concepts and architecture
56+
- [OCM Add-on Developer Guide](https://open-cluster-management.io/docs/developer-guides/addon/) - Complete development guide
4557

46-
We have examples to implement AddOn using Helm Chart or Go Template. You can find more details in [examples](examples/README.md).
58+
### Framework Documentation
59+
- [Design Documentation](https://github.com/open-cluster-management-io/enhancements/tree/main/enhancements/sig-architecture/8-addon-framework)
60+
- [Helm Agent Addon Guide](docs/helmAgentAddon.md)
61+
- [Template Agent Addon Guide](docs/templateAgentAddon.md)
62+
- [Pre-delete Hook Guide](docs/preDeleteHook.md)
63+
64+
## Examples
65+
66+
The repository includes several example addons:
67+
68+
- **HelloWorld**: Basic addon using Go templates
69+
- **HelloWorld Helm**: Addon implemented with Helm charts
70+
- **HelloWorld Hosted**: Addon with hosted deployment mode
71+
- **Kubernetes Dashboard**: Real-world addon example
72+
73+
See [examples/README.md](examples/README.md) for detailed instructions.
74+
75+
## Community Addons
76+
77+
### Active Projects
78+
79+
- [cluster-proxy](https://github.com/open-cluster-management-io/cluster-proxy): Provides secure proxy access to managed clusters
80+
- [managed-serviceaccount](https://github.com/open-cluster-management-io/managed-serviceaccount): Manages service accounts across clusters
81+
82+
### Contributed Addons
83+
84+
A [collection of community addons](https://github.com/open-cluster-management-io/addon-contrib) including:
85+
AI integration, IoT layer, cluster proxy, telemetry, resource usage collection, and more.
86+
87+
## Contributing
88+
89+
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute to this project.
90+
91+
## Support
92+
93+
For questions and support:
94+
- Open an issue in this repository
95+
- Join the Open Cluster Management community discussions

0 commit comments

Comments
 (0)