Git Product home page Git Product logo

fiware / helm-charts Goto Github PK

View Code? Open in Web Editor NEW
23.0 12.0 26.0 1.3 MB

:globe_with_meridians: Kubernetes HELM Charts for FIWARE Generic Enablers for provisioning scalable, production-ready powered-by-FIWARE installations based around NGSI Context Brokers and other components

License: MIT License

Shell 0.34% Smarty 40.44% Mustache 59.21%
fiware fiware-orion fiware-iot-agents fiware-keyrock helm helm-charts kubernetes charts

helm-charts's Introduction

Helm Repository for Generic Enablers

FIWARE Catalogue License: MIT FIWARE
Artifact HUB Chart Test Releases downloads

Repository for providing HELM Charts of Generic Enablers from the FIWARE Catalogue. The charts can be install into Kubernetes with helm3.

FIWARE is a curated framework of open source platform components which can be assembled together and with other third-party platform components to accelerate the development of Smart Solutions. The main and only mandatory component of any “Powered by FIWARE” platform or solution is a FIWARE Context Broker Generic Enabler, bringing a cornerstone function in any smart solution: the need to manage context information, enabling to perform updates and bring access to context.

Note that FIWARE is not about take it all or nothing. With the exception of a mandatory FIWARE Context Broker you should feel free to mix FIWARE Catalogue elements with other open-source and commercial third-party platform components to design the hybrid platform of your choice. As long as it uses the FIWARE Context Broker technology to manage context information, your platform can be labeled as “Powered by FIWARE” and other solutions can build on top of it as well. Listings of many FIWARE Ready software enablers and devices and commercial “Powered by FIWARE” solutions can be found on the FIWARE Marketplace.

For additional Helm Charts collections for supplementary open-source components such as Grafana, Apache Spark, Keycloak and Kong we recommend other community-maintained listings such as Bitnami or Orchestra Cities or searching for a specific helm chart on Artifact Hub

More information on each individual FIWARE component, can be found within the individual chart READMEs.

Add Repo

To make use of the charts, you may add the repository:

helm repo add fiware https://fiware.github.io/helm-charts

Install

After the repo is added all charts can be installed via:

helm install <RELEASE_NAME> fiware/<CHART_NAME>

Configuration

If you are searching for some configurations that can be used in a production environment, we recommend our Loadtest Repository. It provides values for different sizes of environments and the configuration for Orion-LD and Mongo-DB.

Platform deployment

An easy to use deployment of a FIWARE Platform(including a SmartCity-Application) based on the Helm-Charts can be found in the FIWARE-Ops/marinera Repository.


License

MIT. © 2020-21 FIWARE Foundation e.V.

helm-charts's People

Contributors

beknazaresenbek avatar bramk avatar durburz avatar dwendland avatar fdelavega avatar fdrobnic avatar github-actions[bot] avatar jason-fox avatar jorgesanmartin avatar mario-ezquerro avatar mohitnec avatar pulledtim avatar rupamnec avatar stlu1022 avatar sunny-nec avatar wistefan avatar

Stargazers

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

Watchers

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

helm-charts's Issues

[orion] Multitenacy config error

In Orion chart 1.0.3, when I set multitenacy option the installation fails.

multiserviceEnabled: true results in:

Error: template: orion/templates/deployment.yaml:233:61: executing "orion/templates/deployment.yaml" at <upper>: wrong type for value; expected string; got bool

multiserviceEnabled: 'true' results in:

