Coder Social home page Coder Social logo

beeinventor / charts Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 6.0 1.29 MB

Collection of Helm charts that developed by the BeeInventor.

License: MIT License

Smarty 45.05% Mustache 54.95%
charts helm kubernetes chart nsq nsqd chirpstack lorawan opendistro

charts's People

Contributors

ashtonian avatar benjamin658 avatar daixijun avatar iketiunn avatar lordnoteworthy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

charts's Issues

Invalid NSQD service port protocol

Hi @benjamin658

I believe there is a small issue in the service definition of NSQD.

There is no HTTP protocol port. Only SCTP, TCP, UDP are supported in a kubernetes svc.

spec:
  type: {{ .Values.nsqd.service.type }}
  ports:
  - name: http
    port: 4151
    targetPort: http
    protocol: HTTP <== to change to TCP
  - name: tcp
    port: 4150
    protocol: TCP
    targetPort: tcp

Cheers.

nsq: make nsqadmin wait for lookupd

Hello @benjamin658

This is not a bug, but probably an enhancement we can do to nsqadmin.

What basically happens when you install the chart, nsqadmin is the first candidate that quickly get fetched and when the container run, it output the following error:

[nsqadmin] 2021/08/18 09:32:32.771223 FATAL: failed to instantiate nsqadmin -
failed to resolve --lookupd-http-address (jupiter-nsqlookupd-0.jupiter-nsqlookupd:4161) -
lookup jupiter-nsqlookupd-0.jupiter-nsqlookupd on 10.96.0.10:53: no such host

Then it get restarted for few times until nsqlookupd is ready, then it starts. It looks a bit ugly to see that the container has crashed few times.

This is normal because nsqadmin does not wait for lookupd to start. I have this problem anytime I have a container which depends on another one. The way I get arround this is by adding an side car container that wait for the dependency to show up. Something like this:

initContainers:
  - name: wait-for-db
    image: groundnuty/k8s-wait-for:v1.3
    imagePullPolicy: Always
    args:
      - "pod"
        - "-lapp=mysql"

Not sure if this is the best way to do it :)

Cheers.

nsqlookupd DNS wrongly inferred

I noticed a bug here https://github.com/BeeInventor/charts/blob/main/beeinventor/nsq/templates/nsqd-statefulset.yaml#L43-L46 and here https://github.com/BeeInventor/charts/blob/main/beeinventor/nsq/templates/nsqd-statefulset.yaml#L43-L46

the nsqlookupd DNS results to nsq-nsqlookupd-0.nsq-nsqlookupd:4160 in my case (with helm release name nsq).
The DNS is wrong.

Instead of repeating the lookup address for each replica, you should address the service, which balances over the replicas anyways.

I was able to workaround by doing

      - nsqd:
          extraArgs:
            - "--lookupd-tcp-address=nsq-nsqlookupd:4160"
..

      - nsqadmin:
          extraArgs:
            - "--lookupd-http-address=nsq-nsqlookupd:4161" # chart has a bug and inserts wrong dns name
..

however this only adds the correct address but I cannot override the original args, which leaves errors in logs as is still tries to also call the wrong one

Request: Make nsqd sidecar pattern optional

It would be nice if the chart was less opinionated and allowed the user to decide if they need to implement a sidecar pattern - maybe have it defaulted to the current behavior but allow enabling a couple of nsqd instances. The pattern is overkill in some prod environments and ci/cd pipelines and its unfortunate that this helm chart is not a complete deployment.

nsq: Support nsqlookupd service IP/port setting

I am a newbie to NSQ. Our application currently needs to find the topic producer (nsq) through the nsqlookupd http port(4161);

I found that the nsqlookupd service address cannot be set in helm. Is this intentional or should I add this configuration?

nsqd docs and additional config

just starting convo here, will submit pr. Need to add docs for nsqd to readme.

Additionally would like to add a couple of missing things to values.yaml for all nsq services:

  • priorityClassName:
  • extraArgs[]
  • terminationMessagePolicy: FallbackToLogsOnError

bump the app version to the newly released nsq

Hi,

NSQ released a new version ! v.1.2.1.

We have a field normally to use a recent version of nsq but I was wondering if it would be good to bump the chart app version by default to this new release.

Cheers.

[nsq] DaemonSet support

We've been using a fork of your nsq chart for sometime now that makes use of static hostPorts for tcp and http container ports as well as disables storage persistence as DaemonSet does not support persistentVolumes/volumeClaimTemplates.

Would you be interested in a PR that would add the ability to enable DaemonSet support of course keeping the default functionality of using a StatefulSet intact?

I suspect it is possible to make StatefulSet run in a similar way, dedicated one pod per node by making use of anti-affinity and nodeSelectors, but using a DaemonSet instead seems to be a decent alternative in our environment and can share if you are interested.

add extra env variables to container spec that allow `valueFrom`

I'm using host_ip injected as a env variable to then be referenced in nsqd.args as a statsd endpoint. However I realize not everyone needs/wants this injected. Is there a way to make this easily configurable in the yaml?

Goal syntax would be something like:

container spec:

containers:
    env:
   {{- if .Values.env }}
   {{ toYaml .Values.env }}
   {{- end }}

values.yaml:

env:
- name: SOME_ENV
  value: someval 
- name: SOME_FIELD_ENV
  valueFrom:
      fieldRef:
          fieldPath: status.podIP 

When I try to use the above I get formatting errors and Invalid YAML: mapping values are not allowed in this context:. My yaml foo is lacking, do you have any suggestions for how to do this? I can submit a pr.

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.