---
# System prepended metadata

title: 2022 Beijing Borathon - Cloudnativer

---

# 2022 Beijing Borathon - Cloudnativer

Sep. 6th; 
Hacking Sep. 20-22nd; Final Sep. 23rd

## Steps
1. discuss the idea
2. identify final target
3. make a plan - Basic goal, medium goal, stretch goal
4. coding & PPTing
5. show case & have fun
6. any things pententable ?

## Idea
### Problem we want to solve
CSI introduced, but there are lots of legacy stateful workloads which are still using in-tree storage driver, which means, they cannot use the fancy functions provided by CSI, e.g. snapshot.

### Goal
Write a tanzu plugin that can:
* find out legacy workloads (basic goal)
* backup them (medium goal)
* auto migrate them to use CSI (basic goal)
* able to keep service live during migration (stretch goal)


# Unknown
1. Platform: vSphere or AWS ?

## Majour Work Items
0. PPT & Scripts

1. How to make sure service alive -> two deployments/statefulset one service or inplace ? --> Ping

2. Migrate legacy PV to new PV with CSI -> Jeff

3. tanzu CLI plugin: CLI, intergration -> Hongtai/Qing

4. Repo prepare, testbed and validation -> Jin


## Task Split

1. PPT and write demo scripts

3. Implementation
4.1 List legacy workloads and related mapping CSI objects
5.2 a new tanzu plugin and use item 2.3, 2.4, and 2.5 tanzu cl stswl list/migrate


2.3 logic to auto migrate legacy objects to new objects
2.4 backup & restore solution
2.5 design service that can still work during migration


3. Intergration & Testing

sample:
1. migrate PVC/PV : PVC1 -> PVC2
2. in-place upgrade pod without create a new one in deployment: pod-1 reference PVC1 to PVC2
3. deployment/service no change needed

pod.yaml -> PVC1 PVC2 -> kubelet aware this but no action

Open Issues:
* vSphere CSI in-tree -> out-of-tree FCD sored in different location, are they the same ?


## Other ideas
### Cross Cloud K8s Cluster

A:
- TKGM cluster-A in AWS TKGm cluster-B in Azure
- unified management plane to schedule pods/pvc cross cluster-A and cluster-B --> k8s fed v2, booking.com -> shipper --> CRD + Controller --> CrossClusterDeployment -> cluster A or cluster B ?


B: TKGm cluster-C, worker1, worker2 in AWS; worker3, worker4 in Azure

Possiblity 1
1. create cluster-aws and cluster-azure
2. deploy more machinedeployment in cluster-azure
3. but change machinedeployment in cluster-azure by point to cluster-aws's control plane

https://aws.amazon.com/storagegateway/volume/

issue: how networking work ?

Possiblity 2
1. use crossplane to provision VMs in aws and azure with public IP and connect them

### Sharing Kubernetes PV cross clouds


# Ref:
1. kmotion ( migration tool )