creating 2 resource(s)
--
Thu, May 5 2022 2:24:46 pm | Error: Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects " or n, but found t, error found in #10 byte of ...\|,"value":true},{"nam\|..., bigger context ...\|"orion"},{"name":"ORIONLD_MULTI_SERVICE","value":true},{"name":"ORIONLD_MONGO_AUTH_SOURCE","value":"\|...

helm dependency build - can't get a valid version for repositories mongodb

rpc error: code = Unknown desc = Manifest generation error (cached): `helm dependency build` failed exit status 1: Error: can't get a valid version for repositories mongodb. Try changing the version constraint in Chart.yaml

I get this error when using the latest version of the orion helm chart with mongodb version 4.0.24.

Tried to fix the error by changing the mongodb version tag to 4.0.20 in the values.yaml but the error still remains.

Using kubernetes version 1.26.3.

Any solution? Thanks!

option '-lmtmp' not recognized

It seems that the last change broke the helm chart for orion. Error message is

option '-lmtmp' not recognized

Change was introduced with this commit: 698869e

[api-umbrella] mongodb data persistence

api-umbrella comes with a build in mongodb. The chart is missing a persistence volume to mitigate data lost from the db.

It would be also nice to have the mongodb as a dependent Chart. This would enable independent scalability of the main deployment and the database.


I'm ready to help with the implementation :)

helm chart for orion

We would like to install orion via helm chart. Currently there is only a orion-ld helm chart. Are there any plans to provide a helm chart for orion?

regarding Deployment of helm charts

The helm charts you guys have mentioned are not getting deployed there may be some issues with charts i guess. You should clearly mention what all are dependencies for ecah Fiware GE's so that according to that we can make changes into Yaml file. But as of now no mention and how we can test weather our deployed charts are ready to use or not ?
https://github.com/FIWARE/helm-charts

Unable to deploy Fiware Orion using helm chart

I am trying to deploy orion latest version using helm chart: https://github.com/FIWARE/helm-charts/tree/main/charts/orion. For this, I have created a pod of mongo:3.6 and updated image and db details in values.yaml file of orion as:

...
  image:
    # -- orion image name
    #ref: https://hub.docker.com/r/fiware/orion/
    # ref: https://hub.docker.com/r/fiware/orion-ld
    #repository: fiware/orion-ld
    repository: fiware/orion
    # -- tag of the image to be used
    tag: latest
    # -- specification of the image pull policy
    pullPolicy: IfNotPresent
...
  db:
    # -- configuration of the mongo-db hosts. if multiple hosts are inserted, its assumed that mongo is running as a replica set
    hosts: [mongo]
    # - mongodb
    # -- the db to use. if running in multiservice mode, its used as a prefix.
    name: orion
...

after this change, orion pod is created and is in running state: kubectl get pods
image

but when I try to hit localhost:1026/verion api from pod's shell it shows error: error
image

I have tried to see logs of the pod and docker container created at worker node but nothing is showing.

At master node: kubectl logs
image

At worker node: docker ps docker logs docker logs
image
image
image

Please correct me if I am doing anything wrong and suggest me the way in which I can proceed to deploy orion using helm chart.

Helm charts for IoT Agent JSON with more recent versions (e.g. >= 1.19)

Hi, we are currently trying to deploy the FIWARE components in our Kubernetes cluster utilitizing the most recent versions of the components. However, using the helm charts for the IoT Agent JSON, we run into the following issue: Since the helm charts were created for version 1.14, the IoT Agent comes with a discovery for the mongoDB - and with a hint that this mechanism would be depracated in the future. Now, when trying to deploy the IoT Agent with a newer version, e.g. 1.19 or the most recent 2.4.2, this mechanism seems not be integrated any longer, which results in the IoT Agent not connecting properly to the mongoDB. We are using mongoDB 6.0.9 from bitnami.

In the values.yaml we specified the mongoDB host name as "mongodb-headless.default.svc.cluster.local". So, we are wondering how the new mechanism is currently working and if there are any more recent helm charts available to deploy the IoT Agent.

You can find the error log from the IoT Agent below:

{"time":"2023-10-23T13:01:40.218Z","lvl":"ERROR","msg":"EISDIR: illegal operation on a directory, read"}
2023-10-23T13:01:40.532553333Z {"op":"IoTAgentNGSI.JEXL","time":"2023-10-23T13:01:40.532Z","lvl":"INFO","msg":"Trasformations can be added to JEXL parser"}
 `node --trace-warnings ...` to show where the warning was created)
2023-10-23T13:01:40.657637540Z time=2023-10-23T13:01:40.656Z | lvl=ERROR | corr=92747a9f-3924-4d84-9440-27c8bab08c8e | trans=92747a9f-3924-4d84-9440-27c8bab08c8e | op=IoTAgentNGSI.DbConn | from=n/a | srv=n/a | subsrv=n/a | msg=MONGODB-001: Error trying to connect to MongoDB: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1278:16)
2023-10-23T13:01:40.657698591Z     at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
2023-10-23T13:01:40.657705123Z   name: 'MongoNetworkError'
    at Socket.emit (node:domain:489:12)
