Versions Compared

Key

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

This is work in progress

Introduction

The helm manager is a service for managing helm charts.  The service provides a REST API for onboarding of charts as well as installation and uninstallation of applications based on these charts.

...

  • As docker container on a local machine with kubernbetes
  • As kubernetes service and pod on a local machine with kubernetes or in minikube
  • As kubernetes service and pod on a kubernetes cluster

Prerequisites

The following need to be installed, latest version,  on the machine 

  • Kubernetes or minikube including kubectl
  • curl
  • git (if buidling image)
  • maven (if buidling image)
  • docker (for image build and image registry) 
  • helm

Preparation

Clone the nonrtric repo from gerrit and change dir to helm-manager. Make sure to use the correct branch when cloning, use "master" until the branch for D Release is available.

...

Code Block
languagebash
themeMidnight
$ git clone "https://gerrit.o-ran-sc.org/r/nonrtric" -b <branch>

$ cd helm-manager

Build image

There is no need to build the image for the helm manager unless changes are made to the Dockerfile in the current dir.

...

Note: Locally built images are not available to a kubernetes cluster unless the image is made available in an image repo accessible from within the cluster.

Create helm chart for test

Create a helm chart for this test. Package the chart into an archive. Run these two commands. The result should be a file named simple-app-0.1.0.tgz.

Code Block
languagebash
themeMidnight
$ helm create simple-app

$ helm package simple-app


Run in kubernetes

This instruction is valid for running both in a local kubernetes and in a kubernetes ccluster

...

Code Block
languagebash
themeMidnight
$ kubectl delete -f kubehelm-hmmanager.yaml
service "helmmanagerservice" deleted
pod "helmmanagerservice" deleted
persistentvolume "helm-manager-service-pv" deleted
persistentvolumeclaim "helm-manager-service-pvc" deleted

$ kubectl delete -f kube-cm.yaml
service "chartrepo" deleted
pod "chartrepo" deleted
persistentvolume "chartrepo-pv" deleted
persistentvolumeclaim "chartrepo-pvc" deleted

$ kubectl delete -f helm-manager-sa.yaml
serviceaccount "helm-manager-sa" deleted
clusterrolebinding.rbac.authorization.k8s.io "helm-manager-sa-clusterrolebinding" deleted


Run in docker with local kubernetes

The helm-manger is possible to run as a docker container. However, a local kubernetes must be running where the application can be installed.

...

Code Block
languagebash
titledocker-hm.sh
collapsetrue
docker run \
    --rm  \
    -it \
    -p 8112:8083  \
    --name helmmanagerservice \
    --network nonrtric-docker-net \
    -v $(pwd)/mnt/database:/var/helm-manager/database \
    -v ~/.kube:/root/.kube \
    -v ~/.helm:/root/.helm \
    -v ~/.config/helm:/root/.config/helm \
    -v ~/.cache/helm:/root/.cache/helm \
    -v $(pwd)/config/KubernetesParticipantConfig.json:/opt/app/helm-manager/src/main/resources/config/KubernetesParticipantConfig.json \
    -v $(pwd)/config/application.yaml:/opt/app/helm-manager/src/main/resources/config/application.yaml \
    nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-helm-manager:1.0.0-SNAPSHOT

...