Commit fb802adc authored by hasanyeganeh's avatar hasanyeganeh
Browse files

Add O-RAN packages to the repo

parent f293be5e
Loading
Loading
Loading
Loading
Loading
+312 −0
Original line number Diff line number Diff line
# Overview

**Note: This is WIP so your mileage may vary, but you are welcome to create an issue if there are problems you are facing using this documentation.**

This directory contains the source code for the new installer for the NearRT RIC Platform. The new installer leverages a single helm chart for installation. The components deployed during installations are determined by various flags present in the `values.yaml` file of the chart, which can be overridden using an override file.

The code is organized as follows

  |
  + helm
  | |
  | + charts
  |   |
  |   + Makefile
  |   + nearrtric/
  |     |
  |     + Makefile
  |     + a1mediator/
  |     + appmgr/
  |     + dbaas/
  |     + e2mgr/
  |     + e2term/
  |     + nearrt-ric-common/
	|		...
  |
  + helm-overrides/
    |
    + nearrtric/
      |
      + example-override-file.yaml

# Supported Versions

Following software versions are currently supported.

  - `minikube` with supported `k8s` version.
  - kubernetes 1.22 and above. A number of API versions were deprecated starting from this version. This should thus serve as a good
  - Helm Charts version 3

This setup is tested on Ubuntu 22.04 with following `minikube`, `k8s`, `kubectl` and `helm` versions.

```bash
$ uname -mvp
#26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jul 13 16:27:29 UTC 2 x86_64 x86_64

$ kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.1", GitCommit:"3ddd0f45aa91e2f30c70734b175631bec5b5825a", GitTreeState:"clean", BuildDate:"2022-05-24T12:26:19Z", GoVersion:"go1.18.2", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.4
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.1", GitCommit:"8f94681cd294aa8cfd3407b8191f6c70214973a4", GitTreeState:"clean", BuildDate:"2023-01-18T15:51:25Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"linux/amd64"}
WARNING: version difference between client (1.24) and server (1.26) exceeds the supported minor version skew of +/-1

$ minikube version
minikube version: v1.29.0
commit: ddac20b4b34a9c8c857fc602203b6ba2679794d3

$ helm version
version.BuildInfo{Version:"v3.11.2", GitCommit:"912ebc1cd10d38d340f048efaf0abda047c3468e", GitTreeState:"clean", GoVersion:"go1.18.10"}

```

# Getting Started

## Setup and Pre-requisites

These instructions assume that you have `minikube` and `kubectl` installed.

## Starting `minikube`

First start `minikube` using the following command.

```bash
$ minikube start --driver=docker

```
We are using the 'docker' driver because this allows us to set up tunnels and expose services to the host using the Kubernetes Ingress Controller. The other drivers may also work but are not tested so far. This will start the 'minikube kubernetes cluster'. You can interact with this cluster using `kubectl`.

Also, note that you may have to set the environment variables like `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` if you are behind an HTTP Proxy. Otherwise Kubernetes won't be able to pull the images.

```bash
$ kubectl get pods -A
```

## Creating Platform and Xapp Namespaces

After this step we need to create the namespaces for our deployment. Note: The namespaces need to be created every time we create a new cluster (not upon restarting the cluster).

```bash
$ kubectl create ns ricplt
$ kubectl create ns ricxapp
```

This sets up the cluster for subsequent installation of the NearRT RIC platform components.

## Installing and Running Chart Museum

One current limitation of this installation is - the XApp on-boarding functionality is not fully integrated into the `k8s` deployment as a result following steps need to be run manually for on-boarding and  creating installation packages of XApps. This will be eventually part of the `k8s` deployment (likely as a separate `helm` chart deployed in a separate namespace `k8s`).

Please follow the steps mentioned below to install `helm`, `chartmuseum` and `cm-push` plugin for `helm`.

