Giter Club home page Giter Club logo

chart-elasticsearch's Introduction

Chart for Elasticsearch

Build Status

A Helm chart for Elasticsearch deployment on Kubernetes. Elasticsearch is an open source, RESTful search engine built on top of Apache Lucene and released under an Apache license. It is Java-based and can search and index document files in diverse formats.

Purpose

Static configs for a production grade elasticsearch deploy on kubernetes.

Architecture details

master nodes:

  • 3 node statefulset
  • if scaled, need to update quorum information

data nodes:

  • 3 node statefulset
  • scale at will

Kubernetes Resources

master node (each):

  • 4GB
  • 1/2 CPU (500m)

data nodes (each):

  • 4GB (first knob to turn up for performance reasons. Do not exceed 31GB, the jvm breaks down)
  • 1/2 CPU (500m)
  • 20GB of disk (this should be increased greatly for production use)

Installation

helm repo add cnct https://charts.migrations.cnct.io 
helm repo update
helm install cnct/elasticsearch-chart --name=es-test --namespace=logging --debug   --set security.password="mlnpass"

Curator

This deployment is meant for use with Elasticsearch curator to manage indices. See the chart and container for more information.

chart-elasticsearch's People

Contributors

alika avatar coffeepac avatar davidewatson avatar dstorck avatar gdmelloatpoints avatar joejulian avatar leahnp avatar michael-amiethyst avatar mikeln avatar notjames avatar nowjean avatar oneilcin avatar philoserf avatar venezia avatar yenicapotediaz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chart-elasticsearch's Issues

Elasticsearch helm release in 1.6 fails (RBAC not enabled)

From @gdmello on October 5, 2017 20:35

Trying to setup an elasticsearch cluster, and it fails in a 1.6 with RBAC not enabled-

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.2", GitCommit:"477efc3cbe6a7effca06bd1452fa356e2201e1ee", GitTreeState:"clean", BuildDate:"2017-04-19T20:33:11Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.7+coreos.0", GitCommit:"c8c505ee26ac3ab4d1dff506c46bc5538bc66733", GitTreeState:"clean", BuildDate:"2017-07-06T17:38:33Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"}

$ helm install --name elasticsearch --values values.yaml ../../k2-charts/elasticsearch --namespace=ft --debug
[debug] Created tunnel using local port: '54714'
[debug] SERVER: "localhost:54714"
[debug] Original chart version: ""
[debug] CHART PATH: /home/<username>/new_wk_spc/k2-charts/elasticsearch

Error: release elasticsearch failed: clusterroles.rbac.authorization.k8s.io "elasticsearch" is forbidden: attempt to grant extra privileges: [{[get] [] [services] [] []} {[get] [] [namespaces] [] []} {[get] [] [endpoints] [] []}] user=&{system:serviceaccount:kube-system:default 9789f564-a6b6-11e7-a6e0-5254007064d2 [system:serviceaccounts system:serviceaccounts:kube-system system:authenticated] map[]} ownerrules=[] ruleResolutionErrors=[]

Tiller shows no different error-

[tiller] 2017/10/05 19:02:26 preparing install for elasticsearch
[storage] 2017/10/05 19:02:26 getting release history for "elasticsearch"
[tiller] 2017/10/05 19:02:26 rendering elasticsearch chart using values
[tiller] 2017/10/05 19:02:26 performing install for elasticsearch
[tiller] 2017/10/05 19:02:26 executing 0 pre-install hooks for elasticsearch
[tiller] 2017/10/05 19:02:26 hooks complete for pre-install elasticsearch
[storage] 2017/10/05 19:02:26 getting release history for "elasticsearch"
[kube] 2017/10/05 19:02:26 building resources from manifest
[kube] 2017/10/05 19:02:26 creating 7 resource(s)
[tiller] 2017/10/05 19:02:26 warning: Release "elasticsearch" failed: clusterroles.rbac.authorization.k8s.io "elasticsearch" is forbidden: attempt to grant extra privileges: [{[get] [] [services] [] []} {[get] [] [namespaces] [] []} {[get] [] [endpoints] [] []}] user=&{system:serviceaccount:kube-system:default 9789f564-a6b6-11e7-a6e0-5254007064d2 [system:serviceaccounts system:serviceaccounts:kube-system system:authenticated] map[]} ownerrules=[] ruleResolutionErrors=[]
[storage] 2017/10/05 19:02:26 creating release "elasticsearch.v1"
[tiller] 2017/10/05 19:02:26 failed install perform step: release elasticsearch failed: clusterroles.rbac.authorization.k8s.io "elasticsearch" is forbidden: attempt to grant extra privileges: [{[get] [] [services] [] []} {[get] [] [namespaces] [] []} {[get] [] [endpoints] [] []}] user=&{system:serviceaccount:kube-system:default 9789f564-a6b6-11e7-a6e0-5254007064d2 [system:serviceaccounts system:serviceaccounts:kube-system system:authenticated] map[]} ownerrules=[] ruleResolutionErrors=[]

If I comment out the creation of the ClusterRole and ClusterRoleBinding, the deployment is successful. Looks like the conditional {{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1beta1"}} seems to trigger even if rbac is not enabled. I haven't looked into this conditional deeply, as the only other example of it's usage is in the prometheus operator.

Copied from original issue: samsung-cnct/k2-charts#135

Testing for elasticsearch

Set up tests for chart-elasticsearch.
This will involve researching unit tests for elasticsearch.
Here are some articles of possible interest (link is the final article of a three part series; the first two articles are linked in the first paragraph).

Create "logging-lite" ElasticSearch deployment

From @leahnp on August 1, 2017 23:17

Duplicate this repo as much as possible for maintainability.
Use a single statefulset to spinup a light weight single node data/master elasticsearch cluster
Use elastic curator to delete logs after 2 weeks.

Copied from original issue: samsung-cnct/elasticsearch-kubernetes#10

StorageClass Out of Date and Not Setable

This value:
volume.alpha.kubernetes.io/storage-class: anything
is deprecated and has been changed to:
volume.beta.kubernetes.io/storage-class: anything

Also, the value should be made configurable from the values.yaml. e.g.
volume.beta.kubernetes.io/storage-class: {{Values.storage_class}}

port chart-elasticsearch to gitlab

  • Follow instructions to create and editbuild/.gitlab-ci.yml from template
  • also create build/build.sh and build/test.sh according to instructions
  • make build.sh and test.sh executable
  • create secret variable in gitlab
  • add pipeline status badge to README
  • Remove the Jenkinsfile in the current repo.
  • When PR has merged, make sure that new image is being created on quay. Afterwards, please head back to the umbrella ticket and check off the chart-elasticsearch

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.