Skip to content

Commit

Permalink
Modified the resource-migration docs
Browse files Browse the repository at this point in the history
  • Loading branch information
shivansh-bhatnagar18 committed May 25, 2024
1 parent 70ca923 commit c5862c7
Showing 1 changed file with 81 additions and 1 deletion.
82 changes: 81 additions & 1 deletion docs/tutorials/resource-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,4 +232,84 @@ nginx-svc NodePort 10.13.161.255 <none> 80:30000/TCP 54s app=
```

As you see, you shall find `nginx` application related resource are all propagated to `member2` cluster,
which means the higher priority `PropagationPolicy` does work.
which means the higher priority `PropagationPolicy` does work.

---

### Apply Higher Priority PropagationPolicy

#### Step 5: Write the code

Create a new file `/tmp/pp-for-nginx-app.yaml` and copy the text below into it:

```yaml
apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
name: nginx-pp
spec:
conflictResolution: Overwrite
placement:
clusterAffinity:
clusterNames:
- member1
- member2 ## propagate to more clusters other than member1
priority: 10 ## priority greater than above PropagationPolicy (10 > 0)
preemption: Always ## preemption should equal to Always
resourceSelectors:
- apiVersion: apps/v1
kind: Deployment
name: nginx-deploy
- apiVersion: v1
kind: Service
name: nginx-svc
schedulerName: default-scheduler
```

#### Step 6: Run the command

Apply this higher priority `PropagationPolicy` to the Karmada control plane:

```shell
kubectl --context karmada-apiserver apply -f /tmp/pp-for-nginx-app.yaml
propagationpolicy.policy.karmada.io/nginx-pp created
```

#### Step 7: Verification

```shell
kubectl --context member1 get deploy -o wide
kubectl --context member1 get svc -o wide
kubectl --context member2 get deploy -o wide
kubectl --context member2 get svc -o wide
```

You should see the `nginx` application related resources originally in `member1` also propagated to `member2`, completing the migration of resources :

- **member1**:

```shell
kubectl --context member1 get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx-deploy 2/2 2 2 5m24s nginx nginx:latest app=nginx
kubectl --context member1 get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
nginx-svc NodePort 10.13.161.255 <none> 80:30000/TCP 54s app=nginx
```

- **member2**:

```shell
kubectl --context member2 get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx-deploy 2/2 2 2 5m24s nginx nginx:latest app=nginx
kubectl --context member2 get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
nginx-svc NodePort 10.13.161.255 <none> 80:30000/TCP 54s app=nginx
```

This confirms that the higher priority `PropagationPolicy` has effectively propagated the `nginx` application resources to both `member1` and `member2` clusters, meeting the desired propagation requirements.

---

0 comments on commit c5862c7

Please sign in to comment.