```bash
# Following commands are run as non root user. The idea is to keep the privileges to minimum.

# Create a `temp/` directory in the home folder that will be used to download all the artifacts required during the bring up.
$ mkdir temp
$ cd temp
$ wget https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz
$ wget https://get.helm.sh/chartmuseum-v0.13.1-linux-amd64.tar.gz
$ tar xvzpf helm-v3.11.2-linux-amd64.tar.gz
$ tar xvzpf chartmuseum-v0.13.1-linux-amd64.tar.gz

# It is assumed that ~/bin/ is in your $PATH
$ cp linux-amd64/chartmuseum linux-amd64/helm ~/bin
$ helm version
$ chartmuseum -version

# To Push to chart museum, we will need to install a Chart Museum push plugin.
$ helm plugin install https://github.com/chartmuseum/helm-push

# This should have the `cm-push` command available.
$ helm plugin list
NAME    VERSION DESCRIPTION
cm-push 0.10.3  Push chart package to ChartMuseum
```

Run the following command to run Chart museum.

```bash
# This step is fairly simple, simply run the chartmusem command with appropriate options
# We are using local storage backend and port 6873 (MUSE) and a directory called `helm/chartmuseum/`
# The setup is kept simple.
$ chartmuseum --debug --port 6873 --storage local --storage-local-rootdir $HOME/helm/chartsmuseum/
```

## Setting up Helm Repositories

### Setting up `local` Helm Repo

We will be building the `helm` charts locally and those charts will be 'push'ed to the local repository. Later during installations charts will be downloaded from this `local` repository. The `chartmuseum` server described above will serve this 'local' repository.

```bash
$ helm repo add local http://localhost:6873/
$ helm repo list
```
### Setting up Third Party repositories

This installation leverages the chart available from the third-party repositories, instead of maintaining those charts ourselves. This allows us to update third party dependencies easily and we don't need to maintain our own 'charts' just for this alone.

For the installation of the Near RT RIC, we are making use of `influxdb2` (for storing KPI data by `kpimon-go` application). The charts for `influxdb2` are available from the Influxdata repository. Hence this repository needs to be added inside `helm`.

```bash
$ helm repo add influxdata https://helm.influxdata.com
$ helm repo list
```


## Running Near RT RIC

### Preparing the Charts

We will first build the charts based on the data from this repository. We use `make` for building the charts. To build the charts, following instructions can be followed.

```bash
# Make sure that chart museum is running already as discussed above
#
# First we will prepare chart(s) for the installation. This is done using Makefile
# `make` tool needs to be installed for this.
$ cd helm/charts
$ make nearrtric

##### Output ignored

$ helm search repo local/nearrtric
NAME           	CHART VERSION	APP VERSION	DESCRIPTION
local/nearrtric	0.1.0        	           	Umbrella Helm Chart for NearRT RAN Intelligent ...
```
This means the `local/nearrtric` chart is available and can be installed using `helm install`.


### Installing the Charts

Currently, the Near RT RIC contains mandatory components and some optional components. Following are mandatory components -

1. `appmgr`
2. `dbaas`
3. `e2mgr`
4. `e2term`
5. `submgr`
6. `rtmgr`

and following are optional components -

1. `a1mediator`
2. `alarmmanager`
3. `jaegeradapter`
4. `o1mediator`
5. `vespamgr`
6. `xapp-onboarder`

and following are third party (optional) components -

1. `influxdb2`

The default `values.yaml` file disables all optional components. The optional components can be enabled using the override file inside `helm-overrides/nearrtric/` directory. The provided file enables `influxdb2` and `a1mediator` optional components. In addition, additional configurations like using docker image etc can be changed for all the components. Please refer to the provided example file for the supported configurations.

Run the following command to install the chart.

```bash
$ helm install nearrtric -n ricplt local/nearrtric -f example_recipe_latest_stable.yaml
```
Note: You can refer to `helm-overrides/nearrtric/minimal-nearrt-ric.yaml` file and follow the conventions used in this override file.

This should install the main `nearrtric` chart and it's dependencies. The installation can be verified using the following `kubectl` commands.