2023-10-23T13:01:40.657776123Z     at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
2023-10-23T13:01:40.657786800Z     at processTicksAndRejections (node:internal/process/task_queues:83:21) | comp=IoTAgent
2023-10-23T13:01:40.657803496Z time=2023-10-23T13:01:40.657Z | lvl=INFO | corr=92747a9f-3924-4d84-9440-27c8bab08c8e | trans=92747a9f-3924-4d84-9440-27c8bab08c8e | op=IoTAgentNGSI.DbConn | from=n/a | srv=n/a | subsrv=n/a | msg=Waiting 5 seconds before attempting again. | comp=IoTAgent
2023-10-23T13:01:45.665291645Z time=2023-10-23T13:01:45.664Z | lvl=INFO | corr=92747a9f-3924-4d84-9440-27c8bab08c8e | trans=92747a9f-3924-4d84-9440-27c8bab08c8e | op=IoTAgentNGSI.DbConn | from=n/a | srv=n/a | subsrv=n/a | msg=Attempting to connect to MongoDB instance with url "mongodb://localhost:27017/iotagentjson". Attempt 2 | comp=IoTAgent
2023-10-23T13:01:45.672053231Z time=2023-10-23T13:01:45.671Z | lvl=ERROR | corr=92747a9f-3924-4d84-9440-27c8bab08c8e | trans=92747a9f-3924-4d84-9440-27c8bab08c8e | op=IoTAgentNGSI.DbConn | from=n/a | srv=n/a | subsrv=n/a | msg=MONGODB-001: Error trying to connect to MongoDB: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017
2023-10-23T13:01:45.672086861Z     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1278:16)
    at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17)

We appreciate your help. Thank you in advance!

[iotagent-ul] How to enable NGSIv2 in iotagent-ul helmchart?

Hi, I received {"name":"BAD_REQUEST","message":"Request error connecting to the Context Broker: 501"} error when when I send a POST to iotagent-ul deployed via iotagent-ul helm chart.

I get the following log via kubectl logs pod/iotagent-ul-xxxxxx:

time=2022-10-08T09:03:18.182Z | lvl=DEBUG | corr=d7ed414d-a132-45ea-b4a3-38ee14a828dc | trans=d7ed414d-a132-45ea-b4a3-38ee14a828dc | op=IoTAgentNGSI.Request | from=n/a | srv=openiot | subsrv=/ | msg=Response {
    "error": "NotImplemented",
    "description": "Only NGSIv1-based forwarding supported at the present moment. Set explictely legacyForwarding to true"
}

Following the iotagent-ul documentation to enable NGSIv2 it must be set ngsiVersion in contextBroker:

{
    host: '192.168.56.101',
    port: '1026',
    ngsiVersion: 'v2'
}

So, I have modified:

  • Chart.yaml
{
  contextBroker:
    # -- host of the broker
    host: 192.168.49.2
    # -- port of the broker
    port: 30005
    # to use NGSI v2
    ngsiVersion: v2
}
  • configmap.yaml
contextBroker: {
            /**
             * Host where the Context Broker is located.
             */
            host: '{{ .Values.iota.contextBroker.host }}',

            /**
             * Port where the Context Broker is listening.
             */
            port: '{{ .Values.iota.contextBroker.port }}'
            
            /**
             * If you want to use NGSI v2.
             */
            ngsiVersion: '{{ .Values.iota.contextBroker.ngsiVersion }}'
        }

However, the new pod status is CrashLoopBackOff and the log received via kubectl logs pod/iotagent-ul-xxxx is:

{"op":"IoTAgentNGSI.DomainControl","time":"2022-10-08T09:15:31.479Z","lvl":"ERROR","msg":"/opt/iotaul/config.js:55\n        ngsiVersion: 'v2'\n        ^^^^^^^^^^^\n\nSyntaxError: Unexpected identifier\n    at Object.compileFunction (node:vm:360:18)\n    at wrapSafe (node:internal/modules/cjs/loader:1055:15)\n    at Module._compile (node:internal/modules/cjs/loader:1090:27)\n    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)\n    at Module.load (node:internal/modules/cjs/loader:1004:32)\n    at Function.Module._load (node:internal/modules/cjs/loader:839:12)\n    at Module.require (node:internal/modules/cjs/loader:1028:19)\n    at require (node:internal/modules/cjs/helpers:102:18)\n    at start (/opt/iotaul/bin/iotagent-ul:41:18)\n    at Object.<anonymous> (/opt/iotaul/bin/iotagent-ul:56:1)\n    at Module._compile (node:internal/modules/cjs/loader:1126:14)\n    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)\n    at Module.load (node:internal/modules/cjs/loader:1004:32)\n    at Function.Module._load (node:internal/modules/cjs/loader:839:12)\n    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)\n    at node:internal/main/run_main_module:17:47 {\n  domainThrown: true\n}"}

