* Add article also statically, since it is linked in many places (and link changed with new website) Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com> * Fix self link Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>
654 lines
19 KiB
HTML
654 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
|
|
|
|
|
|
|
|
<html class="no-js">
|
|
|
|
<head lang="en-us">
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=10" />
|
|
<title>Eclipse hawkBit 0.2.0 - First Release - Eclipse hawkBit</title>
|
|
<meta name="generator" content="Hugo 0.46" />
|
|
|
|
|
|
<meta name="description" content="IoT. Update. Device.">
|
|
|
|
<link rel="canonical" href="https://www.eclipse.org/hawkbit/news/2018-07-26-first-release.html">
|
|
|
|
<meta name="author" content="The Eclipse hawkBit Project">
|
|
|
|
|
|
<meta property="og:url" content="https://www.eclipse.org/hawkbit/news/2018-07-26-first-release.html">
|
|
<meta property="og:title" content="Eclipse hawkBit">
|
|
<meta property="og:image" content="https://www.eclipse.org/hawkbit/images/hawkbit_icon.png">
|
|
<meta name="apple-mobile-web-app-title" content="Eclipse hawkBit">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
|
|
<link rel="shortcut icon" type="image/x-icon" href="https://www.eclipse.org/hawkbit/images/favicon.ico">
|
|
<link rel="icon" type="image/x-icon" href="https://www.eclipse.org/hawkbit/images/favicon.ico">
|
|
|
|
<style>
|
|
@font-face {
|
|
font-family: 'Icon';
|
|
src: url('https://www.eclipse.org/hawkbit/fonts/icon.eot');
|
|
src: url('https://www.eclipse.org/hawkbit/fonts/icon.eot')
|
|
format('embedded-opentype'),
|
|
url('https://www.eclipse.org/hawkbit/fonts/icon.woff')
|
|
format('woff'),
|
|
url('https://www.eclipse.org/hawkbit/fonts/icon.ttf')
|
|
format('truetype'),
|
|
url('https://www.eclipse.org/hawkbit/fonts/icon.svg')
|
|
format('svg');
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
</style>
|
|
|
|
<link rel="stylesheet" href="https://www.eclipse.org/hawkbit/stylesheets/application.css">
|
|
<link rel="stylesheet" href="https://www.eclipse.org/hawkbit/stylesheets/temporary.css">
|
|
<link rel="stylesheet" href="https://www.eclipse.org/hawkbit/stylesheets/palettes.css">
|
|
<link rel="stylesheet" href="https://www.eclipse.org/hawkbit/stylesheets/highlight/highlight.css">
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Ubuntu:400,700|Ubuntu+Mono">
|
|
<style>
|
|
body, input {
|
|
font-family: 'Ubuntu', Helvetica, Arial, sans-serif;
|
|
}
|
|
pre, code {
|
|
font-family: 'Ubuntu Mono', 'Courier New', 'Courier', monospace;
|
|
}
|
|
</style>
|
|
|
|
|
|
<link rel="stylesheet" href="https://www.eclipse.org/hawkbit/css/hawkbit.css">
|
|
|
|
<link rel="stylesheet" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css">
|
|
|
|
<script src="https://www.eclipse.org/hawkbit/javascripts/modernizr.js"></script>
|
|
<script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
|
|
</head>
|
|
<body class="palette-primary-deep-purple palette-accent-light-green">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="backdrop">
|
|
<div class="backdrop-paper"></div>
|
|
</div>
|
|
|
|
<input class="toggle" type="checkbox" id="toggle-drawer">
|
|
<input class="toggle" type="checkbox" id="toggle-search">
|
|
<label class="toggle-button overlay" for="toggle-drawer"></label>
|
|
|
|
<header class="header">
|
|
<nav aria-label="Header">
|
|
<div class="bar default">
|
|
<div class="button button-menu" role="button" aria-label="Menu">
|
|
<label class="toggle-button icon icon-menu" for="toggle-drawer">
|
|
<span></span>
|
|
</label>
|
|
</div>
|
|
<div class="stretch">
|
|
<div class="title">
|
|
Eclipse hawkBit 0.2.0 - First Release
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="button button-github" role="button" aria-label="GitHub">
|
|
<a href="https://github.com/eclipse/hawkbit" title="@eclipse/hawkbit on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="button button-github" role="button" aria-label="Gitter">
|
|
<a href="https://gitter.im/eclipse/hawkbit" title="@eclipse/hawkbit on Gitter" target="_blank" class="toggle-button icon fab fa-gitter"></a>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="button button-github" role="button" aria-label="Docker">
|
|
<a href="https://hub.docker.com/u/hawkbit" title="hawkbit on Docker Hub" target="_blank" class="toggle-button icon fab fa-docker"></a>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="bar search">
|
|
<div class="button button-close" role="button" aria-label="Close">
|
|
<label class="toggle-button icon icon-back" for="toggle-search"></label>
|
|
</div>
|
|
<div class="stretch">
|
|
<div class="field">
|
|
<input class="query" type="text" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck>
|
|
</div>
|
|
</div>
|
|
<div class="button button-reset" role="button" aria-label="Search">
|
|
<button class="toggle-button icon icon-close" id="reset-search"></button>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
</header>
|
|
|
|
<main class="main">
|
|
<div class="drawer">
|
|
<nav aria-label="Navigation">
|
|
<a href="https://www.eclipse.org/hawkbit/" class="project">
|
|
<div class="banner">
|
|
|
|
<div class="logo">
|
|
<img src="https://www.eclipse.org/hawkbit/images/hawkbit_icon.png">
|
|
</div>
|
|
|
|
<div class="name">
|
|
<strong>Eclipse hawkBit™ </strong>
|
|
|
|
<br>
|
|
eclipse/hawkbit
|
|
|
|
</div>
|
|
</div>
|
|
</a>
|
|
|
|
<div class="scrollable">
|
|
<div class="wrapper">
|
|
|
|
<ul class="repo">
|
|
<li class="repo-download">
|
|
<a href="https://hub.docker.com/u/hawkbit/" target="_blank" title="hawkBit on DockerHub" data-action="docker">
|
|
<i class="icon icon-search"></i> Dockerhub
|
|
</a>
|
|
</li>
|
|
<li class="repo-stars">
|
|
<a href="https://github.com/eclipse/hawkbit" target="_blank" title="hawkBit on GitHub" data-action="star">
|
|
<i class="icon icon-star"></i> Stars
|
|
<span class="count">–</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<hr>
|
|
|
|
|
|
<div class="toc">
|
|
|
|
<ul>
|
|
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="What is hawkBit" href="/hawkbit/whatishawkbit/">
|
|
|
|
What is hawkBit
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Getting started" href="/hawkbit/gettingstarted/">
|
|
|
|
Getting started
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Guides" href="/hawkbit/guides/">
|
|
|
|
Guides
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Features" href="/hawkbit/features/">
|
|
|
|
Features
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Concepts" href="/hawkbit/concepts/">
|
|
|
|
Concepts
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Architecture" href="/hawkbit/architecture/">
|
|
|
|
Architecture
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Management UI" href="/hawkbit/ui/">
|
|
|
|
Management UI
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="APIs" href="/hawkbit/apis/">
|
|
|
|
APIs
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Community" href="/hawkbit/community/">
|
|
|
|
Community
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
|
|
|
|
|
|
|
<a title="Release Notes" href="/hawkbit/release-notes/">
|
|
|
|
Release Notes
|
|
</a>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
<ul>
|
|
<li>
|
|
<a href="https://gitter.im/eclipse/hawkbit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge" title="Chat on Gitter" target="_blank">
|
|
<img src="https://badges.gitter.im/eclipse/hawkbit.svg" />
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="https://circleci.com/gh/eclipse/hawkbit" title="Circle CI Status" target="_blank">
|
|
<img src="https://circleci.com/gh/eclipse/hawkbit.svg?style=shield" />
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent" title="Maven Central Status" target="_blank">
|
|
<img src="https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent/badge.svg" />
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
<article class="article">
|
|
<div class="wrapper">
|
|
<h1>Eclipse hawkBit 0.2.0 - First Release </h1>
|
|
|
|
|
|
|
|
<p>hawkBit is a domain-independent back-end framework for rolling out software updates to constrained edge devices as well
|
|
as more powerful controllers and gateways connected to IP based networking infrastructure. It is part of the Eclipse IoT
|
|
since 2015 and with version <em>0.2.0</em> a first release is available.</p>
|
|
|
|
<p>In this article, we want to give an overview of the latest highlights of hawkBit and let you know how you can get
|
|
started in seconds.</p>
|
|
|
|
<h2 id="finally-it-is-here">Finally, it is here!</h2>
|
|
|
|
<p>After being around in the Eclipse IoT realm for quite some time now, we are more than happy to announce our first release:
|
|
<a href="https://projects.eclipse.org/projects/iot.hawkbit/releases/0.2.0"><em>Eclipse hawkBit 0.2.0</em></a>. The release can be found on <a href="https://mvnrepository.com/artifact/org.eclipse.hawkbit">Maven Central</a>
|
|
and <a href="https://hub.docker.com/r/hawkbit/hawkbit-update-server/">Docker Hub</a>. It includes the following core features:</p>
|
|
|
|
<ul>
|
|
<li>Device and Software Repository</li>
|
|
<li>Update Management</li>
|
|
<li>Artifact Content Delivery</li>
|
|
<li>Rollout Management</li>
|
|
</ul>
|
|
|
|
<p>The features are accessible via the following interfaces:</p>
|
|
|
|
<ul>
|
|
<li>Management UI</li>
|
|
<li>Management API</li>
|
|
<li>Direct Device Integration (DDI) API</li>
|
|
<li>Device Management Federation (DMF) API</li>
|
|
</ul>
|
|
|
|
<p><img src="../images/hawkBit_overview.jpeg" alt="hawkBit Overview" /></p>
|
|
|
|
<h2 id="what-s-new">What’s new?</h2>
|
|
|
|
<p>Whenever there is a new release, the first question that comes to mind is: What’s new? Since this is our first release,
|
|
one could argue that everything is new. However, most of the features are already well-established. This holds true, for
|
|
example, for our APIs or the Rollout Management. Nevertheless, there have been some recent updates to hawkBit, which we
|
|
do not want to leave unmentioned:</p>
|
|
|
|
<h3 id="streamlined-ui">Streamlined UI</h3>
|
|
|
|
<p>The probably most noticeable change has been the removal of the two buttons (<code>Drop here to delete</code> and <code>Actions</code>) at the
|
|
bottom of the <em>Deployment</em>, <em>Distributions</em>, and <em>Upload</em> view. This is a major usability improvement! For example,
|
|
deleting an item required (1) dragging an item onto the delete button, (2) opening the delete pop-up, and (3) confirming
|
|
the deletion. Now, an item can be easily removed by clicking on its remove icon and confirming the action. Moreover,
|
|
multiple (or all <code>CTRL</code> + <code>A</code>) items can be selected and removed at once using the same mechanism. This is not only
|
|
faster and more intuitive, it also saves a lot of display real estate which can now be used to focus on what is important.
|
|
We hope you like this change as much as we do! <em>(Requires: hawkBit > 0.2.2)</em></p>
|
|
|
|
<p><img src="../images/hawkbit_ui.png" alt="Screenshot of improved UI" /></p>
|
|
|
|
<h3 id="ms-sql-server">MS SQL Server</h3>
|
|
|
|
<p>Eclipse hawkBit supports a range of different SQL databases. Up to now, these have been the internal H2 database (which can be
|
|
used for testing, development, or trial) and MySQL/MariaDB for production-grade usage. This list is now extended by
|
|
Microsoft’s SQL Server which is also available in production grade, as well as, IBM’s DB2 for testing and development.</p>
|
|
|
|
<h3 id="open-sourced-rest-docs">Open Sourced REST docs</h3>
|
|
|
|
<p>A huge benefit for the community is the recently open sourced REST docs of hawkBit. This has been an <a href="https://github.com/eclipse/hawkbit/issues/480">open request</a>
|
|
for some time, which we were happy to meet. The documentation is generated using <a href="https://spring.io/projects/spring-restdocs">Spring REST docs</a>, based on unit-tests. These tests, with the respective documentation, are now available in the <a href="https://github.com/eclipse/hawkbit/pull/688">code base</a>.
|
|
Furthermore, the API documentation will be hosted on our new <a href="https://www.eclipse.org/hawkbit/">website</a> (coming soon).</p>
|
|
|
|
<h3 id="docker-images">Docker Images</h3>
|
|
|
|
<p>In order to enable interested parties to get started with hawkBit conveniently, we decided to provide the
|
|
<a href="https://hub.docker.com/r/hawkbit/hawkbit-update-server/">Update Server as a Docker image</a> on Docker Hub. The image comes
|
|
in two flavors: The default image uses the internal H2 database, while the images with a <code>-mysql</code> suffix contain the MySQL
|
|
driver to allow connecting a MySQL database. In addition to the Docker image, the hawkBit repository contains a
|
|
<a href="https://github.com/eclipse/hawkbit/blob/master/hawkbit-runtime/hawkbit-update-server/docker/docker-compose.yml">docker-compose.yml</a>
|
|
that not only starts the Update Server, but further includes a MySQL database and a RabbitMQ message broker so you’re
|
|
able to use Device Management Federation (DMF) as well.</p>
|
|
|
|
<p>To start the hawkBit Update Server image, open a terminal and run:</p>
|
|
|
|
<pre><code>$ docker run -d -p 8080:8080 hawkbit/hawkbit-update-server
|
|
</code></pre>
|
|
|
|
<div class="admonition note">
|
|
<p class="admonition-title"></p>
|
|
<p><em>Note: This requires a running <a href="https://docs.docker.com/install/">Docker deamon</a> on your system.</em></p>
|
|
</div>
|
|
|
|
<p>Now, browse to <a href="http://localhost:8080">http://localhost:8080</a> and log-in with <code>admin:admin</code>. There you go!</p>
|
|
|
|
<h2 id="community-updates">Community Updates</h2>
|
|
|
|
<p>Although features and functionality play a major role in the hawkBit project, there is also some interesting news from
|
|
the community. As of July 2018, there have been:</p>
|
|
|
|
<ul>
|
|
<li>Pull Requests: 587</li>
|
|
<li>Forks: 54</li>
|
|
<li>Stars: 137</li>
|
|
<li>Contributors: 25</li>
|
|
<li>Gitter Chat members: 119</li>
|
|
</ul>
|
|
|
|
<h3 id="new-project-lead-and-committers">New Project Lead and Committers</h3>
|
|
|
|
<p>We are happy to announce that the hawkBit project got a new project lead. In addition to
|
|
<a href="https://projects.eclipse.org/user/6364">Kai Zimmermann</a>, project lead from the first hour,
|
|
<a href="https://projects.eclipse.org/user/10982">Jeroen Laverman</a> joined the lead to support him in this responsibility.
|
|
Moreover, with <a href="https://projects.eclipse.org/user/10842">Stefan Behl</a> and Jeroen Laverman, two new committers are aboard.</p>
|
|
|
|
<h2 id="what-s-next">What’s next?</h2>
|
|
|
|
<p>Looking ahead, there are two major topics that we want to tackle next: First, there is the migration of our UI from Vaadin
|
|
7 to Vaadin 8, since Vaadin announced the end-of-life for our current version. Another big topic will be the update
|
|
to Spring Boot 2. On the community side, we are in the final stage of updating our <a href="https://www.eclipse.org/hawkbit/">website</a>
|
|
with a new design, so make sure you stop by in a couple of days to check it out. Finally, the hawkBit team will be
|
|
present at EclipseCon Europe 2018, so if you are interested in meeting us, that is the place to be.</p>
|
|
|
|
|
|
<aside class="copyright" role="note">
|
|
<div class="logo">
|
|
<a href="https://www.eclipse.org" target="_blank">
|
|
<img src="/hawkbit/images/eclipse_foundation_logo.png" />
|
|
</a>
|
|
</div>
|
|
<p class="notice">
|
|
|
|
© 2018 The Eclipse hawkBit Project –
|
|
|
|
Documentation built with
|
|
<a href="https://www.gohugo.io" target="_blank">Hugo</a>
|
|
using the
|
|
<a href="http://github.com/digitalcraftsman/hugo-material-docs" target="_blank">Material</a> theme.
|
|
</p>
|
|
<p class="quickLinks">
|
|
<a href="http://www.eclipse.org/legal/privacy.php" target="_blank">
|
|
> Privacy Policy
|
|
</a>
|
|
<a href="http://www.eclipse.org/legal/termsofuse.php" target="_blank">
|
|
> Terms of Use
|
|
</a>
|
|
<a href="http://www.eclipse.org/legal/copyright.php" target="_blank">
|
|
> Copyright Agent
|
|
</a>
|
|
<a href="http://www.eclipse.org/legal" target="_blank">
|
|
> Legal
|
|
</a>
|
|
<a href="https://www.eclipse.org/org/documents/epl-v10.php" target="_blank">
|
|
> License
|
|
</a>
|
|
</p>
|
|
</aside>
|
|
|
|
|
|
<footer class="footer">
|
|
|
|
|
|
<nav class="pagination" aria-label="Footer">
|
|
<div class="previous">
|
|
|
|
</div>
|
|
|
|
<div class="next">
|
|
|
|
<a href="https://www.eclipse.org/hawkbit/apis/mgmt/tenant/" title="System Configuration API">
|
|
<span class="direction">
|
|
Next
|
|
</span>
|
|
<div class="page">
|
|
<div class="stretch">
|
|
<div class="title">
|
|
System Configuration API
|
|
</div>
|
|
</div>
|
|
<div class="button button-next" role="button" aria-label="Next">
|
|
<i class="icon icon-forward"></i>
|
|
</div>
|
|
</div>
|
|
</a>
|
|
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
</footer>
|
|
</div>
|
|
</article>
|
|
|
|
<div class="results" role="status" aria-live="polite">
|
|
<div class="scrollable">
|
|
<div class="wrapper">
|
|
<div class="meta"></div>
|
|
<div class="list"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
|
|
<script>
|
|
|
|
var base_url = 'https:\/\/www.eclipse.org\/hawkbit\/';
|
|
var repo_id = 'eclipse\/hawkbit';
|
|
|
|
</script>
|
|
|
|
<script src="https://www.eclipse.org/hawkbit/javascripts/application.js"></script>
|
|
|
|
|
|
<script>
|
|
/* Add headers to scrollspy */
|
|
var headers = document.getElementsByTagName("h2");
|
|
var scrollspy = document.getElementById('scrollspy');
|
|
|
|
if(scrollspy) {
|
|
if(headers.length > 0) {
|
|
for(var i = 0; i < headers.length; i++) {
|
|
var li = document.createElement("li");
|
|
li.setAttribute("class", "anchor");
|
|
|
|
var a = document.createElement("a");
|
|
if(!headers[i].id)
|
|
a.setAttribute("href", headers[i].parentNode.href);
|
|
else
|
|
a.setAttribute("href", "#" + headers[i].id);
|
|
a.setAttribute("title", headers[i].innerHTML);
|
|
a.innerHTML = headers[i].innerHTML;
|
|
|
|
li.appendChild(a);
|
|
scrollspy.appendChild(li);
|
|
}
|
|
} else {
|
|
scrollspy.parentElement.removeChild(scrollspy)
|
|
}
|
|
|
|
|
|
/* Add permanent link next to the headers */
|
|
var headers = document.querySelectorAll("h1, h2, h3, h4, h5, h6");
|
|
|
|
for(i = 0; i < headers.length; i++) {
|
|
var a = document.createElement("a");
|
|
a.setAttribute("class", "headerlink");
|
|
a.setAttribute("href", "#" + headers[i].id);
|
|
a.setAttribute("title", "Permanent link");
|
|
a.innerHTML = "#";
|
|
headers[i].appendChild(a);
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/highlight.min.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
</body>
|
|
</html>
|
|
|