```bash
$ kubectl get pods -n ricplt
NAME                                              READY   STATUS    RESTARTS        AGE
deployment-ricplt-a1mediator-84fc865778-x846h     1/1     Running   1 (4m13s ago)   5m16s
deployment-ricplt-appmgr-57cc4d665b-lb8dg         1/1     Running   0               5m16s
deployment-ricplt-e2mgr-9748f9585-mg2zl           1/1     Running   3 (4m47s ago)   5m16s
deployment-ricplt-e2term-alpha-5ffb57bf9f-slmrz   1/1     Running   0               5m16s
deployment-ricplt-rtmgr-57f7c7797f-mpkg9          1/1     Running   0               5m16s
deployment-ricplt-submgr-74f67bf444-qh5rn         1/1     Running   0               5m16s
ricplt-influxdb-0                                 1/1     Running   0               5m16s
statefulset-ricplt-dbaas-server-0                 1/1     Running   0               5m16s

$ kubectl get svc -n ricplt
NAME                                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)              AGE
ricplt-influxdb                          ClusterIP   10.105.150.100   <none>        8086/TCP             6m
service-ricplt-a1mediator-http           ClusterIP   10.101.218.159   <none>        10000/TCP            6m1s
service-ricplt-a1mediator-rmr            ClusterIP   10.103.242.185   <none>        4561/TCP,4562/TCP    6m1s
service-ricplt-appmgr-http               ClusterIP   10.111.10.61     <none>        8080/TCP             6m1s
service-ricplt-appmgr-rmr                ClusterIP   10.105.106.102   <none>        4561/TCP,4560/TCP    6m1s
service-ricplt-dbaas-tcp                 ClusterIP   None             <none>        6379/TCP             6m1s
service-ricplt-e2mgr-http                ClusterIP   10.97.133.251    <none>        3800/TCP             6m1s
service-ricplt-e2mgr-rmr                 ClusterIP   10.108.221.142   <none>        4561/TCP,3801/TCP    6m1s
service-ricplt-e2term-prometheus-alpha   ClusterIP   10.109.194.105   <none>        8088/TCP             6m1s
service-ricplt-e2term-rmr-alpha          ClusterIP   10.109.22.225    <none>        4561/TCP,38000/TCP   6m
service-ricplt-e2term-sctp-alpha         NodePort    10.96.249.236    <none>        36422:32222/SCTP     6m
service-ricplt-rtmgr-http                ClusterIP   10.96.22.95      <none>        3800/TCP             6m
service-ricplt-rtmgr-rmr                 ClusterIP   10.99.242.83     <none>        4561/TCP,4560/TCP    6m
service-ricplt-submgr-http               ClusterIP   10.105.226.85    <none>        8088/TCP             6m
service-ricplt-submgr-rmr                ClusterIP   10.96.246.248    <none>        4560/TCP,4561/TCP    6m
```

### Deploying the Simulator

