Installation Guide
Welcome to the AppNet installation guide. This document provides step-by-step instructions on how to set up AppNet and its dependencies.
Note: The following scripts are tested on Ubuntu 20.04. We plan to add support for other platforms soon.
Cloning the Repository
First, clone the AppNet repo:
git clone git@github.com:appnet-org/appnet.git --recursive
cd appnet
Before you start, make sure you have the following installed:
Requirements:
- Kubernetes (v1.28+)
- Istio (v1.22.x)
- Note: AppNet's support for istio 1.23.x is in progress.
- Go (v1.22.2)
- Rust (v1.71+)
- protoc
- Conda
Install the CLI
appnetctl
is a command line program to manage the AppNet control plane. To install the CLI, follow these steps:
- Create a Conda environment:
conda create -y -n appnet python=3.10
conda activate appnet
- Run the installation script:
. ./install.sh
- Verify the CLI and other tools are running correctly:
user@h1:~/appnet$ appnetctl version
Version: v0.1.0
user@h1:~/appnet$ appnetctl verify
Verifying AppNet installation status...
✔ Python installed.
✔ Rust installed.
✔ Kubernetes installed.
✔ protoc installed.
✔ Istio installed.
- Lastly, install the CRDs into the cluster:
make install
Requirements
Kubernetes
To install a Kubernetes cluster, we recommend using kubeadm. Follow the steps below:
- Install the Control Plane:
. ./utils/k8s_setup.sh
- (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.
- Verify Installation:
kubectl version
For additional installation options (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 (if you want to use both sidecar and ambient mode, please install using ambient script):
- Sidecar Mode
. ./utils/istio_setup_sidecar.sh
- Ambient Mode
. ./utils/istio_setup_ambient.sh
Go
Install Go by running the following command:
wget https://go.dev/dl/go1.22.1.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
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