Skip to content

Commit 15401fb

Browse files
author
Per Goncalves da Silva
committed
organize docs
Signed-off-by: Per Goncalves da Silva <[email protected]>
1 parent de17da9 commit 15401fb

26 files changed

+210
-179
lines changed

README.md

Lines changed: 8 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -2,137 +2,25 @@
22
The operator-controller is the central component of Operator Lifecycle Manager (OLM) v1.
33
It extends Kubernetes with an API through which users can install extensions.
44

5-
## Mission
5+
## Overview
6+
7+
OLM v1 is the follow-up to [OLM v0](https://github.com/operator-framework/operator-lifecycle-manager). Its purpose is to provide APIs,
8+
controllers, and tooling that support the packaging, distribution, and lifecycling of Kubernetes extensions. It aims to:
69

7-
OLM’s purpose is to provide APIs, controllers, and tooling that support the packaging, distribution, and lifecycling of Kubernetes extensions. It aims to:
810
- align with Kubernetes designs and user assumptions
911
- provide secure, high-quality, and predictable user experiences centered around declarative GitOps concepts
1012
- give cluster admins the minimal necessary controls to build their desired cluster architectures and to have ultimate control
1113

12-
## Overview
13-
14-
OLM v1 is the follow-up to OLM v0, located [here](https://github.com/operator-framework/operator-lifecycle-manager).
15-
1614
OLM v1 consists of two different components:
15+
1716
* operator-controller (this repository)
1817
* [catalogd](https://github.com/operator-framework/catalogd)
1918

20-
For a more complete overview of OLM v1 and how it differs from OLM v0, see our [overview](docs/olmv1_overview.md).
21-
22-
### Installation
23-
24-
The following script will install OLMv1 on a Kubernetes cluster. If you don't have one, you can deploy a Kubernetes cluster with [KIND](https://sigs.k8s.io/kind).
25-
26-
> [!CAUTION]
27-
> Operator-Controller depends on [cert-manager](https://cert-manager.io/). Running the following command
28-
> may affect an existing installation of cert-manager and cause cluster instability.
29-
30-
The latest version of Operator Controller can be installed with the following command:
31-
32-
```bash
33-
curl -L -s https://github.com/operator-framework/operator-controller/releases/latest/download/install.sh | bash -s
34-
```
35-
36-
## Getting Started with OLM v1
37-
38-
This quickstart procedure will guide you through the following processes:
39-
* Deploying a catalog
40-
* Installing, upgrading, or downgrading an extension
41-
* Deleting catalogs and extensions
42-
43-
### Create a Catalog
44-
45-
OLM v1 is designed to source content from an on-cluster catalog in the file-based catalog ([FBC](https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs)) format.
46-
These catalogs are deployed and configured through the `ClusterCatalog` resource. More information on adding catalogs
47-
can be found [here](./docs/Tasks/adding-a-catalog).
48-
49-
The following example uses the official [OperatorHub](https://operatorhub.io) catalog that contains many different
50-
extensions to choose from. Note that this catalog contains packages designed to work with OLM v0, and that not all packages
51-
will work with OLM v1. More information on catalog exploration and content compatibility can be found [here](./docs/refs/catalog-queries.md).
52-
53-
To create the catalog, run the following command:
54-
55-
```bash
56-
# Create ClusterCatalog
57-
kubectl apply -f - <<EOF
58-
apiVersion: catalogd.operatorframework.io/v1alpha1
59-
kind: ClusterCatalog
60-
metadata:
61-
name: operatorhubio
62-
spec:
63-
source:
64-
type: image
65-
image:
66-
ref: quay.io/operatorhubio/catalog:latest
67-
pollInterval: 10m
68-
EOF
69-
```
70-
71-
Once the catalog is unpacked successfully, its content will be available for installation.
72-
73-
```bash
74-
# Wait for the ClusterCatalog to be unpacked
75-
kubectl wait --for=condition=Unpacked=True clustercatalog/operatorhubio --timeout=60s
76-
```
77-
78-
### Install a Cluster Extension
79-
80-
For simplicity, the following example manifest includes all necessary resources to install the ArgoCD operator.
81-
The manifest includes installation namespace, installer service account and associated minimal set of RBAC permissions
82-
needed for installation, and the ClusterExtension resource, which specifies the name and version of the extension to install.
83-
More information on installing extensions can be found [here](docs/Tasks/installing-an-extension).
84-
85-
```bash
86-
# Apply the sample ClusterExtension. Manifest already includes
87-
# namespace and adequately privileged service account
88-
kubectl apply -f https://raw.githubusercontent.com/operator-framework/operator-controller/main/config/samples/olm_v1alpha1_clusterextension.yaml
89-
```
90-
91-
### Upgrade the Cluster Extension
92-
93-
To upgrade the installed extension, update the version field in the ClusterExtension resource. Note that
94-
there must be CRD compatibility between the versions being upgraded, and the target version must be
95-
compatible with OLM v1. More information on CRD upgrade safety can be found [here](./docs/refs/crd-upgrade-safety.md),
96-
compatible with OLM v1. More information on CRD upgrade safety can be found [here](./docs/refs/crd-upgrade-safety.md),
97-
and on the extension upgrade process [here](./docs/drafts/Tasks/upgrading-an-extension).
98-
99-
```bash
100-
# Update to v0.11.0
101-
kubectl patch clusterextension argocd --type='merge' -p '{"spec": {"source": {"catalog": {"version": "0.11.0"}}}}'
102-
103-
```
104-
105-
For information on the downgrade process, see [here](docs/drafts/downgrading-an-extension.md).
106-
107-
### Uninstall the Cluster Extension
108-
109-
To uninstall an extension, delete the ClusterExtension resource. This will trigger the uninstallation process, which will
110-
remove all resources created by the extension. More information on uninstalling extensions can be found [here](./docs/Tasks/uninstalling-an-extension).
111-
112-
```bash
113-
# Delete cluster extension and residing namespace
114-
kubectl delete clusterextension/argocd
115-
```
116-
117-
#### Cleanup
118-
119-
Extension installation requires the creation of a namespace, an installer service account, and its RBAC. Once the
120-
extension is uninstalled, these resources can be cleaned up.
121-
122-
```bash
123-
# Delete namespace, and by extension, the installer service account, Role, and RoleBinding
124-
kubectl delete namespace argocd
125-
```
19+
For a more complete overview of OLM v1 and how it differs from OLM v0, see our [overview](docs/general/olmv1_design_decisions.md).
12620

127-
```bash
128-
# Delete installer service account cluster roles
129-
kubectl delete clusterrole argocd-installer-clusterrole && kubectl delete clusterrole argocd-rbac-clusterrole
130-
```
21+
## Getting Started
13122

132-
```bash
133-
# Delete installer service account cluster role bindings
134-
kuebctl delete clusterrolebinding argocd-installer-binding && kubectl delete clusterrolebinding argocd-rbac-binding
135-
```
23+
To get started with OLM v1, please see our [Getting Started](docs/general/olmv1_getting_started.md) documentation.
13624

13725
## License
13826

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)