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 | ||||
---|---|---|---|---|
| ||||
$ 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 | ||||
---|---|---|---|---|
| ||||
$ 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 | ||||
---|---|---|---|---|
| ||||
$ 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 |
...