Installation Guide

Welcome to the AppNet installation guide. This document provides step-by-step instructions on how to set up AppNet and its dependencies.

Requirements:

First, clone the AppNet repo:

git clone git@github.com:appnet-org/appnet.git --recursive
cd appnet
conda create -y -n appnet python=3.10
conda activate appnet

Install the CLI

appnetctl is a command line program to manage the AppNet control plane.

To install the CLI, run

. ./install.sh

Once installed, verify the CLI and other tools is running correctly with:

appnetctl version
appnetctl verify

Lastly, install the CRDs into the cluster:

make install

Requirements

Kubernetes

To install a Kubernetes cluster, we recommend using kubeadm. Follow the steps below:

  1. Install the Control Plane:
. ./utils/k8s_setup.sh
  1. (Optional) Set Up Worker Nodes:
  • First, prepare the worker nodes:
. ./utils/k8s_setup_worker.sh
  • Then, join the cluster using kubeadm join. Run the following command on the control plane node to get the join command:
kubeadm token create --print-join-command

Note: if you plan to use a multi-node cluster, make sure you can ssh other nodes from the control plane node.

  1. Verify Installation:
kubectl version

For additional installation methods (e.g., KIND, Minikube), visit this page

(Optional) We highly recommend installing k9s for visualizing your clutser.

Istio

Istio can be installed in either sidecar mode or ambient mode. Choose the one that best fits your requirements:

  • Sidecar Mode
. ./utils/istio_setup_sidecar.sh
  • Ambient Mode
. ./utils/istio_setup_ambient.sh

Go

See this page for installation instructions.

Rust

Install Rust by running the following command:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Protoc

Install the Protocol Buffers Compiler and the necessary Go plugins with these commands:

sudo apt -y install protobuf-compiler

Conda

See this page for installation instructions.

For ubuntu users:

wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh -O Miniconda.sh
bash Miniconda.sh