orchestracities / charts Goto Github PK
View Code? Open in Web Editor NEWThis project includes helm charts developed to deploy orchestra cities (thus covering as well some FIWARE services)
License: Apache License 2.0
This project includes helm charts developed to deploy orchestra cities (thus covering as well some FIWARE services)
License: Apache License 2.0
Hey @c0c0n3 and @chicco785 ,
I was just wondering if you could maybe help us out here? We are moving towards k8s and are struggeling with the IoTA-Json and MongoDB.
We have described the problem here as well.
I appreciate your time :)
Cheers,
Sebastian
If you enable MQTT, then the generated JavaScript config contains an extra comma that makes NodeJS quite unhappy:
var config = {};
config.mqtt = {
host: "mqtt-mosquitto-interal",
port: 1883,
thinkingThingsPlugin: true,
/**
* protocol to use for connecting with the MQTT broker
* (`mqtt`, `mqtts`, `tcp`, `tls`, `ws`, `wss`)
*/
protocol: "mqtt",,
...
NodeJS error:
protocol: "mqtt",,
^
SyntaxError: Unexpected token ','
Trying to run Orion Helm Chart by running helm install orion oc/orion
The response is as follows showing that the install was nominal:
NAME: orion
LAST DEPLOYED: Mon Feb 15 18:14:51 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app=orion,release=orion" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:1026
However, when running kubectl get all
the response is as follows, indicating an error of the Pod's deployment:
NAME READY STATUS RESTARTS AGE
pod/orion-orion-64559b77fb-2x77w 0/1 Init:CrashLoopBackOff 6 10m
pod/orion-orion-64559b77fb-lkmf8 0/1 Init:CrashLoopBackOff 6 9m21s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/orion-orion ClusterIP None <none> 80/TCP 10m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/orion-orion 0/2 2 0 10m
NAME DESIRED CURRENT READY AGE
replicaset.apps/orion-orion-64559b77fb 2 2 0 10m
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
horizontalpodautoscaler.autoscaling/orion-orion Deployment/orion-orion <unknown>/50% 2 6 2 10m
Also, when running kubectl describe pod/orion-orion-64559b77fb-2x77w
the response is as follows:
Name: orion-orion
Namespace: default
CreationTimestamp: Mon, 15 Feb 2021 18:14:51 +0200
Labels: app=orion
app.kubernetes.io/managed-by=Helm
chart=orion-0.1.7
heritage=Helm
release=orion
Annotations: deployment.kubernetes.io/revision: 1
meta.helm.sh/release-name: orion
meta.helm.sh/release-namespace: default
Selector: app=orion
Replicas: 2 desired | 2 updated | 2 total | 0 available | 2 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 1 max unavailable, 25% max surge
Pod Template:
Labels: app=orion
release=orion
Annotations: chaos.alpha.kubernetes.io/enabled: false
Init Containers:
create-indexes:
Image: mongo:3.2
Port: <none>
Host Port: <none>
Command:
mongo
--host
rs/mongo-rs-mongodb-replicaset
orion
--eval
db = db.getSiblingDB("admin"); dbs = db.runCommand({ "listDatabases": 1 }).databases; dbs.forEach(function(database) { if(database.entities) database.entities.createIndexes([{"_id.id": 1}, {"_id.type": 1}, {"_id.servicePath": 1}, {"attrNames": 1}, {"creDate": 1}]); });
Environment: <none>
Mounts: <none>
Containers:
orion:
Image: fiware/orion:2.4.0
Port: 1026/TCP
Host Port: 0/TCP
Command:
contextBroker
-fg
-notificationMode
transient
-httpTimeout
30000
-logLevel
INFO
-dbhost
mongo-rs-mongodb-replicaset
-rplSet
rs
-dbTimeout
10000
-corsOrigin
__ALL
-reqMutexPolicy
none
Liveness: http-get http://:1026/version delay=0s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:1026/v2 delay=0s timeout=1s period=10s #success=1 #failure=3
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available False MinimumReplicasUnavailable
Progressing True ReplicaSetUpdated
OldReplicaSets: <none>
NewReplicaSet: orion-orion-64559b77fb (2/2 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 10m deployment-controller Scaled up replica set orion-orion-64559b77fb to 1
Normal ScalingReplicaSet 9m44s deployment-controller Scaled up replica set orion-orion-64559b77fb to 2
➜ charts git:(master) ✗ reset
➜ charts git:(master) ✗ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/orion-orion-64559b77fb-2x77w 0/1 Init:CrashLoopBackOff 6 11m
pod/orion-orion-64559b77fb-lkmf8 0/1 Init:CrashLoopBackOff 6 10m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h23m
service/orion-orion ClusterIP None <none> 80/TCP 11m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/orion-orion 0/2 2 0 11m
NAME DESIRED CURRENT READY AGE
replicaset.apps/orion-orion-64559b77fb 2 2 0 11m
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
horizontalpodautoscaler.autoscaling/orion-orion Deployment/orion-orion <unknown>/50% 2 6 2 11m
➜ charts git:(master) ✗ kubectl describe pod/orion-orion-64559b77fb-2x77w
Name: orion-orion-64559b77fb-2x77w
Namespace: default
Priority: 0
Node: docker-desktop/192.168.65.3
Start Time: Mon, 15 Feb 2021 18:14:51 +0200
Labels: app=orion
pod-template-hash=64559b77fb
release=orion
Annotations: chaos.alpha.kubernetes.io/enabled: false
Status: Pending
IP: 10.1.0.24
IPs:
IP: 10.1.0.24
Controlled By: ReplicaSet/orion-orion-64559b77fb
Init Containers:
create-indexes:
Container ID: docker://523517a74de9ed6384bd0f610e4d0b72dad9b94594f599015ae6636cccdff5fe
Image: mongo:3.2
Image ID: docker-pullable://mongo@sha256:0463a91d8eff189747348c154507afc7aba045baa40e8d58d8a4c798e71001f3
Port: <none>
Host Port: <none>
Command:
mongo
--host
rs/mongo-rs-mongodb-replicaset
orion
--eval
db = db.getSiblingDB("admin"); dbs = db.runCommand({ "listDatabases": 1 }).databases; dbs.forEach(function(database) { if(database.entities) database.entities.createIndexes([{"_id.id": 1}, {"_id.type": 1}, {"_id.servicePath": 1}, {"attrNames": 1}, {"creDate": 1}]); });
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Mon, 15 Feb 2021 18:21:58 +0200
Finished: Mon, 15 Feb 2021 18:22:12 +0200
Ready: False
Restart Count: 6
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-tbvkf (ro)
Containers:
orion:
Container ID:
Image: fiware/orion:2.4.0
Image ID:
Port: 1026/TCP
Host Port: 0/TCP
Command:
contextBroker
-fg
-notificationMode
transient
-httpTimeout
30000
-logLevel
INFO
-dbhost
mongo-rs-mongodb-replicaset
-rplSet
rs
-dbTimeout
10000
-corsOrigin
__ALL
-reqMutexPolicy
none
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Liveness: http-get http://:1026/version delay=0s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:1026/v2 delay=0s timeout=1s period=10s #success=1 #failure=3
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-tbvkf (ro)
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
default-token-tbvkf:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-tbvkf
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 11m default-scheduler Successfully assigned default/orion-orion-64559b77fb-2x77w to docker-desktop
Normal Pulled 9m2s (x5 over 11m) kubelet Container image "mongo:3.2" already present on machine
Normal Created 9m2s (x5 over 11m) kubelet Created container create-indexes
Normal Started 9m2s (x5 over 11m) kubelet Started container create-indexes
Warning BackOff 74s (x41 over 10m) kubelet Back-off restarting failed container
Seems that the problem is relates to the mongodb connection.
However, I haven't provided any customized configuration.
Is there something I could do to have a successful installation.
Thanks.
currently i am writing my master thesis in the faculty of informatics in the area of smart city. I am now in the section of setting up a prototype. I find your solution very interesting and would like to install it on the google cloud platform.
But i am not sure if the helmcharts include the network and application server. As far as i have seen you use fiware iot agents. But according to my knowledge they are not responsible for the management of iot devices.
Do I need to set up a network and application server in addition to your helmcharts (e.g. chirpstack)?
Get the following error when releasing through Helm:
message: 'rpc error: code = Unknown desc = 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 1, error
found in #10 byte of ...|,"value":10000},{"na|..., bigger context ...|alue":"default"},{"name":"DEFAULT_LIMIT","value":10000},{"name":"KEEP_RAW_ENTITY","value":true},{"na|...'
reason: HelmUpgradeFailed
The path of the liveness and readiness probes is currently /health
but that only works with Quantum Leap >= 0.7.6
. (This is because of API backward-incompatible changes in release 0.7.6
, see PR #275 in the Quantum Leap repo.) We should note that in the chart's README and change the default image to 0.7.6
from the current of 0.7.2
which as noted earlier won't work.
Our Crate chart instantiates a K8s statefulset with a rolling update strategy. With this strategy in place, on detecting a new Crate image, K8s will delete and then recreate each pod with the new image, one at a time. So while upgrading, most of the time you'll be in a situation where some of the pods are running the old image whereas some others are on the new. Crate docs say this is fine only when upgrading to a new patch version whereas to upgrade to a new minor or major version you should first shut down the entire cluster, then upgrade images, and finally bring the new cluster live. This latter procedure isn't compatible with K8s rolling update strategy so we should warn users about it. For example we could mention it in the chart README.
documentation of the chart is not complete (and have copy & paste errors!)
currently this information is passed transparently in the values.yaml
The iot-agent chart can't be generated when service.agentType
is set to: lwm2m
. It stops with a rendering error.
To reproduce:
charts/iot-agent/values.yaml
to set agentType: lwm2m
in the service
stanza.helm install charts/iot-agent --debug --dry-run
You should see an error similar to:
[debug] CHART PATH: /Users/andrea/github/orchestracities.charts/charts/iot-agent
Error: render error in "iot-agent/templates/configmap-lwm2m.yaml":
template: iot-agent/templates/configmap-lwm2m.yaml:17:29:
executing "iot-agent/templates/configmap-lwm2m.yaml" at <.Values.lwm2m.logLevel>:
nil pointer evaluating interface {}.logLevel
Tested with Helm client version v2.13.1
and server v2.14.1
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.