You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For more details, visit the [multicloud-operators-subscription GitHub page](https://github.com/open-cluster-management-io/multicloud-operators-subscription).
28
+
For more details, visit the
29
+
[Argo CD Pull Integration GitHub page](https://github.com/open-cluster-management-io/argocd-pull-integration).
17
30
18
31
## Prerequisite
19
32
20
33
You must meet the following prerequisites to install the application lifecycle management add-on:
21
34
22
-
- Ensure [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl) and [kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) are installed.
35
+
- Ensure [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl) are installed.
36
+
37
+
- Ensure the OCM _cluster manager_ is installed. See [Start the control plane]({{< ref "docs/getting-started/installation/start-the-control-plane" >}}) for more information.
38
+
39
+
- Ensure the OCM _klusterlet_ is installed. See [Register a cluster]({{< ref "docs/getting-started/installation/register-a-cluster" >}}) for more information.
40
+
41
+
- Ensure `clusteradm` CLI tool is installed. Download and extract the [clusteradm binary](https://github.com/open-cluster-management-io/clusteradm/releases/latest). For more details see the [clusteradm GitHub page](https://github.com/open-cluster-management-io/clusteradm/blob/main/README.md#quick-start).
23
42
24
-
- Ensure the `open-cluster-management`_cluster manager_ is installed. See [Start the control plane]({{< ref "docs/getting-started/installation/start-the-control-plane" >}}) for more information.
43
+
## Installation
25
44
26
-
- Ensure the `open-cluster-management`_klusterlet_ is installed. See [Register a cluster]({{< ref "docs/getting-started/installation/register-a-cluster" >}}) for more information.
Ensure `clusteradm` CLI tool is installed. Download and extract the [clusteradm binary](https://github.com/open-cluster-management-io/clusteradm/releases/latest). For more details see the [clusteradm GitHub page](https://github.com/open-cluster-management-io/clusteradm/blob/main/README.md#quick-start).
52
+
See [Argo CD website](https://argo-cd.readthedocs.io/en/stable/getting_started/) for more details.
31
53
32
-
```Shell
33
-
$ clusteradm
34
-
Usage:
35
-
clusteradm [command]
36
-
...
37
-
```
54
+
Install the OCM Argo CD add-on on the Hub cluster:
38
55
39
-
Deploy the subscription operators to the hub cluster.
Create the `open-cluster-management-agent-addon` namespace on the managed cluster and it's optional if `clusteradm` is used which create the ns during `join` action.
100
+
The label allows the pull model controller to select the Application for processing.
namespace/open-cluster-management-agent-addon created
99
-
```
102
+
The `skip-reconcile` annotation is to prevent the Application from reconciling on the Hub cluster.
100
103
101
-
Deploy the subscription add-on in corresponding managedcluster namespace on the hub cluster.
104
+
The `ocm-managed-cluster` annotation is for the ApplicationSet to generate multiple Application based on each cluster generator targets.
102
105
103
-
```Shell
104
-
$ kubectl config use-context ${CTX_HUB_CLUSTER}
105
-
$ make deploy-addon
106
-
$ kubectl -n ${MANAGED_CLUSTER_NAME} get managedclusteraddon # kubectl -n cluster1 get managedclusteraddon
107
-
NAME AVAILABLE DEGRADED PROGRESSING
108
-
application-manager True
109
-
```
106
+
When this guestbook ApplicationSet reconciles, it will generate an Application for the registered Managed clusters. For example:
110
107
111
-
Check the the subscription add-on deployment on the managed cluster.
108
+
```shell
109
+
$ kubectl -n argocd get appset
110
+
NAME AGE
111
+
guestbook-app 84s
112
+
$ kubectl -n argocd get app
113
+
NAME SYNC STATUS HEALTH STATUS
114
+
cluster1-guestbook-app
115
+
cluster2-guestbook-app
116
+
```
112
117
113
-
```Shell
114
-
$ kubectl -n open-cluster-management-agent-addon get deploy --context ${CTX_MANAGED_CLUSTER}
115
-
NAME READY UP-TO-DATE AVAILABLE AGE
116
-
application-manager 1/1 1 1 103s
117
-
```
118
+
On the Hub cluster, the pull controller will wrap the Application with a ManifestWork. For example:
118
119
119
-
## What is next
120
+
```shell
121
+
$ kubectl -n cluster1 get manifestwork
122
+
NAME AGE
123
+
cluster1-guestbook-app-d0e5 2m41s
124
+
```
120
125
121
-
After a successful deployment, test the subscription operator with a `helm` subscription. Run the following command where the examples/helmrepo-hub-channel locates at [here](https://github.com/open-cluster-management-io/multicloud-operators-subscription/tree/main/examples/helmrepo-hub-channel):
126
+
On a Managed cluster, you should see that the Application is pulled down successfully. For example:
After a while, you should see the subscription is propagated to the managed cluster and the Helm app is installed. By default, when a subscribed applications is deployed to the target clusters, the applications are installed in the coresponding subscription namespace. To confirm, run the following command:
128
-
129
-
```Shell
130
-
$ kubectl get subscriptions.apps --context ${CTX_MANAGED_CLUSTER}
131
-
NAME STATUS AGE LOCAL PLACEMENT TIME WINDOW
132
-
nginx-sub Subscribed 107m true
133
-
$ kubectl get pod --context ${CTX_MANAGED_CLUSTER}
On the Hub cluster, the status controller will sync the dormant Application with the ManifestWork status feedback. For example:
138
138
139
-
### Try this out
140
-
141
-
Let [VScode Extension]({{< ref "docs/developer-guides/vscode-extension" >}}) help you out!
142
-
143
-
Create a Bootstrap Project specifically tailored to your channel type, with all the Custom Resource (CR) templates you will need already auto-generated to get you started!
0 commit comments