Git Product home page Git Product logo

pnda-helm-chart's Introduction

cloud-pnda Helm Chart

cloud-pnda is under active development and is not suited for production use.

logo

Overview

This repo maintains the source code of the cloud-pnda helm chart and some auxiliary files such as example override yaml files (profiles) and grafana-dashboards. cloud-pnda helm chart enables you to deploy PNDA (the scalable, open source big data analytics platform for networks and services) on Kubernetes.

It deploys PNDA components and Big Data Requirements.

A helm client uses the cloud-native helm chart to deploy PNDA platform on Kubernetes. Default configuration values can be overriden providing an external yaml file (See Configuration Section).

Requirements

  • Kubernetes (tested with v1.17)

Point kubectl to your own k8s cluster or follow any of the tutorials to deploy a testing k8s cluster in your local machine.

  • Helm 3 (tested with v3.0.2)
curl https://get.helm.sh/helm-v3.0.2-linux-amd64.tar.gz | tar xz
sudo cp linux-amd64/helm /usr/local/bin/
rm -r linux-amd64

Installation

Strimzi Dependency

Cloud-pnda uses strimzi operator to Manage Kafka on Kubernetes Strimzi-operator is not provided as a helm dependency because strimzi-CRDs (custom resources definitions) must be present prior to helm install cloud-pnda. We hope to fix this in the future.

To install strimzi you can follow this instructions.

  1. Create a k8s namespace for cloud-pnda:
kubectl create namespace pnda
  1. Install strimzi:
helm repo add strimzi https://strimzi.io/charts/
helm repo update
helm3 install strimzi strimzi/strimzi-kafka-operator \
   --namespace pnda \
   --version 0.16.1 

WARNING! If you install strimzi in a different namespace than cloud-pnda, You must install strimzi with set watchNamespaces pointing to the cloud-pnda namespace. Example of strimzi in its own namespace:

helm repo add strimzi https://strimzi.io/charts/
helm repo update
kubectl create namespace strimzi
helm3 install strimzi strimzi/strimzi-kafka-operator \
   --namespace strimzi \
   --version 0.16.1 \
   --set watchNamespaces[0]=pnda

From helm repository

The helm repository https://pndaproject.github.io/pnda-helm-chart/ provides packaged helm charts of this repo releases.

  1. Install strimzi.

  2. Add cloud-pnda helm repo:

helm repo add pndaproject https://pndaproject.github.io/pnda-helm-chart/
helm repo update
  1. Install cloud-pnda in the selected namespace:
helm install cloud-pnda pndaproject/cloud-pnda \
   --namespace pnda \
   --version 0.1.0-beta1

From Source

  1. Install strimzi.

  2. Update cloud-pnda dependecies:

helm dep update charts/cloud-pnda
  1. Install cloud-pnda in the selected namespace:
helm install cloud-pnda charts/cloud-pnda \
   --namespace pnda

UI - Access

Default configuration deploys a set of ingresses that works for local k8s clusters (microk8s, k3s), out-of-the-box:

Configuration

PNDA is configured by default for minimum resource requirements (for example HA is disabled by default).

To override default configuration values, the user must provide a yaml file in the helm install command:

helm install cloud-pnda charts/cloud-pnda/ \
   --namespace pnda \
   -f custom-config.yaml

This repository contains several custom configuration examples in profiles folder with several pnda custom deployments:

  • profiles/red-pnda.yml: profile to deploy pnda in a single computer for development purposes.
  • profiles/pico.yml: profile to deploy pnda in a cluster with minimum resources.
  • More to be added.

The default values of PNDA components and Big Data dependencies can be checked at charts/cloud-pnda/values.yaml file.

For customizing the external dependencies, go to each dependency information:

  • Kafka and Zookeeper: manually edit the Kafka Resource with kubectl --namespace pnda edit kafka strimzi
  • KafkaConnect: manually edit the KafkaConnect Resource with kubectl --namespace pnda edit kafkaconnect strimzi
  • hdfs: More info here.
  • hbase: more info here
  • openstsdb: more info here.
  • spark-standalone: more info here.
  • jupyterhub: more info here.

Remove Installation

If you want to undone the deployment of cloud-pnda:

  1. Uninstall helm chart:
helm uninstall cloud-pnda --namespace pnda
  1. Remove pnda namespace:
kubectl delete namespace pnda

To remove strimzi:

  1. Uninstall helm chart:
helm uninstall strimzi --namespace strimzi
  1. Remove pnda namespace:
kubectl delete namespace strimzi

Credits

pnda-helm-chart's People

Contributors

cgiraldo avatar pnda-bot avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pnda-helm-chart's Issues

HDFS and HBASE role depend on hostname

HDFS and HBASE bootstrap.sh scripts inspect hostname to decide the role of the container.

This can lead to wrong role assignements if helm chart-release name have "master" or "datanode" words on it.

We should change it to explicitly set the container role through a bash argument.

nil pointer rendering spark-master-jup-service.yaml

If spark-standalone is disabled, helm install exit with error:

Error: render error in "cloud-pnda/templates/spark-master-jup-service.yaml": template: cloud-pnda/templates/spark-master-jup-service.yaml:13:15: executing "cloud-pnda/templates/spark-master-jup-service.yaml" at <index .Values "spark-standalone" "master" "port">: error calling index: index of nil pointer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.