You can test the installed Near RT RIC by installing the simulator from the [sim-e2-interface](https://gerrit.o-ran-sc.org/r/admin/repos/sim/e2-interface,general) repository. If you are installing on Ubuntu 22.04, The image needs to be built using the Ubuntu 22.04 Builder Image. Change the appropriate lines in the `Dockerfile` in the directory `e2sim/e2sm_examples/kpm_e2sm`. The Ubuntu 22.04 Builder image can be used as follows

```bash

 # the builder has: git, wget, cmake, gcc/g++, make, python2/3. v7 dropped nng support
 #
-ARG CONTAINER_PULL_REGISTRY=nexus3.o-ran-sc.org:10001
-FROM ${CONTAINER_PULL_REGISTRY}/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 as buildenv
+ARG CONTAINER_PULL_REGISTRY=nexus3.o-ran-sc.org:10004
+# FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubunut22-c-go:0.1.0 as buildenv
+FROM ${CONTAINER_PULL_REGISTRY}/o-ran-sc/bldr-ubuntu22-c-go:0.1.0 as buildenv

```

It is also required to update the IP Address of the `service-ricplt-e2term-sctp-alpha` service above in the `Dockerfile`. (Agreed this is a bit ugly and will be fixed soon!).

```bash
-CMD kpm_sim 10.110.102.29 36422
+CMD kpm_sim 10.96.249.236 36422
```
The Docker Image that needs to be built should be using the 'docker environment' of the `minikube`. This environment can be set by running the following command.

```bash
```

The simulator then can be started as follows

```bash

# Setup the 'docker env'
$ eval $(minikube -p minikube docker-env)

# Build docker image
$ docker build -t e2sim:latest .

# Make sure the `helm/deployments/deployment.yaml` file points to `e2sim:latest` images

$ helm install e2sim -n ricplt helm/

```

### Deploying XApps

You can deploy the XApps. The approach we follow is preparing the chart images for the XApps first and then simply using `helm install`. The Chart images can be prepared by using the Xapp Onboarder. (Note: A future version of deployment would make this available as a single `helm` chart installation, currently this manual step needs to be followed.)

```bash
$ git clone https://gerrit.o-ran-sc.org/r/ric-plt/appmgr
$ cd appmgr/xapp_orchestrater/dev/xapp_onboarder

# Create a Virtual Environment to install the `xapp_onboarder`
$ python3 -m venv venv3
$ . venv/bin/activate
$ pip install -r requirements.txt

# Note: The Chart Repo URL points to the `chartmusem` server running started.
# Also note the `shcema` typo :-)
$ CHART_REPO_URL=http://localhost:6873 dms_cli onboard --config-file-path <path-to-app-config> --shcema_file_path <path-to-schema-json>
$ CHART_REPO_URL=http://localhost:6873 dms_cli download_helm_chart <chart-name> <version>
# This step downloads the file `chart-name-chart-version.tgz`

# Finally install the Chart in `ricxapp` namespace
$ helm install <release-name> -n ricxapp <chart-name-chart-version.tgz>
```

You can then check the logs of individual pods using `kubectl logs ...` command to check if the pods, Xapps are running as expected.
+214 −0
Original line number Diff line number Diff line
################################################################################
#   Copyright (c) 2019 AT&T Intellectual Property.                             #
#   Copyright (c) 2021 HCL Technologies Limited.                               #
#   Copyright (c) 2022 Samsung Electronics Co., Ltd.                           #
#   Copyright (c) 2023 Abhijit Gadgil                                          #
#                                                                              #
#   Licensed under the Apache License, Version 2.0 (the "License");            #
#   you may not use this file except in compliance with the License.           #
#   You may obtain a copy of the License at                                    #
#                                                                              #
#       http://www.apache.org/licenses/LICENSE-2.0                             #
#                                                                              #
#   Unless required by applicable law or agreed to in writing, software        #
#   distributed under the License is distributed on an "AS IS" BASIS,          #
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
#   See the License for the specific language governing permissions and        #
#   limitations under the License.                                             #
###############################################################################

# Override file for E2 Termination and running "hw-*" Apps

#--------------------------------------------------------------------------
# Near RT RIC Controls
#--------------------------------------------------------------------------
nearrtric:
  installA1Mediator: true
  installAlarmManager: false
  installInfluxDB: true
  installJaegerAdapter: false
  installO1Mediator: false
  installVespamgr: false
  installXappOnboarder: false
#-------------------------------------------------------------------------
# Global common setting
#-------------------------------------------------------------------------
global:
  # If you want to use a local registry for testing, please uncomment the following
  # This would set `common.dockerregistry.url` values  through common `_docker.tpl`
  # localregistry: "localhost:8000"
  releasePrefix: r4
  serviceport:
    submgr:
      http: 8088

# Change the overall image pull policy using the following option
#  pullpolicy: IfNotPresent

# Change the namespaces using the following options
#  namespace:
#    aux: ricaux
#    platform: ricplt
#    xapp: ricxapp
#    infra: ricinfra

# ricip should be the ingress controller listening IP for the platform cluster
# auxip should be the ingress controller listening IP for the AUX cluster
extsvcplt:
  ricip: "10.0.0.1"
  auxip: "10.0.0.1"


# Specify the docker registry credential using the following
# The release and staging LF repos' credentials have already been included.
# Please do not create duplicated entries
#docker-credential:
#  enabled: true
#  credential:
#    SOME_KEY_NAME:
#      registry: ""
#      credential:
#        user: ""
#        password: ""
#        email: ""

prometheus:
  enabled: true

a1mediator:
  a1mediator:
    # Enable following registry if you want to override just this one
    # while using local registry for the other registries
    #registry: "nexus3.o-ran-sc.org:10004/o-ran-sc"
    image:
      registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
      name: ric-plt-a1
      tag: 3.1.1
    rmr_timeout_config:
      a1_rcv_retry_times: 20
      ins_del_no_resp_ttl: 5
      ins_del_resp_ttl: 10

appmgr:
  appmgr:
    image:
      appmgr:
        registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
        name: ric-plt-appmgr
        tag: 0.5.7
      chartmuseum:
        registry: "docker.io"
        name: chartmuseum/chartmuseum
        tag: v0.8.2


dbaas:
  dbaas:
    image:
      registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
      name: ric-plt-dbaas
      tag: 0.6.2
    enableHighAvailability: false
    # Enable pod anti affinity only if you have more than 3 k8s nodes
    enablePodAntiAffinity: false


e2mgr:
  e2mgr:
    image:
      registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
      name: ric-plt-e2mgr
      tag: 6.0.1
    privilegedmode: false
    globalRicId:
      ricId: "AACCE"
      mcc: "310"
      mnc: "411"
    rnibWriter:
      stateChangeMessageChannel: RAN_CONNECTION_STATUS_CHANGE
      ranManipulationMessageChannel: RAN_MANIPULATION

e2term:
  loglevel: 4
  e2term:
    alpha:
      image:
        registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
        name: ric-plt-e2
        tag: 6.0.3
      privilegedmode: false
      hostnetworkmode: false
      env:
        print: "1"
        messagecollectorfile: "/data/outgoing/"
      dataVolSize: 100Mi
      storageClassName: local-storage
      pizpub:
        enabled: false


jaegeradapter:
  image:
    registry: "docker.io"
    name: jaegertracing/all-in-one
    tag: 1.12


rtmgr:
  rtmgr:
    image:
      registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
      name: ric-plt-rtmgr
      tag: 0.9.4

submgr:
  submgr:
    image:
      registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
      name: ric-plt-submgr
      tag: 0.9.5

vespamgr:
  image:
    registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
    name: ric-plt-vespamgr
    tag: 0.7.5
  prometheusurl: "http://r4-infrastructure-prometheus-server.ricplt"

o1mediator:
  image:
    registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
    name: ric-plt-o1
    tag: 0.6.1


alarmmanager:
  image:
    registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
    name: ric-plt-alarmmanager
    tag: 0.5.14

influxdb2:
  image:
    registry: "influxdb"
    name: influxdb
    tag: "2.2.0-alpine"
  fullnameOverride: "ricplt-influxdb"
  service:
    port: 8086

xapp-onboarder:
  xapponboarder:
    image:
      xapponboarder:
        registry: "nexus3.o-ran-sc.org:10004/o-ran-sc"
        name: xapp-onboarder
        tag: 1.0.8

o1mediator:
  o1mediator:
    image:
      name: ric-plt-o1
      tag: 0.6.2
      registry: "nexus3.o-ran-sc.org:10002/o-ran-sc"
+1 −0
Original line number Diff line number Diff line
**/dist
+120 −0
Original line number Diff line number Diff line
# Copyright © 2017 Amdocs, Bell Canada
#
# Copyright (c) 2023 hypheOs Software Labs
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

COMMON_CHARTS_DIR := nonrtric nearrtric
# FIXME OOM-765
ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
OUTPUT_DIR := $(ROOT_DIR)/dist
PACKAGE_DIR := $(OUTPUT_DIR)/packages
SECRET_DIR := $(OUTPUT_DIR)/secrets
HELM_BIN := helm

# Helm v2 and helm v3 uses different version format so we first try in helm v3 format
# and if it fails then we fallback to helm v2 one
HELM_VER := $(shell $(HELM_BIN) version --template "{{.Version}}" 2>/dev/null)
ifneq "$(findstring v3,$(HELM_VER))" "v3"
	HELM_VER := $(shell $(HELM_BIN) version -c --template "{{.Client.SemVer}}")
endif

# use this if you would like to cm-push onap charts to repo with other name
# WARNING: Helm v3+ only
# WARNING: Make sure to edit also requirements files
HELM_REPO := local

ifneq ($(SKIP_LINT),TRUE)
	HELM_LINT_CMD := $(HELM_BIN) lint
else
	HELM_LINT_CMD := echo "Skipping linting of"
endif

#SUBMODS := robot
#EXCLUDES := config oneclick readiness test dist helm $(PARENT_CHART) dcae $(SUBMODS)
EXCLUDES := config oneclick readiness test dist helm $(PARENT_CHART)
HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.)))) $(PARENT_CHART)
HELM_CHARTS_CLEAN := $(sort $(patsubst %,clean-%, $(HELM_CHARTS)))

