Nephio manual deployment on multiple VMs

Nephio manual deployment on different VMs

Prerequisites

  • Cluster Management (master)
    • 4 vCPU
    • 8 GB RAM
    • Kubernetes version 1.26+
  • Cluster Edge n
    • 2 vCPU 1 NODE
    • 4 GB RAM
    • Kubernetes version 1.26+
  • KPT beta releases

Installation of the management cluster

Automatic installation of the management cluster using the sandbox Ansible script

Override the default Ansible values and run the installation script in test-infra\e2e\provision\init.sh by changing the k8s.context with your

kubectl config get-contexts

then run:

export NEPHIO_USER=$USER
export ANSIBLE_CMD_EXTRA_VAR_LIST="k8s.context=kubernetes-admin@cluster.local kind.enabled=false host_min_vcpu=4 host_min_cpu_ram=8"

curl -fsSL https://raw.githubusercontent.com/nephio-project/test-infra/main/e2e/provision/init.sh | sudo -E bash

Manual Installation of the management cluster using kpt

Manual Installation of the Edge cluster using kpt

Install config-sync using:

kpt pkg get --for-deployment https://github.com/nephio-project/catalog.git/nephio/core/configsync@main
kpt fn render configsync
kpt live init configsync
kpt live apply configsync --reconcile-timeout=15m --output=table

Get the Roosync kpt package and edit it:

kpt pkg get https://github.com/nephio-project/catalog.git/nephio/optional/rootsync@main

Change ./rootsync/rootsync.yaml and point spec.git.repo to the edge git repository

 spec:
   sourceFormat: unstructured
   git:
    repo: <http url of your edge repo>
     branch: main
     auth: none

Deploy the modified configsync

kpt live init rootsync
kpt live apply rootsync --reconcile-timeout=15m --output=table

Configure Management Cluster to manage Edge Cluster

Get a GitHub token if your repository is private, or allow Porch to make modifications.

Register the edge repository using kpt cli or nephio web-ui.

GITHUB_USERNAME=<Github Username>
GITHUB_TOKEN=<GitHub Token>

porchctl repo register \
  --namespace default \
  --repo-basic-username=${GITHUB_USERNAME} \
  --repo-basic-password=${GITHUB_TOKEN} \
  --create-branch=true \
  --deployment=true \
  <http url of your edge repo>

Deploy packages to the edge clusters

Using the web-ui, add a new deployment to the edge workload cluster.