Any suggestions on how to properly configure NGSIv2?

Allow to set ingressClassName

When deploying with helm and using an Ingress, various charts report the following warning:
annotation "kubernetes.io/ingress.class" is deprecated, please use 'spec.ingressClassName' instead

It should be possible to set this parameter instead of using annotations.

Error in installation of Orion broker helm chart

I am trying to deploy orion broker through helm and I am facing this issue :-

Error: INSTALLATION FAILED: template: orion/templates/test/orion-test.yaml:1:14: executing "orion/templates/test/orion-test.yaml" at <.Values.test.enabled>: nil pointer evaluating interface {}.enabled

The command which I am using to install it is :-
sudo helm repo add fiware https://fiware.github.io/helm-charts
sudo helm install fiware/orion --generate-name

I wasn't facing this issue earlier.
Can you please help me to resolve it?

Thanks & Regards,
Keshav

[orion] Replica Set only set with multihosts

I'm deploying mongodb in ReplicaSet mode with a headless service, so my mongodb host is mongodb-headless. I can't set de RS value because of this restriction. It would be great to set RS independently to the number of hosts.

[iotagent-json]Cannot create new device in mongodb

Orion, Mongo and IoT-Agent have been deployed with the help of the Orion helm chart.

After creating a service, when trying to post a new device, I get the following message:

{"name":"ENTITY_GENERIC_ERROR","message":"Error accesing entity data for device: device1 of type: Thing"}

The logs from the IoT Agent look like this:

time=2022-03-01T10:53:42.928Z | lvl=ERROR | corr=1d437c8d-1c9b-4cba-838d-78ee85ff06eb | trans=1d437c8d-1c9b-4cba-838d-78ee85ff06eb | op=IoTAgentNGSI.Devices-v2 | from=n/a | srv=openiot | subsrv=/ | msg=Protocol error connecting to the Context Broker [500]: {
  error: 'InternalServerError',
  description: 'Database Error &#40;collection: db-openiot.entities - count&#40;&#41;: { _id.id: &quot;urn:ngsi-ld:Device:1&quot;, _id.type: &quot;Thing&quot;, _id.servicePath: { $in: [ null, /^/$/ ] } } - exception: count fails:{ ok: 0.0, errmsg: &quot;not authorized on db-openiot to execute command { count: &quot;entities&quot;, query: { _id.id: &quot;urn:ngsi-ld:Device:1&quot;, _id.type: &quot;Thing&quot;, _id.servicePath: {...&quot;, code: 13, codeName: &quot;Unauthorized&quot; }&#41;'
} | comp=IoTAgent

I have configured in the deviceRegistry.mongodb the user, password and authSource. I use Orion-LD (latest tag), with the following info:

orionld version: "post-v1.0.0"
orion version: "1.15.0-next"
uptime: "11 d, 18 h, 39 m, 43 s"
git_hash: "nogitversion"
compile_time: "Mon Jan 24 15:03:06 UTC 2022"
compiled_by: "root"
compiled_in: ""
release_date: "Mon Jan 24 15:03:06 UTC 2022"
doc: "https://fiware-orion.readthedocs.org/en/master/"

Is there some other configuration required?

[keyrock] If themes are not enabled certificates' PVC is not mounted even if it is enabled in Values.yaml.

in Keyrock helm chart v0.1.3/v0.1.4 enabling certs PVC with certs.pvc.enabled = true creates the PVC but then it is not mounted as volume in the pod if themes are not enabled at the same time.

It seems that the following code in the statefulset template prevents the certs PVC mount, i.e. the {{- if .Values.theme.enabled }} condition:

          {{- if .Values.theme.enabled }}
          volumeMounts:
            - name: themes-theme
              mountPath: {{ .Values.theme.mountTheme }}
            - name: themes-img
              mountPath: {{ .Values.theme.mountImg }}
            {{- if .Values.theme.sourceFonts }}
            - name: themes-fonts
              mountPath: {{ .Values.theme.mountFonts }}
            {{- end }}
            {{- if .Values.theme.sourceFavicon }}
            - name: themes-favicon
              mountPath: {{ .Values.theme.mountFavicon }}
              subPath: "favicon.ico"
            {{- end }}
            {{- if .Values.certs.pvc.enabled }}
            - name: certs
              mountPath: /opt/fiware-idm/certs
            {{- end }}
          {{- end }}

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.