.PHONY: $(EXCLUDES)  $(HELM_CHARTS) check-for-staging-images helm-repo-update

all: print_helm_bin $(HELM_CHARTS) helm-repo-update

$(HELM_CHARTS): | $(OUTPUT_DIR)
	@echo "\n[$@]"
	@make package-$@

$(HELM_CHARTS_CLEAN):
	@echo "\n[clean $(patsubst clean-%,%,$@)]"
	@rm -f $(patsubst clean-%,%,$@)/Chart.lock;
	@rm -rf $(patsubst clean-%,%,$@)/charts;

print_helm_bin:
	$(info Using Helm binary ${HELM_BIN} which is helm version ${HELM_VER})

make-%:
	@if [ -f $*/Makefile ]; then make -C $*; fi

dep-%: make-%
	@echo $(HELM_DIR) dep up $*
	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) dep up $*; fi

lint-%: dep-%
	@if [ -f $*/Chart.yaml ]; then $(HELM_LINT_CMD) $*; fi

package-%: lint-%
	@mkdir -p $(PACKAGE_DIR)
ifeq "$(findstring v3,$(HELM_VER))" "v3"
	@if [ -f $*/Chart.yaml ]; then PACKAGE_NAME=$$($(HELM_BIN) package -d $(PACKAGE_DIR) $* | cut -d":" -f2) && $(HELM_BIN) cm-push -f $$PACKAGE_NAME $(HELM_REPO); fi
