stefbehl on master
improved debug logs for autoass… (compare)
bogdan-bondar on master
Extend event for entity events … (compare)
@sheikajith hawkBit is an open source software, but deploying it is to scale is not an overnight effort. You can either do it the hard way by deploying everything on your own (months and months of work I would say), or go with one of the cloud platforms mentioned in:
https://www.eclipse.org/hawkbit/gettingstarted/
Can you please elaborate on the effort to deploy bulk clients in server side? Do we have to implement and handle this deployment process in hawkbit server open source available, if so could you help us in implementing this.
what do you mean for "bulk clients"?
We are planning to use hawkbit server for production, mainly deploying thousands of clients. Whether hawkbit server supports that? With this particular plan, what is available for free and what features will have a cost? Whether testing OTA update with hawkbit server is free?
what do you mean for "bulk clients"?
We are planning to use hawkbit server for production, mainly deploying thousands of clients. Whether hawkbit server supports that? With this particular plan, what is available for free and what features will have a cost? Whether testing OTA update with hawkbit server is free?
Again: hawkBit is a software, not a service. To have a hawkBit service you need to run it on a server. You can either run it on your own server or pay companies that provide hawkBit as a service. Wheter it scales depends on the features of the server or the service selected (e.g. servers performences, use of CDN, load balancing, etc). There's no "free plan" or "paid plain": hawkBit is an open source software.
@diegorondini Can we use hawkbit through docker? Do we need to maintain any database if we use it through docker?
https://gitter.im/eclipse/hawkbit?at=5a0bff5271ad3f8736e7baa2
@DominikDSSchneider Hi, the referenced stack in the tutorial (similar to the stacks in the official hawkbit repo) suffer from recent changes to both the official mysql and rabbitmq containers. They discourage usage of certain environment variables and as a consequence fail to start. As hawkbit then cannot connect to the database it fails to start fully too.
See Hawkbit PR for stack changes for RabbitMQ and MySQL
To shorten it, you have to delete the following lines in the environment entry of the mysql respectively the rabbitmq service in the stack file:
- RABBITMQ_DEFAULT_VHOST: "/"
- MYSQL_USER: "root"
Transport.WEBSOCKET
to Transport.WEBSOCKET_XHR
resolved the issue! I can now access all devices/distribution sets/rollouts as usual. This is running in local docker container, next step will be to push the change to Google Cloud Run and see if this works in GCP K8 cluster too. Thank you guys!
@All,
In case anyone downgrades from 0.3.0M7 to 0.3.0M6 with MySQL as data backend... However rare that may be.
The upgrade to M7 alters 2 tables in database definition used by M6. This is fine for upgrade path M6->M7 but when reverted/downgraded back to M6 the new data table definitions prevent any Distribution Set to be assigned to any target. Effectively the OTA service is not functional at that point even though UI is accessible and shows all previously assigned Distribution Sets info correctly.
There is no error produced by UI when new Distribution Set fails to be assigned via UI. Clue to root cause was found in Hawkbit container logs where JDBC SQL exception was logged for "Field 'initiated_by' doesn't have a default value;".
In order to restore ability to assign new Distribution Sets to targets you'll need to DROP COLUMNS in MySQL database used by Hawkbit as follows:
This can be done on live database. Of course create copies of both tables just in case or backup the database before altering anything in database.
Hope this helps.
Hello,
I've implemented an hawkbit amqp client, which receives correctly the download instruction, download the files to local storage, and verify the hashes. However, in the dmf documentation, there's only modules id, never a name : https://www.eclipse.org/hawkbit/apis/dmf_api/
Which is not exactly usefull to give meaning to the modules directory. Can we retrieve the modules name directly from a target ?
2021-09-24 10:17:05.654 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : GET "/", parameters={},
2021-09-24 10:17:06.346 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 404,
2021-09-24 10:17:05.655 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.view.RedirectView : View name 'redirect:', model {},
2021-09-24 10:17:05.654 DEBUG 1 --- [qtp634638280-26] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.eclipse.hawkbit.autoconfigure.mgmt.ui.RedirectController#home(),
2021-09-24 10:17:05.655 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : Completed 302 FOUND,
2021-09-24 10:17:05.857 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : HTTP POST https://login.microsoftonline.com/06846365-0bcb-4951-b004-9ace50ff7b85/oauth2/v2.0/token,
2021-09-24 10:17:05.858 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Accept=[application/json, application/*+json],
2021-09-24 10:17:05.858 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Writing [{grant_type=[authorization_code], code=[0.AS8AZWOEBssLUUmwBJrOUP97hXO6B[.....]HXUw9S7xL5q2Kd4sTbbJJsh_OC1PgDJp8T-G70yJikguICqkgQ5MyAA], redirect_uri=[http://localhost:8080/login/oauth2/code/oidc]}] as "application/x-www-form-urlencoded;charset=UTF-8",
2021-09-24 10:17:06.076 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Reading to [org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse] as "application/json;charset=utf-8",
2021-09-24 10:17:06.075 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Response 200 OK,
2021-09-24 10:17:06.084 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : HTTP GET https://graph.microsoft.com/oidc/userinfo,
2021-09-24 10:17:06.084 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Accept=[application/json, application/cbor, application/*+json],
2021-09-24 10:17:06.252 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Response 200 OK,
2021-09-24 10:17:06.253 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Reading to [java.util.Map<java.lang.String, java.lang.Object>],
2021-09-24 10:17:06.265 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : HTTP GET https://login.microsoftonline.com/06846365-0bcb-4951-b004-9ace50ff7b85/discovery/v2.0/keys,
2021-09-24 10:17:06.266 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Accept=[text/plain, application/json, application/cbor, application/*+json, */*],
2021-09-24 10:17:06.336 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Response 200 OK,
2021-09-24 10:17:06.336 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Reading to [java.lang.String] as "application/json;charset=utf-8",
2021-09-24 10:17:06.342 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : GET "/login?error", parameters={masked},
2021-09-24 10:17:06.343 DEBUG 1 --- [qtp634638280-26] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped to ResourceHttpRequestHandler ["classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/", "/"],
2021-09-24 10:17:06.344 DEBUG 1 --- [qtp634638280-26] o.s.w.s.r.ResourceHttpRequestHandler : Resource not found,
2021-09-24 10:17:06.344 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND,
2021-09-24 10:17:06.345 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for GET "/error?error", parameters={masked},
Hello Everyone,
I'm trying to set up a reverse proxy to allow certificate authentication.
For testing purpose I'm using self signed certificate. Client and Server are kept at same local network.
I'm using swupdate from client side, when trying to connect the hawkbit server, I get the following error.
Client logs:
ERROR: Channel operation returned HTTP error code 401.
- Connected to 192.168.1.121 (192.168.1.121) port 8443 (#2)
- found 1 certificates in /root/caroot.cer
- found 592 certificates in /etc/ssl/certs
- ALPN, offering http/1.1
- SSL re-using session ID
- SSL connection using TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256
- server certificate verification OK
- server certificate status verification SKIPPED
- common name: 192.168.1.121 (matched)
- server certificate expiration date OK
- server certificate activation date OK
- certificate public key: RSA
- certificate version: #1
- subject: C=IN,ST=MH,L=MU,O=Test,OU=Development,CN=192.168.1.121,EMAIL=test@gmail.com
- start date: Mon, 27 Sep 2021 09:51:04 GMT
- expire date: Tue, 27 Sep 2022 09:51:04 GMT
- issuer: C=IN,ST=MH,L=MU,O=Test,OU=Development,CN=192.168.1.121,EMAIL=test@gmail.com
- compression: NULL
- ALPN, server did not agree to a protocol
> GET /DEFAULT/controller/v1/scv HTTP/1.1
Hawkbit server logs:
2021-09-27 18:47:00.907 INFO 52737 --- [ main] o.e.jetty.server.AbstractConnector : Started SslValidatingServerConnector@2e34384c{SSL, (ssl, alpn, h2, http/1.1)}{0.0.0.0:8443}
2021-09-27 18:47:00.909 INFO 52737 --- [ main] o.s.b.web.embedded.jetty.JettyWebServer : Jetty started on port(s) 8443 (ssl, alpn, h2, http/1.1) with context path '/'
Can anyone please confirm this is failing just because of ALPN offering http/1.1, If yes please guide me.
Is there any documentation available for allowing targets to authenticate via a certificate authenticated by a reverse proxy?
Hello guys, I have a question regarding hawkbit and SWupdate.
Our embedded systems do not have an IP address, we thus need the systems to create any connections.
Is this something that HawkBit and SWupdate allows?
Thank you :)
Hi @mamtasingh2304_gitlab ,
Sorry for late response.
You have to add below given code to your hawkbit application.properties
hawkbit.server.im.users[0].username=hawkbit
hawkbit.server.im.users[0].password={noop}isAwesome!
hawkbit.server.im.users[0].firstname=Eclipse
hawkbit.server.im.users[0].lastname=HawkBit
hawkbit.server.im.users[0].permissions=ALL
You can also add multiple users by incrementing the array count.
eg. hawkbit.server.im.users[1].username=2nduser
Hope this helps!
Regards,
Sahaya Cyril