Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To address a large variety of setups, multiple methods of deployment should be supported.  Deployment works both on x86_64 and aarch64 hw.

MethodPros (current state)Cons (current state)Prerequisites
Manual installation
  • Full control over each step
  • Easy to understand and replicate
  • Already available (see next chapter on this page)
  • Requires user intervention
  • Requires certain prerequisites be met on cluster nodes apriori
  • preinstalled operating system (Ubuntu 16.04/18.04) on all involved nodes
Script-based installation
  • High degree of flexibility via arguments
  • Portable
  • Can be used in CI/CD, assuming baremetal nodes are pre-provisioned, e.g. for shorter test cycles like a patch verify job where we'd want to avoid reinstalling the operating system each time
  • Implementation currently in progress
  • Fixed number of nodes (1 master + 1 worker)
  • Requires certain prerequisites be met on cluster nodes apriori
  • preinstalled operating system (Ubuntu 16.04/18.04) on all involved nodes
  • user with passwordless sudo access already available on the target nodes
OPNFV-based installer(s)
  • Unified and standardized input configuration files (PDF/IDF)
  • Can be used in CI/CD
  • Can handle OS provisioning on its own, for virtual, baremetal or hybrid PODs
  • Not yet implemented
  • Requires hardware descriptor files (PDF/IDF)
  • Jumpserver (installer) node preinstalled
  • XDF (PDF/IDF) available for the target lab
Heat stack
  • Portable
  • Not implementedtested on aarch64 yet
  • Uses VMs rather than baremetal
  • Openstack cloud preinstalled
Other installer solutions (e.g. Airship)
  • Alignment with industry standard installer solutions for K8s
  • Not implemented
  • More complex design and configuration
  • Might be overkill for IEC, at least with the current requirements
  • TBD

...

Please use the following command to install etcd database. 


Code Block
languagebash
   $ kubectl apply -fwget https://raw.githubusercontent.com/Jingzhao123iecedge/arm64TemporaryCalicoiec/temporay_arm64/
   v3.3/getting-started/kubernetes/installation/hosted/etcd-arm64.yaml

...

master/src/foundation/scripts/cni/calico/etcd.yaml
   $ sed -i "s/10.96.232.136/${CLUSTER_IP}/" ./etcd.yaml
   $ kubectl apply -f etcd.yaml

Install the RBAC Roles required for Calico

...

Code Block
languagebash
   $ wget https://docsraw.projectcalicogithubusercontent.orgcom/v3.3/getting-started/kubernetes/installation/hostediecedge/iec/master/src/foundation/scripts/cni/calico/calico.yaml

Since the "quay.io/calico" image repo does not support does not multi-arch, we have to replace the “quay.io/calico” image path to "calico" which supports multi-arch.

Code Block
languagebash
   $ sed -i "s/quay.io\/calico/calico/" s@10.96.232.136@${CLUSTER_IP}@; s@192.168.0.0/16@${POD_NETWORK_CIDR}@" ./calico.yaml

Deploy the Calico using following command:

...

Code Block
languagebash
     $ git clone -b stable/hunter https://github.com/opnfv/fuel
     $ fuel/ci/deploy.sh -l arm -p virtual2 -s k8-nosdn-iec-noha -S /var/lib/opnfv/tmpdir/ -D |& tee deploy.log

Heat Orchestration Templates

Prerequisites:

  • Openstack Ocata or latest

Recommended configuration:

  • 2 or more compute nodes with enough RAM and disk (128 GB of RAM, 2 TB disk space)
  • DPDK is optional but it is recommended

The scripts and templates can be found in the Akraino iec git repository:

Code Block
languagebash
titleIEC HOT
$ git clone https://gerrit.akraino.org/r/iec
$ cd iec/src/foundation/hot
$ # [has_dpdk=true] [skip_k8s_net=1] [skip_k8s_master=1] [skip_k8s_slaves=1] external_net=<external_net> ./control.sh <start|stop>
$ has_dpdk=true external_net=external ./control.sh start

More useful information can be found in the README in the same directory