Skip to content

Commit 4816e6c

Browse files
committed
Populate repo with useful documentations about the ocm project
Signed-off-by: Mike Ng <[email protected]>
1 parent b3a26c7 commit 4816e6c

21 files changed

+827
-1
lines changed

.github/workflows/dco.yml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: DCO
2+
on:
3+
workflow_dispatch: {}
4+
pull_request:
5+
branches:
6+
- main
7+
8+
jobs:
9+
dco_check:
10+
runs-on: ubuntu-latest
11+
name: DCO Check
12+
steps:
13+
- name: Get PR Commits
14+
id: 'get-pr-commits'
15+
uses: tim-actions/get-pr-commits@master
16+
with:
17+
token: ${{ secrets.GITHUB_TOKEN }}
18+
- name: DCO Check
19+
uses: tim-actions/dco@master
20+
with:
21+
commits: ${{ steps.get-pr-commits.outputs.commits }}

CODE_OF_CONDUCT.md

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
The Open Cluster Management project has adopted the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
4+
The English text of the CNCF Code of Conduct is made available here for reference.
5+
Additional [language translations](https://github.com/cncf/foundation/blob/master/code-of-conduct.md) are available.
6+
7+
## Our pledge
8+
9+
In the interest of fostering an open and welcoming environment, we as
10+
contributors and maintainers pledge to making participation in our project and
11+
our community a harassment-free experience for everyone, regardless of age, body
12+
size, disability, ethnicity, sex characteristics, gender identity and expression,
13+
level of experience, education, socio-economic status, nationality, personal
14+
appearance, race, religion, or sexual identity and orientation.
15+
16+
## Our standards
17+
18+
Examples of behavior that contributes to creating a positive environment
19+
include:
20+
21+
* Using welcoming and inclusive language
22+
* Being respectful of differing viewpoints and experiences
23+
* Gracefully accepting constructive criticism
24+
* Focusing on what is best for the community
25+
* Showing empathy towards other community members
26+
27+
Examples of unacceptable behavior by participants include:
28+
29+
* The use of sexualized language or imagery, and unwelcomed sexual attention or
30+
advances
31+
* Trolling, insulting/derogatory comments, and personal or political attacks
32+
* Public or private harassment
33+
* Publishing others' private information, such as a physical or electronic
34+
address, without explicit permission
35+
* Other conduct which could reasonably be considered inappropriate in a
36+
professional setting
37+
38+
## Our responsibilities
39+
40+
Project maintainers are responsible for clarifying the standards of acceptable
41+
behavior, and are expected to take appropriate and fair corrective action in
42+
response to any instances of unacceptable behavior.
43+
44+
Project maintainers have the right and responsibility to remove, edit, or
45+
reject comments, commits, code, wiki edits, issues, and other contributions
46+
that are not aligned to this Code of Conduct, or to ban temporarily or
47+
permanently any contributor for other behaviors that they deem inappropriate,
48+
threatening, offensive, or harmful.
49+
50+
## Scope
51+
52+
This Code of Conduct applies both within project spaces and in public spaces
53+
when an individual is representing the project or its community. Examples of
54+
representing a project or community include using an official project e-mail
55+
address, posting via an official social media account, or acting as an appointed
56+
representative at an online or offline event. Representation of a project may be
57+
further defined and clarified by project maintainers.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported by contacting the project team at [[email protected]](mailto:[email protected]). All
63+
complaints will be reviewed and investigated and will result in a response that
64+
is deemed necessary and appropriate to the circumstances. The project team is
65+
obligated to maintain confidentiality with regard to the reporter of an incident.
66+
Further details of specific enforcement policies may be posted separately.
67+
68+
Project maintainers who do not follow or enforce the Code of Conduct in good
69+
faith may face temporary or permanent repercussions as determined by other
70+
members of the project's leadership.
71+
72+
## Attribution
73+
74+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
75+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html.
76+
77+
[Homepage]: https://www.contributor-covenant.org
78+
79+
For answers to common questions about this Code of Conduct, see
80+
https://www.contributor-covenant.org/faq.

CONTRIBUTING.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
**Table of Contents**
2+
3+
- [Contributing guidelines](#contributing-guidelines)
4+
- [Terms](#terms)
5+
- [Certificate of Origin](#certificate-of-origin)
6+
- [DCO Sign Off](#dco-sign-off)
7+
- [Code of Conduct](#code-of-conduct)
8+
- [Contributing a patch](#contributing-a-patch)
9+
- [Issue and pull request management](#issue-and-pull-request-management)
10+
11+
# Contributing guidelines
12+
13+
## Terms
14+
15+
All contributions to the repository must be submitted under the terms of the [Apache Public License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
16+
17+
## Certificate of Origin
18+
19+
By contributing to this project, you agree to the Developer Certificate of Origin (DCO). This document was created by the Linux Kernel community and is a simple statement that you, as a contributor, have the legal right to make the contribution. See the [DCO](DCO) file for details.
20+
21+
## DCO Sign Off
22+
23+
You must sign off your commit to state that you certify the [DCO](DCO). To certify your commit for DCO, add a line like the following at the end of your commit message:
24+
25+
```
26+
Signed-off-by: John Smith <[email protected]>
27+
```
28+
29+
This can be done with the `--signoff` option to `git commit`. See the [Git documentation](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt--s) for details.
30+
31+
## Code of Conduct
32+
33+
The Open Cluster Management project has adopted the CNCF Code of Conduct. Refer to our [Community Code of Conduct](CODE_OF_CONDUCT.md) for details.
34+
35+
## Contributing a patch
36+
37+
1. Submit an issue describing your proposed change to the repository in question. The repository owners will respond to your issue promptly.
38+
2. Fork the desired repository, then develop and test your code changes.
39+
3. Submit a pull request.
40+
41+
## Issue and pull request management
42+
43+
Anyone can comment on issues and submit reviews for pull requests. In order to be assigned an issue or pull request, you can leave a `/assign <your Github ID>` comment on the issue or pull request.

DCO

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Developer Certificate of Origin
2+
Version 1.1
3+
4+
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
5+
1 Letterman Drive
6+
Suite D4700
7+
San Francisco, CA, 94129
8+
9+
Everyone is permitted to copy and distribute verbatim copies of this
10+
license document, but changing it is not allowed.
11+
12+
13+
Developer's Certificate of Origin 1.1
14+
15+
By making a contribution to this project, I certify that:
16+
17+
(a) The contribution was created in whole or in part by me and I
18+
have the right to submit it under the open source license
19+
indicated in the file; or
20+
21+
(b) The contribution is based upon previous work that, to the best
22+
of my knowledge, is covered under an appropriate open source
23+
license and I have the right under that license to submit that
24+
work with modifications, whether created in whole or in part
25+
by me, under the same open source license (unless I am
26+
permitted to submit under a different license), as indicated
27+
in the file; or
28+
29+
(c) The contribution was provided directly to me by some other
30+
person who certified (a), (b) or (c) and I have not modified
31+
it.
32+
33+
(d) I understand and agree that this project and the contribution
34+
are public and that a record of the contribution (including all
35+
personal information I submit with it, including my sign-off) is
36+
maintained indefinitely and may be redistributed consistent with
37+
this project or the open source license(s) involved.

MISSION.md

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
## Mission Statement
2+
3+
We seek to form an open community around multicluster and multicloud scenarios for containerized applications. We propose to anchor the initial community around github.com/open-cluster-management-io and open-cluster-management.io.
4+
5+
We seek to add value to the community by a focused effort around many aspects of how users are deploying and managing Kubernetes clusters today. We seek to engage other parts of the community and both contribute to pre-existing efforts and invite contributors in those communities to cross-collaborate as part of this project.
6+
7+
We are initially interested in the following lifecycles associated with expanding adoption of Kubernetes:
8+
9+
1. Cluster Lifecycle. How are clusters provisioned, upgraded, registered, scaled out or in and decommissioned?
10+
2. Policy & Configuration Lifecycle. How are clusters configured, audited, secured, access controlled, managed for quota or cost?
11+
3. Application Lifecycle. How are containerized or hybrid applications delivered across one or more clusters? How are those applications kept current with ongoing changes?
12+
13+
Our initial goals for the project are to define API and reference implementations for common use cases that we have observed as users grow their adoption of Kubernetes:
14+
15+
- Define API for cluster registration independent of cluster CRUD lifecycle.
16+
- Define API for work distribution across multiple clusters.
17+
- Define API for dynamic placement of content and behavior across multiple clusters.
18+
- Define API for policy definition to ensure desired configuration and security settings are auditable or enforceable.
19+
- Define API for distributed application delivery across many clusters and the ability to deliver ongoing updates.
20+
21+
We expect that over time, the project will make sense to contribute to an appropriate foundation for stewardship. In the meantime, we intend to engage and contribute where similar use cases are under active discussion in the community including the Kubernetes SIG-Multicluster and SIG-Policy workgroups, among others.
22+
23+
## Contributor Code of Conduct
24+
The Open Cluster Management project has adopted the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). The English text of the CNCF Code of Conduct is made available here for reference. Additional [language translations](https://github.com/cncf/foundation/blob/master/code-of-conduct.md) are available.
25+
26+
"As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
27+
28+
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
29+
Examples of unacceptable behavior by participants include:
30+
The use of sexualized language or imagery
31+
Personal attacks
32+
Trolling or insulting/derogatory comments
33+
Public or private harassment
34+
Publishing others' private information, such as physical or electronic addresses, without explicit permission
35+
Other unethical or unprofessional conduct.
36+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
37+
This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
38+
Instances of abusive, harassing, or otherwise unacceptable behavior in Open Cluster Management may be reported by contacting `[email protected]`." [[Reference](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)]
39+
40+
## Getting Involved
41+
42+
Anyone who is interested in getting involved is welcome to contribute in a number of ways:
43+
44+
Join the recurring meeting forums (see below) to provide input as a stakeholder and help validate proposed use cases.
45+
Suggest enhancements via github.com/open-cluster-management-io/enhancements for consideration to the community.
46+
Contribute to development via Pull Request for new enhancements or defect fixes.
47+
48+
Suggested API and implementations will be accepted in accordance with the broad use cases outlined above. Our goal is to reserve the Kubernetes API Group open-cluster-management.io for well-reviewed and widely supported features.
49+
50+
## Community Meeting Forum
51+
52+
To ensure opportunities for broad user contributions, a public forum will be hosted to demonstrate new capabilities, solicit feedback and offer a forum for real time Q&A.
53+
Meeting recordings will be posted to a YouTube channel for offline viewing.
54+
55+
The community meets on a bi-weekly cadence on Thursday at 15:30 UTC.
56+
57+
Meeting Agenda and Topics can be found here: https://github.com/open-cluster-management-io/community/projects/1.
58+
59+
## Communication
60+
61+
See the following options to connect with the community:
62+
63+
- [Website](https://open-cluster-management.io)
64+
- [Slack](https://kubernetes.slack.com/archives/C01GE7YSUUF)
65+
- [Mailing group](https://groups.google.com/g/open-cluster-management)
66+
- [Community meetings](https://github.com/open-cluster-management-io/community#community-meetings)
67+
- [YouTube channel](https://www.youtube.com/channel/UC7xxOh2jBM5Jfwt3fsBzOZw)
68+
69+
## Governance
70+
71+
* **Committees** The project will initially have a 3-person Bootstrap Steering Committee. The present steering
72+
committee is a bootstrap committee and we want to work towards a future state where there is community representation and community determination of the steering committee members. In that future state, the steering committee size may be expanded to meet the needs of the community.
73+
74+
* **Special Interest Group (SIG)** are persistent open groups that focus on a part of the project.
75+
SIGs must have open and transparent proceedings.
76+
Anyone is welcome to participate and contribute provided they follow the Code of Conduct.
77+
78+
The project has a bootstrap [sig-architecture](sig-architecture) to provide oversight and guidance on API and architectural aspects of the project to ensure a consistent and robust technical foundation for the project. More SIGs are expected to be established with the evolution of the project.
79+
80+
## Public Roadmap
81+
82+
Roadmap is tracked using GitHub project. See https://github.com/open-cluster-management-io/community/projects/2
83+
84+
## Security Response
85+
86+
Please see https://github.com/open-cluster-management-io/ocm/blob/main/SECURITY.md.

OWNERS

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
approvers:
2+
- deads2k
3+
- jnpacker
4+
- mikeshng
5+
- qiujian16

README.md

+60-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,60 @@
1-
# ocm
1+
![image](assets/ocm-logo.png)
2+
3+
Welcome! The open-cluster-management.io project is focused on enabling end-to-end visibility and control across your Kubernetes clusters.
4+
5+
Please read the [MISSION.md](MISSION.md) statement for more information.
6+
7+
The open-cluster-management architecture uses a hub - agent model. The hub centralizes control of all the managed clusters. An agent, which we call the klusterlet, resides on each managed cluster to manage registration to the hub and run instructions from the hub.
8+
9+
10+
![image](assets/ocm-arch.png)
11+
12+
There are a number of key use cases that are enabled by this project, and are categorized to 3 sub projects.
13+
14+
### Cluster Lifecycle: Cluster registration and management
15+
16+
The API and controllers provide the function for cluster registration, manifests delivery, cluster scheduling and addon management. Simple core functions connect clusters, such as the klusterlet, to the hub. Other components run on this base. The following repositories describe the API and controllers:
17+
18+
* https://github.com/open-cluster-management-io/api
19+
* https://github.com/open-cluster-management-io/registration
20+
* https://github.com/open-cluster-management-io/work
21+
* https://github.com/open-cluster-management-io/placement
22+
* https://github.com/open-cluster-management-io/registration-operator
23+
* https://github.com/open-cluster-management-io/addon-framework
24+
25+
### Application Lifecycle: Delivery, upgrade, and configuration of applications on Kubernetes clusters
26+
27+
* Centrally create, update, and delete Kubernetes clusters across multiple private and public clouds.
28+
* Automatically deploy applications to specific clusters by subscribing to different workload (resource) channels, such as GitHub, Helm repository, ObjectStore, and resource templates.
29+
30+
The application model defines a Kubernetes-first way of describing the application. Your existing Kubernetes apps or `kustomized` apps can be adapted with the addition of a few new objects: `Channel`, and `Subscription`. Changes made to the app are then easily delivered to managed clusters based on the dynamic placement engine.
31+
32+
The following repositories describe the underlying API and controllers for the app model:
33+
34+
* https://github.com/open-cluster-management-io/multicloud-operators-subscription
35+
* https://github.com/open-cluster-management-io/multicloud-operators-channel
36+
37+
### GRC: Governance, Risk and Compliance across Kubernetes clusters
38+
39+
* Use prebuilt security and configuration controllers toto enforce policies on Kubernetes configuration across your clusters.
40+
41+
Policy controllers allow the declarative expression of a desired condition that can be audited or enforced against a set of managed clusters. _Policies_ allow you to drive cross-cluster configuration or validate that a certain configuration explicitly does not exist.
42+
43+
44+
The following repositories describe the underlying API and controllers for the GRC model:
45+
46+
* https://github.com/open-cluster-management-io/config-policy-controller
47+
* https://github.com/open-cluster-management-io/governance-policy-status-sync
48+
* https://github.com/open-cluster-management-io/governance-policy-spec-sync
49+
* https://github.com/open-cluster-management-io/governance-policy-template-sync
50+
* https://github.com/open-cluster-management-io/governance-policy-propagator
51+
52+
### Get connected
53+
54+
See the following options to connect with the community:
55+
56+
- [Website](https://open-cluster-management.io)
57+
- [Slack](https://kubernetes.slack.com/archives/C01GE7YSUUF)
58+
- [Mailing group](https://groups.google.com/g/open-cluster-management)
59+
- [Community meetings](https://github.com/open-cluster-management-io/community/projects/1)
60+
- [YouTube channel](https://www.youtube.com/channel/UC7xxOh2jBM5Jfwt3fsBzOZw)

SECURITY.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Security Response
2+
3+
If you've found a security issue that you'd like to disclose confidentially please contact Red Hat's Product Security team.
4+
Details at https://access.redhat.com/security/team/contact

assets/ocm-arch.drawio

+1
Large diffs are not rendered by default.

assets/ocm-arch.png

253 KB
Loading

assets/ocm-logo.png

39.7 KB
Loading
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Refer to our [Open Cluster Management Community Code of Conduct](https://github.com/open-cluster-management/community/blob/main/CODE_OF_CONDUCT.md)

0 commit comments

Comments
 (0)