else
	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
	@$(HELM_BIN) repo index $(PACKAGE_DIR)
endif

clean: $(HELM_CHARTS_CLEAN)
	@rm -f */Chart.lock
	@find . -type f -name '*.tgz' -delete
	@rm -rf $(PACKAGE_DIR)/*

distclean: clean
	@rm -rf $(OUTPUT_DIR)

# publish helm plugins via distrubtion directory
plugins:
	@cp -R helm $(PACKAGE_DIR)/

# start up a local helm repo to serve up helm chart packages
# WARNING: Only helm < v3 supported
repo:
	@mkdir -p $(PACKAGE_DIR)
	@$(HELM_BIN) serve --repo-path $(PACKAGE_DIR) &
	@sleep 3
	@$(HELM_BIN) repo index $(PACKAGE_DIR)
	@$(HELM_BIN) repo add local http://127.0.0.1:8879

# stop local helm repo
# WARNING: Only helm < v3 supported
repo-stop:
	@pkill $(HELM_BIN)
	@$(HELM_BIN) repo remove local

check-for-staging-images:
	$(ROOT_DIR)/contrib/tools/check-for-staging-images.sh

helm-repo-update:
ifeq "$(findstring v3,$(HELM_VER))" "v3"
	@$(HELM_BIN) repo update
endif

%:
	@:
+88 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading