Step 1: Create the avi-system
namespace:
kubectl create ns avi-system
Note: Starting AKO-1.4.3, AKO can run in namespaces other tha
avi-system
. The namespace in which AKO is deployed, is governed by the--namespace
flag value provided duringhelm install
(Step 4). There are no updates in any setup steps whatsoever.avi-system
has been kept as is in the entire documentation, and should be replaced by the namespace provided during AKO installation.
Step 2: Add this repository to your helm CLI
helm repo add ako https://projects.registry.vmware.com/chartrepo/ako
Note: The helm charts are present in VMWare’s public harbor repository
Step 3: Search the available charts for AKO
helm search repo
NAME CHART VERSION APP VERSION DESCRIPTION
ako/ako 1.4.2 1.4.2 A helm chart for Avi Kubernetes Operator
Use the values.yaml
from this chart to edit values related to Avi configuration. To get the values.yaml for a release, run the following command
helm show values ako/ako --version 1.4.2 > values.yaml
Values and their corresponding index can be found here
Step 4: Install AKO
helm install ako/ako --generate-name --version 1.4.2 -f /path/to/values.yaml --set ControllerSettings.controllerHost=<controller IP or Hostname> --set avicredentials.username=<avi-ctrl-username> --set avicredentials.password=<avi-ctrl-password> --namespace=avi-system
Step 5: Check the installation
helm list -n avi-system
NAME NAMESPACE
ako-1593523840 avi-system
Simply run:
Step1:
helm delete <ako-release-name> -n avi-system
Note: the ako-release-name is obtained by doing helm list as shown in the previous step,
Step 2:
kubectl delete ns avi-system
Follow these steps if you are upgrading from an older AKO release.
Step1
Helm does not upgrade the CRDs during a release upgrade. Before you upgrade a release, run the following command to download and upgrade the CRDs:
helm template ako/ako --version 1.4.2 --include-crds --output-dir <output_dir>
This will save the helm files to an output directory which will contain the CRDS corresponding to the AKO version. To install the CRDS:
kubectl apply -f <output_dir>/ako/crds/
Step2
helm list -n avi-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ako-1593523840 avi-system 1 2020-09-16 13:44:31.609195757 +0000 UTC deployed ako-1.3.1 1.3.1
Step3
Update the helm repo URL
helm repo add --force-update ako https://projects.registry.vmware.com/chartrepo/ako
"ako" has been added to your repositories
Note: From AKO 1.3.3, we are migrating our charts repo to VMWare’s harbor repository and hence a force update of the repo URL is required for a successful upgrade process from 1.3.3
Step4
Get the values.yaml for the latest AKO version
helm show values ako/ako --version 1.4.2 > values.yaml
Upgrade the helm chart
helm upgrade ako-1593523840 ako/ako -f /path/to/values.yaml --version 1.4.2 --set ControllerSettings.controllerHost=<IP or Hostname> --set avicredentials.password=<username> --set avicredentials.username=<username> --namespace=avi-system
The following table lists the configurable parameters of the AKO chart and their default values. Please refer to this link for more details on each parameter.
Parameter | Description | Default |
---|---|---|
ControllerSettings.controllerVersion |
Avi Controller version | 18.2.10 |
ControllerSettings.controllerHost |
Specify Avi controller IP or Hostname | nil |
ControllerSettings.cloudName |
Name of the cloud managed in Avi | Default-Cloud |
ControllerSettings.tenantsPerCluster |
Set to true if user want to map each kubernetes cluster uniquely to a tenant in Avi | false |
ControllerSettings.tenantName |
Name of the tenant where all the AKO objects will be created in AVI. | admin |
L7Settings.shardVSSize |
Shard VS size enum values: LARGE, MEDIUM, SMALL, DEDICATED | LARGE |
AKOSettings.fullSyncFrequency |
Full sync frequency | 1800 |
L7Settings.defaultIngController |
AKO is the default ingress controller | true |
ControllerSettings.serviceEngineGroupName |
Name of the Service Engine Group | Default-Group |
NetworkSettings.nodeNetworkList |
List of Networks and corresponding CIDR mappings for the K8s nodes. | Empty List |
AKOSettings.clusterName |
Unique identifier for the running AKO instance. AKO identifies objects it created on Avi Controller using this param. | required |
NetworkSettings.subnetIP |
Subnet IP of the data network | required |
NetworkSettings.subnetPrefix |
Subnet Prefix of the data network | required |
NetworkSettings.vipNetworkList |
List of Network Names for VIP network, multiple networks allowed only for AWS Cloud | required |
NetworkSettings.enableRHI |
Publish route information to BGP peers | false |
NetworkSettings.bgpPeerLabels |
Select BGP peers using bgpPeerLabels, for selective VsVip advertisement. | Empty List |
L4Settings.defaultDomain |
Specify a default sub-domain for L4 LB services | First domainname found in cloud’s dnsprofile |
L4Settings.autoFQDN |
Specify the layer 4 FQDN format | default |
L7Settings.noPGForSNI |
Skip using Pool Groups for SNI children | false |
L7Settings.l7ShardingScheme |
Sharding scheme enum values: hostname, namespace | hostname |
AKOSettings.cniPlugin |
CNI Plugin being used in kubernetes cluster. Specify one of: calico, canal, flannel | required for calico setups |
AKOSettings.logLevel |
logLevel enum values: INFO, DEBUG, WARN, ERROR. logLevel can be changed dynamically from the configmap | INFO |
AKOSettings.deleteConfig |
set to true if user wants to delete AKO created objects from Avi. deleteConfig can be changed dynamically from the configmap | false |
AKOSettings.disableStaticRouteSync |
Disables static route syncing if set to true | false |
AKOSettings.apiServerPort |
Internal port for AKO’s API server for the liveness probe of the AKO pod | 8080 |
AKOSettings.layer7Only |
Operate AKO as a pure layer 7 ingress controller | false |
avicredentials.username |
Avi controller username | empty |
avicredentials.password |
Avi controller password | empty |
image.repository |
Specify docker-registry that has the AKO image | avinetworks/ako |
vipNetworkList
,subnetIP
andsubnetPrefix
are required fields which are used for allocating VirtualService IP by IPAM Provider module
Each AKO instance mapped to a given Avi cloud should have a unique clusterName parameter. This would maintain the uniqueness of object naming across Kubernetes clusters.