Skip to content
Success

Console Output

Started by user Jens Reimann
Running as Jens Reimann
08:02:31 Connecting to https://api.github.com using eclipse-packages-bot/****** (GitHub bot)
Obtained .jenkins/Jenkinsfile from b4f3ce32fe3c3c1b64cce4e4c689dc37c3a13266
Running in Durability level: PERFORMANCE_OPTIMIZED
[Pipeline] Start of Pipeline
[Pipeline] properties
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
‘packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h’ is offline
Agent packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h is provisioned from template Kubernetes Pod Template
---
apiVersion: "v1"
kind: "Pod"
metadata:
  annotations:
    buildUrl: "http://jenkins-ui.packages.svc.cluster.local/packages/job/Website/job/develop/2/"
  labels:
    jenkins: "slave"
    jenkins/packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1: "true"
  name: "packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h"
spec:
  containers:
  - command:
    - "cat"
    env:
    - name: "HOME"
      value: "/home/jenkins"
    image: "jekyll/jekyll:4"
    imagePullPolicy: "IfNotPresent"
    name: "jekyll"
    resources:
      limits:
        memory: "4Gi"
      requests:
        memory: "4Gi"
    securityContext:
      privileged: false
    tty: true
    volumeMounts:
    - mountPath: "/home/jenkins"
      name: "volume-0"
      readOnly: false
    - mountPath: "/home/jenkins/.ssh"
      name: "volume-1"
      readOnly: false
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
  - env:
    - name: "JENKINS_SECRET"
      value: "********"
    - name: "JENKINS_TUNNEL"
      value: "jenkins-discovery.packages.svc.cluster.local:50000"
    - name: "JENKINS_AGENT_NAME"
      value: "packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h"
    - name: "JENKINS_NAME"
      value: "packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h"
    - name: "JENKINS_AGENT_WORKDIR"
      value: "/home/jenkins/agent"
    - name: "JENKINS_URL"
      value: "http://jenkins-ui.packages.svc.cluster.local/packages/"
    - name: "HOME"
      value: "/home/jenkins"
    image: "eclipsecbijenkins/jenkins-agent:3.35@sha256:5d06ebec6e9dffc44fb41009a51d085a83944a23f651416531b960143d186340"
    name: "jnlp"
    volumeMounts:
    - mountPath: "/home/jenkins"
      name: "volume-0"
      readOnly: false
    - mountPath: "/home/jenkins/.ssh"
      name: "volume-1"
      readOnly: false
    - mountPath: "/home/jenkins/agent"
      name: "workspace-volume"
      readOnly: false
  nodeSelector: {}
  restartPolicy: "Never"
  volumes:
  - emptyDir:
      medium: ""
    name: "volume-0"
  - configMap:
      name: "known-hosts"
    name: "volume-1"
  - emptyDir: {}
    name: "workspace-volume"

Running on packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h in /home/jenkins/agent/workspace/Website_develop
[Pipeline] {
[Pipeline] timeout
Timeout set to expire in 15 min
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] deleteDir
[Pipeline] stage
[Pipeline] { (Init)
[Pipeline] sh
+ pwd
/home/jenkins/agent/workspace/Website_develop
+ env
+ sort
BRANCH_NAME=develop
BUILD_DISPLAY_NAME=#2
BUILD_ID=2
BUILD_NUMBER=2
BUILD_TAG=jenkins-Website-develop-2
BUILD_URL=https://ci.eclipse.org/packages/job/Website/job/develop/2/
CLASSPATH=
EXECUTOR_NUMBER=0
HELM_VERSION=2.16.1
HOME=/home/jenkins
HOSTNAME=packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h
HUDSON_HOME=/var/jenkins_home
HUDSON_SERVER_COOKIE=81355652fc806ab4
HUDSON_URL=https://ci.eclipse.org/packages/
IBM_JAVA_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+UseContainerSupport -XX:+IdleTuningCompactOnIdle -XX:+IdleTuningGcOnIdle -XX:MaxRAMPercentage=64
JAVA_HOME=/opt/java/openjdk
JAVA_OPTS=
JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+UseContainerSupport -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
JAVA_VERSION=jdk8u222-b10_openj9-0.15.1
JENKINS_AGENT_NAME=packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h
JENKINS_AGENT_WORKDIR=/home/jenkins/agent
JENKINS_DISCOVERY_PORT=tcp://172.30.41.21:50000
JENKINS_DISCOVERY_PORT_50000_TCP=tcp://172.30.41.21:50000
JENKINS_DISCOVERY_PORT_50000_TCP_ADDR=172.30.41.21
JENKINS_DISCOVERY_PORT_50000_TCP_PORT=50000
JENKINS_DISCOVERY_PORT_50000_TCP_PROTO=tcp
JENKINS_DISCOVERY_SERVICE_HOST=172.30.41.21
JENKINS_DISCOVERY_SERVICE_PORT=50000
JENKINS_DISCOVERY_SERVICE_PORT_JNLP=50000
JENKINS_HOME=/var/jenkins_home
JENKINS_NAME=packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h
JENKINS_NODE_COOKIE=d97f61ef-19c2-42a9-89e6-bcbfb85846b4
JENKINS_SECRET=********
JENKINS_SERVER_COOKIE=durable-4450f01319591ca93888ddffc8d4700e
JENKINS_TUNNEL=jenkins-discovery.packages.svc.cluster.local:50000
JENKINS_UI_PORT=tcp://172.30.41.253:80
JENKINS_UI_PORT_80_TCP=tcp://172.30.41.253:80
JENKINS_UI_PORT_80_TCP_ADDR=172.30.41.253
JENKINS_UI_PORT_80_TCP_PORT=80
JENKINS_UI_PORT_80_TCP_PROTO=tcp
JENKINS_UI_SERVICE_HOST=172.30.41.253
JENKINS_UI_SERVICE_PORT=80
JENKINS_UI_SERVICE_PORT_HTTP=80
JENKINS_URL=https://ci.eclipse.org/packages/
JNLP_PROTOCOL_OPTS=-XshowSettings:vm -Xmx256m -Djdk.nativeCrypto=false -Dsun.zip.disableMemoryMapping=true -Dorg.jenkinsci.remoting.engine.JnlpProtocol3.disabled=true -Dorg.jenkinsci.plugins.gitclient.CliGitAPIImpl.useSETSID=true
JOB_BASE_NAME=develop
JOB_DISPLAY_URL=https://ci.eclipse.org/packages/job/Website/job/develop/display/redirect
JOB_NAME=Website/develop
JOB_URL=https://ci.eclipse.org/packages/job/Website/job/develop/
KUBERNETES_PORT=tcp://172.30.40.1:443
KUBERNETES_PORT_443_TCP=tcp://172.30.40.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.30.40.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_53_TCP=tcp://172.30.40.1:53
KUBERNETES_PORT_53_TCP_ADDR=172.30.40.1
KUBERNETES_PORT_53_TCP_PORT=53
KUBERNETES_PORT_53_TCP_PROTO=tcp
KUBERNETES_PORT_53_UDP=udp://172.30.40.1:53
KUBERNETES_PORT_53_UDP_ADDR=172.30.40.1
KUBERNETES_PORT_53_UDP_PORT=53
KUBERNETES_PORT_53_UDP_PROTO=udp
KUBERNETES_SERVICE_HOST=172.30.40.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_DNS=53
KUBERNETES_SERVICE_PORT_DNS_TCP=53
KUBERNETES_SERVICE_PORT_HTTPS=443
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=en_US.UTF-8
LD_LIBRARY_PATH=/usr/lib
NODE_LABELS=packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1 packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h
NODE_NAME=packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h
OLDPWD=/home/jenkins
OPENJ9_JAVA_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+UseContainerSupport -XX:+IdleTuningCompactOnIdle -XX:+IdleTuningGcOnIdle -XX:MaxRAMPercentage=64
PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PROJECT_BOT_NAME=Eclipse IoT Packages Bot
PROJECT_NAME=packages
PWD=/home/jenkins/agent/workspace/Website_develop
RUN_CHANGES_DISPLAY_URL=https://ci.eclipse.org/packages/job/Website/job/develop/2/display/redirect?page=changes
RUN_DISPLAY_URL=https://ci.eclipse.org/packages/job/Website/job/develop/2/display/redirect
SHLVL=3
STAGE_NAME=Init
WORKSPACE=/home/jenkins/agent/workspace/Website_develop
_JAVA_OPTIONS=-XX:MaxRAMPercentage=64.0
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Clone)
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/build
[Pipeline] {
[Pipeline] checkout
using credential 54a16c14-0727-448e-952f-e4e472173fa9
Cloning the remote Git repository
Cloning with configured refspecs honoured and without tags
Cloning repository https://github.com/eclipse/packages.git
 > git init /home/jenkins/agent/workspace/Website_develop/build # timeout=10
Fetching upstream changes from https://github.com/eclipse/packages.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials GitHub bot
 > git fetch --no-tags --force --progress -- https://github.com/eclipse/packages.git +refs/heads/develop:refs/remotes/origin/develop
Fetching without tags
Checking out Revision b4f3ce32fe3c3c1b64cce4e4c689dc37c3a13266 (develop)
 > git config remote.origin.url https://github.com/eclipse/packages.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/develop:refs/remotes/origin/develop # timeout=10
 > git config remote.origin.url https://github.com/eclipse/packages.git # timeout=10
Fetching upstream changes from https://github.com/eclipse/packages.git
using GIT_ASKPASS to set credentials GitHub bot
 > git fetch --no-tags --force --progress -- https://github.com/eclipse/packages.git +refs/heads/develop:refs/remotes/origin/develop
 > git config core.sparsecheckout # timeout=10
 > git checkout -f b4f3ce32fe3c3c1b64cce4e4c689dc37c3a13266
Commit message: "Add the c2e logo, adapt template for package logos"
 > git rev-list --no-walk 29a06acfb6c2f2dad7ebbaaddff074c5f0a93109 # timeout=10
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Helm Install)
[Pipeline] sh
+ curl --silent --location https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz --output helm.tar.gz
+ tar '--strip-components=1' -xvzf helm.tar.gz linux-amd64/helm
linux-amd64/helm
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // container
[Pipeline] container
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Helm Init)
[Pipeline] sh
+ /home/jenkins/agent/workspace/Website_develop/helm init --client-only
Creating /home/jenkins/agent/workspace/Website_develop/helm-home 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/repository 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/repository/cache 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/repository/local 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/plugins 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/starters 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/cache/archive 
Creating /home/jenkins/agent/workspace/Website_develop/helm-home/repository/repositories.yaml 
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
Adding local repo with URL: http://127.0.0.1:8879/charts 
$HELM_HOME has been configured at /home/jenkins/agent/workspace/Website_develop/helm-home.
Not installing Tiller due to 'client-only' flag having been set
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Helm Build)
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/build
[Pipeline] {
[Pipeline] sh
+ mkdir -p helm-repository
+ ls charts/ditto/Chart.yaml charts/hawkbit/Chart.yaml charts/hono/Chart.yaml packages/cloud2edge/Chart.yaml
+ dirname charts/ditto/Chart.yaml
+ echo 'Building charts/ditto ...'
Building charts/ditto ...
+ dirname charts/ditto/Chart.yaml
+ /home/jenkins/agent/workspace/Website_develop/helm package -u charts/ditto -d helm-repository
Hang tight while we grab the latest from your chart repositories...
...Unable to get an update from the "local" chart repository (http://127.0.0.1:8879/charts):
	Get http://127.0.0.1:8879/charts/index.yaml: dial tcp 127.0.0.1:8879: connect: connection refused
...Successfully got an update from the "stable" chart repository
Update Complete.
Saving 1 charts
Downloading mongodb from repo https://kubernetes-charts.storage.googleapis.com
Deleting outdated charts
Successfully packaged chart and saved it to: helm-repository/ditto-1.1.4.tgz
+ dirname charts/hawkbit/Chart.yaml
+ echo 'Building charts/hawkbit ...'
Building charts/hawkbit ...
+ dirname charts/hawkbit/Chart.yaml
+ /home/jenkins/agent/workspace/Website_develop/helm package -u charts/hawkbit -d helm-repository
Hang tight while we grab the latest from your chart repositories...
...Unable to get an update from the "local" chart repository (http://127.0.0.1:8879/charts):
	Get http://127.0.0.1:8879/charts/index.yaml: dial tcp 127.0.0.1:8879: connect: connection refused
...Successfully got an update from the "stable" chart repository
Update Complete.
Saving 2 charts
Downloading mysql from repo https://charts.bitnami.com
Downloading rabbitmq from repo https://charts.bitnami.com
Deleting outdated charts
Successfully packaged chart and saved it to: helm-repository/hawkbit-1.1.0.tgz
+ dirname charts/hono/Chart.yaml
+ echo 'Building charts/hono ...'
Building charts/hono ...
+ dirname charts/hono/Chart.yaml
+ /home/jenkins/agent/workspace/Website_develop/helm package -u charts/hono -d helm-repository
Hang tight while we grab the latest from your chart repositories...
...Unable to get an update from the "local" chart repository (http://127.0.0.1:8879/charts):
	Get http://127.0.0.1:8879/charts/index.yaml: dial tcp 127.0.0.1:8879: connect: connection refused
...Successfully got an update from the "stable" chart repository
Update Complete.
Saving 2 charts
Downloading prometheus from repo https://kubernetes-charts.storage.googleapis.com/
Downloading grafana from repo https://kubernetes-charts.storage.googleapis.com/
Deleting outdated charts
Successfully packaged chart and saved it to: helm-repository/hono-1.2.1.tgz
+ dirname packages/cloud2edge/Chart.yaml
+ echo 'Building packages/cloud2edge ...'
Building packages/cloud2edge ...
+ dirname packages/cloud2edge/Chart.yaml
+ /home/jenkins/agent/workspace/Website_develop/helm package -u packages/cloud2edge -d helm-repository
Hang tight while we grab the latest from your chart repositories...
...Unable to get an update from the "local" chart repository (http://127.0.0.1:8879/charts):
	Get http://127.0.0.1:8879/charts/index.yaml: dial tcp 127.0.0.1:8879: connect: connection refused
...Successfully got an update from the "stable" chart repository
Update Complete.
Saving 2 charts
Downloading hono from repo https://eclipse.org/packages/charts/
Downloading ditto from repo https://eclipse.org/packages/charts/
Deleting outdated charts
Successfully packaged chart and saved it to: helm-repository/cloud2edge-0.0.5.tgz
+ find helm-repository
helm-repository
helm-repository/ditto-1.1.4.tgz
helm-repository/hawkbit-1.1.0.tgz
helm-repository/hono-1.2.1.tgz
helm-repository/cloud2edge-0.0.5.tgz
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Jekyll Dependencies)
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/build/homepage
[Pipeline] {
[Pipeline] sh
+ cp -rd /usr/gem/. /usr/local/bundle/
+ bundle install
Fetching gem metadata from https://rubygems.org/...........
Using public_suffix 4.0.1
Using addressable 2.7.0
Using bundler 2.0.2
Using colorator 1.1.0
Using concurrent-ruby 1.1.5
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.1
Using ffi 1.11.1
Using forwardable-extended 2.6.0
Using i18n 1.7.0
Using sassc 2.2.1
Using jekyll-sass-converter 2.0.1
Using rb-fsevent 0.10.3
Using rb-inotify 0.10.0
Using listen 3.2.0
Using jekyll-watch 2.2.1
Using kramdown 2.1.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using mercenary 0.3.6
Using pathutil 0.16.2
Fetching rouge 3.12.0
Installing rouge 3.12.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.6.0
Using terminal-table 1.8.0
Using jekyll 4.0.0
Fetching jekyll-contentblocks 1.2.0
Installing jekyll-contentblocks 1.2.0
Bundle complete! 2 Gemfile dependencies, 28 gems now installed.
Bundled gems are installed into `/usr/local/bundle`
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Jekyll Build)
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/build/homepage
[Pipeline] {
[Pipeline] sh
+ bundle exec ruby /usr/gem/bin/jekyll build --config _config.yml,_config_staging.yml
Configuration file: /home/jenkins/agent/workspace/Website_develop/build/homepage/_config.yml
Configuration file: /home/jenkins/agent/workspace/Website_develop/build/homepage/_config_staging.yml
            Source: /home/jenkins/agent/workspace/Website_develop/build/homepage
       Destination: /home/jenkins/agent/workspace/Website_develop/build/homepage/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
           Warning: Excerpt modified in _packages/cloud2edge/installation.md!
                    Found a Liquid block containing the excerpt separator "\n\n". 
                    The block has been modified with the appropriate closing tag.
                    Feel free to define a custom excerpt or excerpt_separator in the
                    document's Front Matter if the generated excerpt is unsatisfactory.
           Warning: Excerpt modified in _packages/cloud2edge/learn.md!
                    Found a Liquid block containing the excerpt separator "\n\n". 
                    The block has been modified with the appropriate closing tag.
                    Feel free to define a custom excerpt or excerpt_separator in the
                    document's Front Matter if the generated excerpt is unsatisfactory.
           Warning: Excerpt modified in _packages/cloud2edge/tour.md!
                    Found a Liquid block containing the excerpt separator "\n\n". 
                    The block has been modified with the appropriate closing tag.
                    Feel free to define a custom excerpt or excerpt_separator in the
                    document's Front Matter if the generated excerpt is unsatisfactory.
                    done in 4.283 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // container
[Pipeline] container
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout website)
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/www
[Pipeline] {
[Pipeline] sshagent
[ssh-agent] Using credentials genie.packages (ssh://genie.packages@git.eclipse.org)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
Executing shell script inside container [jnlp] of pod [packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h]
Executing command: "ssh-agent" 
exit
SSH_AUTH_SOCK=/tmp/ssh-mjCOHDXC11jj/agent.309; export SSH_AUTH_SOCK;
SSH_AGENT_PID=310; export SSH_AGENT_PID;
echo Agent pid 310;
SSH_AUTH_SOCK=/tmp/ssh-mjCOHDXC11jj/agent.309
SSH_AGENT_PID=310
Running ssh-add (command line suppressed)
Identity added: /home/jenkins/agent/workspace/Website_develop/www@tmp/private_key_346153517500121098.key (/home/jenkins/agent/workspace/Website_develop/www@tmp/private_key_346153517500121098.key)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
+ '[' develop '==' develop ]
+ BRANCH_NAME=staging
+ git config --global user.email packages-bot@eclipse.org
+ git config --global user.name 'Eclipse IoT Packages Bot'
+ git clone ssh://genie.packages@git.eclipse.org:29418/www.eclipse.org/packages .
Cloning into '.'...
Total 1093 (delta 22), reused 1086 (delta 22)
+ git checkout staging
Branch 'staging' set up to track remote branch 'staging' from 'origin'.
Switched to a new branch 'staging'
[Pipeline] }
Executing shell script inside container [jnlp] of pod [packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h]
Executing command: "ssh-agent" "-k" 
exit
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 310 killed;
[ssh-agent] Stopped.
[Pipeline] // sshagent
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Copy content)
[Pipeline] sh
+ rm -rf www/README.md www/about www/assets www/charts www/contribute www/faq www/images www/index.html www/packages www/prereqs www/repository
+ cp -Rvf build/homepage/_site/README.md build/homepage/_site/about build/homepage/_site/assets build/homepage/_site/contribute build/homepage/_site/faq build/homepage/_site/images build/homepage/_site/index.html build/homepage/_site/packages build/homepage/_site/prereqs build/homepage/_site/repository www/
'build/homepage/_site/README.md' -> 'www/README.md'
'build/homepage/_site/about' -> 'www/about'
'build/homepage/_site/about/index.html' -> 'www/about/index.html'
'build/homepage/_site/assets' -> 'www/assets'
'build/homepage/_site/assets/.htaccess' -> 'www/assets/.htaccess'
'build/homepage/_site/assets/clipboard.js' -> 'www/assets/clipboard.js'
'build/homepage/_site/assets/clipboard.min.js' -> 'www/assets/clipboard.min.js'
'build/homepage/_site/assets/jquery.min.js' -> 'www/assets/jquery.min.js'
'build/homepage/_site/assets/popper.min.js' -> 'www/assets/popper.min.js'
'build/homepage/_site/assets/bootstrap' -> 'www/assets/bootstrap'
'build/homepage/_site/assets/bootstrap/bootstrap.min.js.map' -> 'www/assets/bootstrap/bootstrap.min.js.map'
'build/homepage/_site/assets/bootstrap/bootstrap-grid.css' -> 'www/assets/bootstrap/bootstrap-grid.css'
'build/homepage/_site/assets/bootstrap/bootstrap-grid.css.map' -> 'www/assets/bootstrap/bootstrap-grid.css.map'
'build/homepage/_site/assets/bootstrap/bootstrap-grid.min.css' -> 'www/assets/bootstrap/bootstrap-grid.min.css'
'build/homepage/_site/assets/bootstrap/bootstrap-grid.min.css.map' -> 'www/assets/bootstrap/bootstrap-grid.min.css.map'
'build/homepage/_site/assets/bootstrap/bootstrap-reboot.css' -> 'www/assets/bootstrap/bootstrap-reboot.css'
'build/homepage/_site/assets/bootstrap/bootstrap-reboot.css.map' -> 'www/assets/bootstrap/bootstrap-reboot.css.map'
'build/homepage/_site/assets/bootstrap/bootstrap-reboot.min.css' -> 'www/assets/bootstrap/bootstrap-reboot.min.css'
'build/homepage/_site/assets/bootstrap/bootstrap-reboot.min.css.map' -> 'www/assets/bootstrap/bootstrap-reboot.min.css.map'
'build/homepage/_site/assets/bootstrap/bootstrap.bundle.js' -> 'www/assets/bootstrap/bootstrap.bundle.js'
'build/homepage/_site/assets/bootstrap/bootstrap.bundle.js.map' -> 'www/assets/bootstrap/bootstrap.bundle.js.map'
'build/homepage/_site/assets/bootstrap/bootstrap.bundle.min.js' -> 'www/assets/bootstrap/bootstrap.bundle.min.js'
'build/homepage/_site/assets/bootstrap/bootstrap.bundle.min.js.map' -> 'www/assets/bootstrap/bootstrap.bundle.min.js.map'
'build/homepage/_site/assets/bootstrap/bootstrap.css' -> 'www/assets/bootstrap/bootstrap.css'
'build/homepage/_site/assets/bootstrap/bootstrap.css.map' -> 'www/assets/bootstrap/bootstrap.css.map'
'build/homepage/_site/assets/bootstrap/bootstrap.js' -> 'www/assets/bootstrap/bootstrap.js'
'build/homepage/_site/assets/bootstrap/bootstrap.js.map' -> 'www/assets/bootstrap/bootstrap.js.map'
'build/homepage/_site/assets/bootstrap/bootstrap.min.css' -> 'www/assets/bootstrap/bootstrap.min.css'
'build/homepage/_site/assets/bootstrap/bootstrap.min.css.map' -> 'www/assets/bootstrap/bootstrap.min.css.map'
'build/homepage/_site/assets/bootstrap/bootstrap.min.js' -> 'www/assets/bootstrap/bootstrap.min.js'
'build/homepage/_site/assets/css' -> 'www/assets/css'
'build/homepage/_site/assets/css/style.css' -> 'www/assets/css/style.css'
'build/homepage/_site/assets/js' -> 'www/assets/js'
'build/homepage/_site/assets/js/code.js' -> 'www/assets/js/code.js'
'build/homepage/_site/contribute' -> 'www/contribute'
'build/homepage/_site/contribute/index.html' -> 'www/contribute/index.html'
'build/homepage/_site/faq' -> 'www/faq'
'build/homepage/_site/faq/index.html' -> 'www/faq/index.html'
'build/homepage/_site/images' -> 'www/images'
'build/homepage/_site/images/eclipse-IoT-light.png' -> 'www/images/eclipse-IoT-light.png'
'build/homepage/_site/images/helm.png' -> 'www/images/helm.png'
'build/homepage/_site/images/helm.svg' -> 'www/images/helm.svg'
'build/homepage/_site/images/icon_brand_navbar.svg' -> 'www/images/icon_brand_navbar.svg'
'build/homepage/_site/images/kubernetes.svg' -> 'www/images/kubernetes.svg'
'build/homepage/_site/images/logo.svg' -> 'www/images/logo.svg'
'build/homepage/_site/images/new-project.svg' -> 'www/images/new-project.svg'
'build/homepage/_site/images/package-zero.jpg' -> 'www/images/package-zero.jpg'
'build/homepage/_site/images/icon' -> 'www/images/icon'
'build/homepage/_site/images/icon/icon.png' -> 'www/images/icon/icon.png'
'build/homepage/_site/images/icon/icon.svg' -> 'www/images/icon/icon.svg'
'build/homepage/_site/images/icon/icon_apple.png' -> 'www/images/icon/icon_apple.png'
'build/homepage/_site/images/icon/twitter_icon.png' -> 'www/images/icon/twitter_icon.png'
'build/homepage/_site/index.html' -> 'www/index.html'
'build/homepage/_site/packages' -> 'www/packages'
'build/homepage/_site/packages/cloud2edge' -> 'www/packages/cloud2edge'
'build/homepage/_site/packages/cloud2edge/index.html' -> 'www/packages/cloud2edge/index.html'
'build/homepage/_site/packages/cloud2edge/installation' -> 'www/packages/cloud2edge/installation'
'build/homepage/_site/packages/cloud2edge/installation/index.html' -> 'www/packages/cloud2edge/installation/index.html'
'build/homepage/_site/packages/cloud2edge/learn' -> 'www/packages/cloud2edge/learn'
'build/homepage/_site/packages/cloud2edge/learn/index.html' -> 'www/packages/cloud2edge/learn/index.html'
'build/homepage/_site/packages/cloud2edge/tour' -> 'www/packages/cloud2edge/tour'
'build/homepage/_site/packages/cloud2edge/tour/index.html' -> 'www/packages/cloud2edge/tour/index.html'
'build/homepage/_site/packages/cloud2edge/images' -> 'www/packages/cloud2edge/images'
'build/homepage/_site/packages/cloud2edge/images/c2e-logo.svg' -> 'www/packages/cloud2edge/images/c2e-logo.svg'
'build/homepage/_site/packages/cloud2edge/images/overview.odg' -> 'www/packages/cloud2edge/images/overview.odg'
'build/homepage/_site/packages/cloud2edge/images/overview.png' -> 'www/packages/cloud2edge/images/overview.png'
'build/homepage/_site/packages/cloud2edge/scripts' -> 'www/packages/cloud2edge/scripts'
'build/homepage/_site/packages/cloud2edge/scripts/setCloud2EdgeEnv.sh' -> 'www/packages/cloud2edge/scripts/setCloud2EdgeEnv.sh'
'build/homepage/_site/prereqs' -> 'www/prereqs'
'build/homepage/_site/prereqs/index.html' -> 'www/prereqs/index.html'
'build/homepage/_site/repository' -> 'www/repository'
'build/homepage/_site/repository/index.html' -> 'www/repository/index.html'
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/www
[Pipeline] {
[Pipeline] sh
+ git checkout -- charts/
[Pipeline] }
[Pipeline] // dir
[Pipeline] sh
+ mkdir build/helm-add
+ ls build/helm-repository/cloud2edge-0.0.5.tgz build/helm-repository/ditto-1.1.4.tgz build/helm-repository/hawkbit-1.1.0.tgz build/helm-repository/hono-1.2.1.tgz
+ basename build/helm-repository/cloud2edge-0.0.5.tgz
+ '[' '!' -f www/charts/cloud2edge-0.0.5.tgz ]
+ basename build/helm-repository/cloud2edge-0.0.5.tgz
+ echo 'Publishing cloud2edge-0.0.5.tgz ...'
Publishing cloud2edge-0.0.5.tgz ...
+ cp -v build/helm-repository/cloud2edge-0.0.5.tgz build/helm-add/
'build/helm-repository/cloud2edge-0.0.5.tgz' -> 'build/helm-add/cloud2edge-0.0.5.tgz'
+ touch build/perform-merge
+ basename build/helm-repository/ditto-1.1.4.tgz
+ '[' '!' -f www/charts/ditto-1.1.4.tgz ]
+ basename build/helm-repository/ditto-1.1.4.tgz
+ echo 'Publishing ditto-1.1.4.tgz ...'
Publishing ditto-1.1.4.tgz ...
+ cp -v build/helm-repository/ditto-1.1.4.tgz build/helm-add/
'build/helm-repository/ditto-1.1.4.tgz' -> 'build/helm-add/ditto-1.1.4.tgz'
+ touch build/perform-merge
+ basename build/helm-repository/hawkbit-1.1.0.tgz
+ '[' '!' -f www/charts/hawkbit-1.1.0.tgz ]
+ basename build/helm-repository/hawkbit-1.1.0.tgz
+ echo 'Publishing hawkbit-1.1.0.tgz ...'
Publishing hawkbit-1.1.0.tgz ...
+ cp -v build/helm-repository/hawkbit-1.1.0.tgz build/helm-add/
'build/helm-repository/hawkbit-1.1.0.tgz' -> 'build/helm-add/hawkbit-1.1.0.tgz'
+ touch build/perform-merge
+ basename build/helm-repository/hono-1.2.1.tgz
+ '[' '!' -f www/charts/hono-1.2.1.tgz ]
+ basename build/helm-repository/hono-1.2.1.tgz
+ echo 'Publishing hono-1.2.1.tgz ...'
Publishing hono-1.2.1.tgz ...
+ cp -v build/helm-repository/hono-1.2.1.tgz build/helm-add/
'build/helm-repository/hono-1.2.1.tgz' -> 'build/helm-add/hono-1.2.1.tgz'
+ touch build/perform-merge
[Pipeline] }
[Pipeline] // stage
[Pipeline] fileExists
[Pipeline] stage
[Pipeline] { (Rebuild helm Index)
[Pipeline] sh
+ /home/jenkins/agent/workspace/Website_develop/helm repo index --merge www/charts/index.yaml build/helm-add --url https://staging.eclipse.org/packages/charts
[Pipeline] sh
+ cp -v build/helm-add/cloud2edge-0.0.5.tgz build/helm-add/ditto-1.1.4.tgz build/helm-add/hawkbit-1.1.0.tgz build/helm-add/hono-1.2.1.tgz build/helm-add/index.yaml www/charts/
'build/helm-add/cloud2edge-0.0.5.tgz' -> 'www/charts/cloud2edge-0.0.5.tgz'
'build/helm-add/ditto-1.1.4.tgz' -> 'www/charts/ditto-1.1.4.tgz'
'build/helm-add/hawkbit-1.1.0.tgz' -> 'www/charts/hawkbit-1.1.0.tgz'
'build/helm-add/hono-1.2.1.tgz' -> 'www/charts/hono-1.2.1.tgz'
'build/helm-add/index.yaml' -> 'www/charts/index.yaml'
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Commit and push)
[Pipeline] dir
Running in /home/jenkins/agent/workspace/Website_develop/www
[Pipeline] {
[Pipeline] sshagent
[ssh-agent] Using credentials genie.packages (ssh://genie.packages@git.eclipse.org)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
Executing shell script inside container [jnlp] of pod [packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h]
Executing command: "ssh-agent" 
exit
SSH_AUTH_SOCK=/tmp/ssh-XhH2d42MCMzH/agent.485; export SSH_AUTH_SOCK;
SSH_AGENT_PID=486; export SSH_AGENT_PID;
echo Agent pid 486;
SSH_AUTH_SOCK=/tmp/ssh-XhH2d42MCMzH/agent.485
SSH_AGENT_PID=486
Running ssh-add (command line suppressed)
Identity added: /home/jenkins/agent/workspace/Website_develop/www@tmp/private_key_7486304839724721992.key (/home/jenkins/agent/workspace/Website_develop/www@tmp/private_key_7486304839724721992.key)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
+ '[' develop '==' develop ]
+ BRANCH_NAME=staging
+ git add -A
+ git diff --cached --exit-code
diff --git a/about/index.html b/about/index.html
index 31ea368..98a3037 100644
--- a/about/index.html
+++ b/about/index.html
@@ -14,6 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
 <meta name="twitter:title" content="About"/>
 <meta name="twitter:description" content=""/>
 
diff --git a/assets/css/style.css b/assets/css/style.css
index 133779b..5d8211d 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -21,6 +21,10 @@ h2, h3 {
     margin-top: 2rem;
 }
 
+img.card-img-top {
+    height: 15vw;
+}
+
 .toc-anchor {
     display: block;
     position: relative;
diff --git a/charts/cloud2edge-0.0.5.tgz b/charts/cloud2edge-0.0.5.tgz
new file mode 100644
index 0000000..14402be
Binary files /dev/null and b/charts/cloud2edge-0.0.5.tgz differ
diff --git a/charts/ditto-1.1.4.tgz b/charts/ditto-1.1.4.tgz
new file mode 100644
index 0000000..ae018d3
Binary files /dev/null and b/charts/ditto-1.1.4.tgz differ
diff --git a/charts/hawkbit-1.1.0.tgz b/charts/hawkbit-1.1.0.tgz
new file mode 100644
index 0000000..616e141
Binary files /dev/null and b/charts/hawkbit-1.1.0.tgz differ
diff --git a/charts/hono-1.2.1.tgz b/charts/hono-1.2.1.tgz
new file mode 100644
index 0000000..2d3e304
Binary files /dev/null and b/charts/hono-1.2.1.tgz differ
diff --git a/charts/index.yaml b/charts/index.yaml
index 306c45f..dea0b55 100644
--- a/charts/index.yaml
+++ b/charts/index.yaml
@@ -1,6 +1,30 @@
 apiVersion: v1
 entries:
   cloud2edge:
+  - apiVersion: v1
+    appVersion: 0.0.5
+    created: "2020-03-19T12:14:08.939149344Z"
+    description: |
+      Eclipse IoT Cloud2Edge (C2E) is an integrated suite of services developers can use to build IoT applications
+      that are deployed from the cloud to the edge. The suite currently consists of Eclipse Hono and Eclipse Ditto.
+    digest: 5352dd1a86b35df4eb477cee0c826bee3ff38938c3af224c967bd4692c7a7cdc
+    home: https://eclipse.org/packages/packages/cloud2edge/
+    keywords:
+    - iot-package
+    - IoT
+    - messaging
+    - digital twin
+    maintainers:
+    - email: kai.hudalla@bosch.io
+      name: sophokles73
+    - email: thomas.jaeckle@bosch.io
+      name: thjaeckle
+    name: cloud2edge
+    sources:
+    - https://github.com/eclipse/packages/packages/cloud2edge/
+    urls:
+    - https://staging.eclipse.org/packages/charts/cloud2edge-0.0.5.tgz
+    version: 0.0.5
   - apiVersion: v1
     appVersion: 0.0.1
     created: "2020-02-13T09:37:32.488608346Z"
@@ -24,6 +48,31 @@ entries:
     - https://staging.eclipse.org/packages/charts/cloud2edge-0.0.1-alpha2.tgz
     version: 0.0.1-alpha2
   ditto:
+  - apiVersion: v1
+    appVersion: 1.0.0
+    created: "2020-03-19T12:14:09.03487012Z"
+    description: |
+      Eclipse Ditto™ is a technology in the IoT implementing a software pattern called “digital twins”.
+      A digital twin is a virtual, cloud based, representation of his real world counterpart
+      (real world “Things”, e.g. devices like sensors, smart heating, connected cars, smart grids,
+      EV charging stations etc).
+    digest: 34eb252adea217f9184cab7fd20a793e3ff9178415e06163ec086f0165a5736d
+    home: https://www.eclipse.org/ditto
+    icon: https://www.eclipse.org/ditto/images/ditto.svg
+    keywords:
+    - iot-chart
+    maintainers:
+    - email: axel.koehler@kiwigrid.com
+      name: axdotl
+    - email: thomas.jaeckle@bosch-si.com
+      name: thjaeckle
+    name: ditto
+    sources:
+    - https://github.com/eclipse/ditto
+    - https://github.com/eclipse/packages
+    urls:
+    - https://staging.eclipse.org/packages/charts/ditto-1.1.4.tgz
+    version: 1.1.4
   - apiVersion: v1
     appVersion: 1.0.0
     created: "2020-02-13T13:21:25.913644565Z"
@@ -107,6 +156,32 @@ entries:
     - https://staging.eclipse.org/packages/charts/ditto-1.0.0-snapshot.tgz
     version: 1.0.0-snapshot
   hawkbit:
+  - apiVersion: v1
+    appVersion: 0.3.0M6-mysql
+    created: "2020-03-19T12:14:09.039773068Z"
+    description: |
+      Eclipse 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.
+    digest: c3793043e412d82ddd695325d99114e0d46c13e61abcc7a54eacbda9a8830064
+    home: https://www.eclipse.org/hawkbit/
+    icon: https://www.eclipse.org/hawkbit/images/hawkbit_icon.png
+    keywords:
+    - iot-chart
+    maintainers:
+    - email: andre.bauer@kiwigrid.com
+      name: monotek
+    - email: axel.koehler@kiwigrid.com
+      name: axdotl
+    - email: ctron@dentrassi.de
+      name: ctron
+    name: hawkbit
+    sources:
+    - https://github.com/eclipse/hawkbit
+    - https://github.com/eclipse/packages
+    urls:
+    - https://staging.eclipse.org/packages/charts/hawkbit-1.1.0.tgz
+    version: 1.1.0
   - apiVersion: v1
     appVersion: 0.3.0M6-mysql
     created: "2020-02-13T13:21:25.916440788Z"
@@ -151,6 +226,32 @@ entries:
     - https://staging.eclipse.org/packages/charts/hawkbit-1.0.0.tgz
     version: 1.0.0
   hono:
+  - apiVersion: v1
+    appVersion: 1.1.1
+    created: "2020-03-19T12:14:09.335209846Z"
+    description: |
+      Eclipse Hono™ provides remote service interfaces for connecting large numbers of IoT devices to a back end and
+      interacting with them in a uniform way regardless of the device communication protocol.
+    digest: 699a1c71b870d718a133d88bbc10517c345cb391860695b1e9346fa291f7bbb4
+    home: https://www.eclipse.org/hono/
+    icon: https://www.eclipse.org/hono/favicon/favicon-48x48.png
+    keywords:
+    - iot-chart
+    - IoT
+    - messaging
+    maintainers:
+    - email: dbosanac@redhat.com
+      name: dejanb
+    - email: jreimann@redhat.com
+      name: ctron
+    - email: kai.hudalla@bosch.io
+      name: sophokles73
+    name: hono
+    sources:
+    - https://github.com/eclipse/hono
+    urls:
+    - https://staging.eclipse.org/packages/charts/hono-1.2.1.tgz
+    version: 1.2.1
   - apiVersion: v1
     appVersion: 1.1.0
     created: "2020-02-13T09:37:32.589121686Z"
@@ -177,4 +278,4 @@ entries:
     urls:
     - https://staging.eclipse.org/packages/charts/hono-1.1.3.tgz
     version: 1.1.3
-generated: "2020-02-13T13:21:25.91054639Z"
+generated: "2020-03-19T12:14:08.834481633Z"
diff --git a/contribute/index.html b/contribute/index.html
index d966582..0c8e62c 100644
--- a/contribute/index.html
+++ b/contribute/index.html
@@ -14,6 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
 <meta name="twitter:title" content="Contributions welcome"/>
 <meta name="twitter:description" content=""/>
 
@@ -130,11 +131,12 @@ are some qualitative requirements that all packages and the charts they contain
 integrated with each other in this way.</li>
   <li>only contain artifacts that are distributed under a license that is compatible with the EPLv2.</li>
   <li>only contain stable, released versions of project artifacts (no milestones or snapshots).</li>
-  <li>must contain
+  <li>must
     <ul>
-      <li>a README covering a basic introduction and the idea behind the package,</li>
-      <li>the Helm charts constituting the components of the package,</li>
-      <li>some guidance regarding what users might want to do with the package after installation.</li>
+      <li>contain a README covering a basic introduction and the idea behind the package,</li>
+      <li>include the Helm charts constituting the components of the package,</li>
+      <li>provide some guidance regarding what users might want to do with the package after installation.</li>
+      <li>include the <code class="highlighter-rouge">iot-package</code> key word in their <em>Chart.yaml</em></li>
     </ul>
   </li>
 </ul>
@@ -213,6 +215,7 @@ and <a href="https://github.com/helm/helm/blob/master/docs/chart_best_practices/
   </li>
   <li>must contain a <code class="highlighter-rouge">values.yaml</code> file which contains a reasonable default configuration and explains
 how the properties can be used to customize the chart</li>
+  <li>must include the <code class="highlighter-rouge">iot-chart</code> key word in their <em>Chart.yaml</em></li>
 </ul>
 
 <h2 id="merge-approval-and-release-process">Merge approval and release process</h2>
diff --git a/faq/index.html b/faq/index.html
index 8aaf698..066a2de 100644
--- a/faq/index.html
+++ b/faq/index.html
@@ -14,6 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
 <meta name="twitter:title" content="Questions and answers"/>
 <meta name="twitter:description" content=""/>
 
diff --git a/images/icon/twitter_icon.png b/images/icon/twitter_icon.png
new file mode 100644
index 0000000..f6156ec
Binary files /dev/null and b/images/icon/twitter_icon.png differ
diff --git a/index.html b/index.html
index c2ed06d..4af104a 100644
--- a/index.html
+++ b/index.html
@@ -14,6 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
 <meta name="twitter:title" content="Eclipse IoT Packages™"/>
 <meta name="twitter:description" content=""/>
 
@@ -107,7 +108,7 @@
 <div class="card">
 
   <a href="/packages/packages/cloud2edge/">
-    <img src="images/package-zero.jpg" class="card-img-top" alt="" />
+    <img src="/packages/packages/cloud2edge/images/c2e-logo.svg" class="card-img-top" alt="" />
   </a>
 
   <div class="card-body">
@@ -131,7 +132,7 @@
   </div>
 </div>
 <div class="card">
-  <img src="/packages/images/new-project.svg" class="card-img-top" alt="Contribute new package" />
+  <img src="/packages/images/new-project.svg" class="card-img-top" style="object-fit: cover;" alt="Contribute new package" />
   <div class="card-body">
     <h5 class="card-title">Your ideas next!</h5>
     <p class="card-text">Provide your own package.</p>
diff --git a/packages/cloud2edge/images/c2e-logo.svg b/packages/cloud2edge/images/c2e-logo.svg
new file mode 100644
index 0000000..e6c5660
--- /dev/null
+++ b/packages/cloud2edge/images/c2e-logo.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg width="100%" height="100%" viewBox="0 0 804 591" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
+    <g transform="matrix(2.52242,0,0,2.31157,-1776.33,-2348.12)">
+        <g>
+            <g transform="matrix(50,0,0,50,708.685,1266.05)">
+                <path d="M0.387,-0.644C0.352,-0.644 0.321,-0.637 0.292,-0.624C0.264,-0.611 0.24,-0.592 0.22,-0.567C0.2,-0.543 0.184,-0.513 0.174,-0.477C0.163,-0.442 0.157,-0.402 0.157,-0.357C0.157,-0.311 0.162,-0.27 0.172,-0.235C0.181,-0.199 0.196,-0.169 0.215,-0.145C0.234,-0.12 0.258,-0.102 0.287,-0.089C0.315,-0.076 0.349,-0.07 0.387,-0.07C0.416,-0.07 0.444,-0.073 0.47,-0.078C0.496,-0.084 0.521,-0.091 0.547,-0.098L0.547,-0.019C0.534,-0.014 0.521,-0.01 0.509,-0.006C0.496,-0.002 0.483,0.001 0.469,0.003C0.455,0.005 0.44,0.007 0.425,0.008C0.409,0.009 0.391,0.01 0.372,0.01C0.319,0.01 0.272,0.001 0.233,-0.017C0.194,-0.034 0.162,-0.059 0.136,-0.091C0.111,-0.124 0.092,-0.162 0.08,-0.208C0.067,-0.253 0.061,-0.303 0.061,-0.358C0.061,-0.412 0.068,-0.461 0.082,-0.506C0.096,-0.551 0.117,-0.59 0.145,-0.622C0.172,-0.654 0.206,-0.679 0.247,-0.697C0.288,-0.715 0.334,-0.724 0.387,-0.724C0.422,-0.724 0.456,-0.721 0.488,-0.713C0.52,-0.706 0.549,-0.696 0.574,-0.682L0.536,-0.606C0.516,-0.616 0.493,-0.625 0.469,-0.633C0.445,-0.64 0.418,-0.644 0.387,-0.644Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,738.836,1266.05)">
+                <path d="M0.097,0L0.097,-0.714L0.188,-0.714L0.188,-0.081L0.468,-0.081L0.468,0L0.097,0Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,762.909,1266.05)">
+                <path d="M0.68,-0.358C0.68,-0.303 0.674,-0.253 0.66,-0.208C0.647,-0.162 0.628,-0.124 0.602,-0.091C0.576,-0.059 0.543,-0.034 0.505,-0.017C0.466,0.001 0.422,0.01 0.371,0.01C0.318,0.01 0.272,0.001 0.233,-0.017C0.194,-0.034 0.162,-0.059 0.136,-0.091C0.111,-0.124 0.092,-0.162 0.08,-0.208C0.067,-0.253 0.061,-0.304 0.061,-0.359C0.061,-0.414 0.067,-0.464 0.08,-0.51C0.092,-0.555 0.111,-0.593 0.137,-0.625C0.162,-0.657 0.195,-0.682 0.234,-0.699C0.273,-0.716 0.319,-0.725 0.372,-0.725C0.423,-0.725 0.467,-0.716 0.505,-0.699C0.543,-0.682 0.576,-0.657 0.602,-0.625C0.628,-0.593 0.647,-0.554 0.66,-0.509C0.674,-0.464 0.68,-0.414 0.68,-0.358ZM0.157,-0.358C0.157,-0.313 0.161,-0.273 0.17,-0.238C0.178,-0.202 0.191,-0.172 0.209,-0.147C0.226,-0.122 0.248,-0.103 0.275,-0.09C0.302,-0.076 0.334,-0.07 0.371,-0.07C0.408,-0.07 0.44,-0.076 0.467,-0.09C0.494,-0.103 0.516,-0.122 0.533,-0.147C0.551,-0.172 0.564,-0.202 0.572,-0.238C0.58,-0.273 0.584,-0.313 0.584,-0.358C0.584,-0.403 0.58,-0.443 0.572,-0.479C0.564,-0.514 0.551,-0.544 0.534,-0.569C0.516,-0.593 0.494,-0.612 0.468,-0.625C0.441,-0.638 0.409,-0.645 0.372,-0.645C0.335,-0.645 0.303,-0.638 0.276,-0.625C0.249,-0.612 0.227,-0.593 0.209,-0.569C0.191,-0.544 0.178,-0.514 0.17,-0.479C0.161,-0.443 0.157,-0.403 0.157,-0.358Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,800.018,1266.05)">
+                <path d="M0.608,-0.715L0.608,-0.252C0.608,-0.215 0.603,-0.18 0.592,-0.148C0.581,-0.117 0.565,-0.089 0.543,-0.065C0.522,-0.042 0.494,-0.024 0.462,-0.01C0.429,0.003 0.39,0.01 0.346,0.01C0.305,0.01 0.268,0.003 0.236,-0.009C0.204,-0.022 0.177,-0.039 0.156,-0.063C0.134,-0.086 0.118,-0.113 0.106,-0.146C0.095,-0.178 0.09,-0.214 0.09,-0.254L0.09,-0.714L0.181,-0.714L0.181,-0.249C0.181,-0.192 0.195,-0.148 0.223,-0.117C0.252,-0.085 0.294,-0.07 0.351,-0.07C0.38,-0.07 0.405,-0.074 0.426,-0.083C0.447,-0.092 0.464,-0.104 0.477,-0.12C0.49,-0.136 0.5,-0.155 0.507,-0.177C0.513,-0.199 0.517,-0.224 0.517,-0.25L0.517,-0.715L0.608,-0.715Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,834.93,1266.05)">
+                <path d="M0.623,-0.364C0.623,-0.304 0.615,-0.251 0.6,-0.205C0.584,-0.16 0.561,-0.122 0.532,-0.092C0.502,-0.061 0.466,-0.038 0.423,-0.023C0.379,-0.008 0.331,0 0.276,0L0.097,0L0.097,-0.714L0.296,-0.714C0.346,-0.714 0.391,-0.706 0.431,-0.691C0.472,-0.676 0.506,-0.654 0.534,-0.625C0.563,-0.595 0.584,-0.559 0.6,-0.515C0.615,-0.472 0.623,-0.421 0.623,-0.364ZM0.527,-0.361C0.527,-0.408 0.521,-0.449 0.511,-0.484C0.5,-0.519 0.484,-0.547 0.464,-0.57C0.443,-0.592 0.418,-0.609 0.388,-0.62C0.358,-0.631 0.324,-0.636 0.286,-0.636L0.188,-0.636L0.188,-0.078L0.267,-0.078C0.353,-0.078 0.418,-0.102 0.461,-0.149C0.505,-0.197 0.527,-0.267 0.527,-0.361Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,869.134,1266.05)">
+                <path d="M0.492,0L0.047,0L0.047,-0.076L0.218,-0.262C0.242,-0.289 0.264,-0.313 0.283,-0.334C0.302,-0.356 0.319,-0.378 0.332,-0.398C0.346,-0.419 0.356,-0.44 0.363,-0.461C0.37,-0.482 0.374,-0.505 0.374,-0.53C0.374,-0.549 0.371,-0.566 0.366,-0.581C0.36,-0.595 0.352,-0.608 0.342,-0.618C0.332,-0.628 0.32,-0.636 0.306,-0.641C0.292,-0.646 0.276,-0.649 0.259,-0.649C0.228,-0.649 0.2,-0.643 0.175,-0.63C0.15,-0.618 0.126,-0.602 0.104,-0.582L0.054,-0.64C0.067,-0.652 0.081,-0.663 0.096,-0.673C0.111,-0.683 0.127,-0.692 0.145,-0.7C0.162,-0.707 0.18,-0.713 0.199,-0.718C0.218,-0.722 0.239,-0.724 0.26,-0.724C0.291,-0.724 0.319,-0.72 0.344,-0.711C0.37,-0.702 0.391,-0.69 0.409,-0.673C0.426,-0.657 0.44,-0.637 0.449,-0.613C0.459,-0.589 0.464,-0.563 0.464,-0.533C0.464,-0.506 0.46,-0.479 0.451,-0.454C0.442,-0.429 0.43,-0.404 0.415,-0.38C0.4,-0.356 0.382,-0.332 0.361,-0.307C0.34,-0.283 0.317,-0.257 0.293,-0.231L0.156,-0.085L0.156,-0.081L0.492,-0.081L0.492,0Z" style="fill:rgb(83,172,0);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,896.673,1266.05)">
+                <path d="M0.468,0L0.097,0L0.097,-0.714L0.468,-0.714L0.468,-0.634L0.188,-0.634L0.188,-0.413L0.449,-0.413L0.449,-0.334L0.188,-0.334L0.188,-0.08L0.468,-0.08L0.468,0Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,923.065,1266.05)">
+                <path d="M0.623,-0.364C0.623,-0.304 0.615,-0.251 0.6,-0.205C0.584,-0.16 0.561,-0.122 0.532,-0.092C0.502,-0.061 0.466,-0.038 0.423,-0.023C0.379,-0.008 0.331,0 0.276,0L0.097,0L0.097,-0.714L0.296,-0.714C0.346,-0.714 0.391,-0.706 0.431,-0.691C0.472,-0.676 0.506,-0.654 0.534,-0.625C0.563,-0.595 0.584,-0.559 0.6,-0.515C0.615,-0.472 0.623,-0.421 0.623,-0.364ZM0.527,-0.361C0.527,-0.408 0.521,-0.449 0.511,-0.484C0.5,-0.519 0.484,-0.547 0.464,-0.57C0.443,-0.592 0.418,-0.609 0.388,-0.62C0.358,-0.631 0.324,-0.636 0.286,-0.636L0.188,-0.636L0.188,-0.078L0.267,-0.078C0.353,-0.078 0.418,-0.102 0.461,-0.149C0.505,-0.197 0.527,-0.267 0.527,-0.361Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,957.269,1266.05)">
+                <path d="M0.382,-0.377L0.618,-0.377L0.618,-0.027C0.6,-0.021 0.582,-0.016 0.564,-0.011C0.546,-0.007 0.527,-0.003 0.508,0C0.489,0.003 0.468,0.006 0.447,0.007C0.426,0.009 0.403,0.01 0.379,0.01C0.328,0.01 0.283,0.001 0.243,-0.016C0.204,-0.033 0.171,-0.057 0.144,-0.089C0.117,-0.121 0.096,-0.159 0.082,-0.205C0.068,-0.25 0.061,-0.301 0.061,-0.358C0.061,-0.414 0.069,-0.465 0.084,-0.51C0.1,-0.555 0.122,-0.594 0.152,-0.625C0.181,-0.657 0.218,-0.681 0.261,-0.698C0.305,-0.716 0.354,-0.724 0.41,-0.724C0.446,-0.724 0.481,-0.721 0.514,-0.713C0.547,-0.706 0.578,-0.696 0.607,-0.682L0.572,-0.603C0.56,-0.609 0.547,-0.614 0.534,-0.619C0.52,-0.624 0.507,-0.628 0.492,-0.632C0.478,-0.635 0.463,-0.638 0.448,-0.641C0.433,-0.643 0.418,-0.644 0.403,-0.644C0.363,-0.644 0.328,-0.637 0.297,-0.624C0.267,-0.611 0.241,-0.592 0.22,-0.567C0.2,-0.543 0.184,-0.513 0.173,-0.477C0.163,-0.442 0.157,-0.402 0.157,-0.357C0.157,-0.315 0.162,-0.276 0.171,-0.241C0.18,-0.206 0.194,-0.175 0.213,-0.15C0.233,-0.125 0.258,-0.105 0.289,-0.091C0.32,-0.077 0.357,-0.07 0.401,-0.07C0.415,-0.07 0.428,-0.07 0.44,-0.071C0.452,-0.072 0.463,-0.073 0.473,-0.074C0.483,-0.076 0.493,-0.077 0.502,-0.079C0.511,-0.081 0.519,-0.082 0.528,-0.084L0.528,-0.297L0.382,-0.297L0.382,-0.377Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+            <g transform="matrix(50,0,0,50,991.766,1266.05)">
+                <path d="M0.468,0L0.097,0L0.097,-0.714L0.468,-0.714L0.468,-0.634L0.188,-0.634L0.188,-0.413L0.449,-0.413L0.449,-0.334L0.188,-0.334L0.188,-0.08L0.468,-0.08L0.468,0Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+            </g>
+        </g>
+    </g>
+    <g transform="matrix(2.14218,0,0,2.14218,-2045.8,-3396.92)">
+        <g transform="matrix(0.466814,0,0,0.466814,563.545,1222.13)">
+            <path d="M1081.47,883.955C1090.05,867.376 1102.31,852.046 1118.4,838.031C1151.25,809.422 1189.57,795.088 1233.36,795.088C1277.83,795.088 1314.67,808.168 1344.39,832.832C1363.15,848.4 1376.62,866.685 1384.69,887.732C1401.52,882.709 1419.59,880.179 1438.9,880.179C1490.23,880.179 1532.86,897.991 1567.08,932.952C1602,968.623 1618.34,1007.93 1618.34,1049.87C1618.34,1069.8 1612.73,1085.28 1603.7,1097.14C1609.47,1107.74 1612.14,1119.15 1612.14,1131.18C1612.14,1157.76 1595.36,1189.53 1546.05,1212.27C1513.56,1227.25 1479.9,1234.68 1445.09,1234.68C1414.93,1234.68 1054.32,1234.68 1040.9,1234.68C988.142,1234.68 945.376,1216.82 912.055,1182.47C878.753,1148.14 861.98,1106.65 861.98,1057.9C861.98,1010.07 878.819,968.533 912.768,933.399C946.836,898.144 989.453,880.179 1040.9,880.179C1051.21,880.179 1062.38,881.024 1074.4,882.795C1076.75,883.141 1079.11,883.527 1081.47,883.955Z" style="fill:white;"/>
+        </g>
+        <g transform="matrix(0.466814,0,0,0.466814,563.545,1222.13)">
+            <path d="M1078.65,878.185C1087.39,862.345 1099.46,847.625 1114.98,834.103C1148.81,804.643 1188.26,789.879 1233.36,789.879C1279.17,789.879 1317.1,803.416 1347.72,828.824C1365.88,843.895 1379.25,861.432 1387.77,881.448C1403.75,877.144 1420.79,874.97 1438.9,874.97C1491.72,874.97 1535.59,893.33 1570.81,929.309C1606.8,966.079 1623.54,1006.63 1623.54,1049.87C1623.54,1069.66 1618.29,1085.32 1609.8,1097.6C1614.94,1108.14 1617.35,1119.38 1617.35,1131.18C1617.35,1159.18 1600.17,1193.04 1548.23,1217C1515.04,1232.3 1480.65,1239.89 1445.09,1239.89C1414.93,1239.89 1054.32,1239.89 1040.9,1239.89C986.602,1239.89 942.611,1221.45 908.316,1186.1C874.044,1150.76 856.772,1108.07 856.772,1057.9C856.772,1008.68 874.088,965.933 909.023,929.78C944.089,893.491 987.945,874.97 1040.9,874.97C1051.44,874.97 1062.87,875.831 1075.16,877.642C1076.32,877.813 1077.49,877.994 1078.65,878.185ZM1445.09,1229.47C1479.15,1229.47 1512.08,1222.2 1543.86,1207.54C1590.55,1186.01 1606.94,1156.34 1606.94,1131.18C1606.94,1120.03 1604.48,1109.45 1599.13,1099.63C1598.15,1097.82 1598.31,1095.61 1599.56,1093.98C1607.98,1082.92 1613.13,1068.45 1613.13,1049.87C1613.13,1009.22 1597.2,971.167 1563.36,936.595C1530.14,902.653 1488.73,885.387 1438.9,885.387C1420.12,885.387 1402.55,887.838 1386.18,892.723C1383.58,893.502 1380.81,892.14 1379.83,889.598C1372.07,869.365 1359.1,851.805 1341.07,836.84C1312.24,812.919 1276.49,800.296 1233.36,800.296C1190.87,800.296 1153.7,814.202 1121.83,841.958C1106.27,855.51 1094.39,870.318 1086.1,886.348C1085.05,888.379 1082.8,889.488 1080.55,889.08C1078.24,888.663 1075.94,888.285 1073.64,887.948C1061.89,886.217 1050.98,885.387 1040.9,885.387C990.962,885.387 949.582,902.797 916.514,937.018C883.55,971.132 867.188,1011.46 867.188,1057.9C867.188,1105.23 883.462,1145.51 915.793,1178.84C948.142,1212.19 989.683,1229.47 1040.9,1229.47L1445.09,1229.47Z" style="fill:rgb(115,113,111);"/>
+        </g>
+        <g transform="matrix(240.804,0,0,220.676,1070.43,1774.45)">
+            <path d="M0.268,-0.132L0.451,-0.132C0.474,-0.132 0.493,-0.127 0.507,-0.116C0.522,-0.105 0.529,-0.088 0.529,-0.066C0.529,-0.044 0.522,-0.028 0.508,-0.017C0.495,-0.006 0.478,0 0.457,0L0.123,0C0.1,0 0.081,-0.006 0.067,-0.017C0.052,-0.028 0.045,-0.044 0.045,-0.066C0.045,-0.081 0.053,-0.098 0.068,-0.117C0.086,-0.138 0.113,-0.169 0.148,-0.209C0.183,-0.248 0.215,-0.284 0.242,-0.318C0.269,-0.35 0.294,-0.383 0.317,-0.416C0.34,-0.45 0.352,-0.481 0.352,-0.509C0.352,-0.53 0.345,-0.548 0.331,-0.563C0.317,-0.578 0.3,-0.586 0.28,-0.586C0.259,-0.586 0.242,-0.581 0.229,-0.57C0.216,-0.559 0.207,-0.545 0.203,-0.529C0.198,-0.513 0.193,-0.497 0.188,-0.481C0.183,-0.465 0.176,-0.452 0.166,-0.441C0.155,-0.43 0.141,-0.424 0.124,-0.424C0.101,-0.424 0.084,-0.431 0.07,-0.445C0.058,-0.459 0.051,-0.476 0.051,-0.497C0.051,-0.559 0.075,-0.612 0.122,-0.657C0.169,-0.702 0.223,-0.724 0.286,-0.724C0.349,-0.724 0.402,-0.705 0.445,-0.667C0.487,-0.628 0.508,-0.578 0.508,-0.516C0.508,-0.483 0.499,-0.448 0.48,-0.409C0.461,-0.371 0.442,-0.34 0.423,-0.315C0.403,-0.29 0.375,-0.257 0.339,-0.216C0.303,-0.174 0.279,-0.147 0.268,-0.132Z" style="fill:rgb(83,172,0);fill-rule:nonzero;"/>
+        </g>
+        <g transform="matrix(240.804,0,0,220.676,1170.71,1774.45)">
+            <path d="M0.464,-0.218L0.157,-0.218C0.162,-0.184 0.177,-0.158 0.202,-0.141C0.227,-0.123 0.258,-0.114 0.293,-0.114C0.32,-0.114 0.352,-0.124 0.388,-0.143C0.424,-0.162 0.447,-0.172 0.456,-0.172C0.471,-0.172 0.485,-0.166 0.497,-0.153C0.509,-0.14 0.515,-0.126 0.515,-0.11C0.515,-0.08 0.49,-0.052 0.439,-0.027C0.388,-0.001 0.335,0.012 0.28,0.012C0.2,0.012 0.135,-0.014 0.085,-0.066C0.035,-0.118 0.01,-0.184 0.01,-0.265C0.01,-0.34 0.035,-0.406 0.084,-0.461C0.133,-0.516 0.194,-0.544 0.268,-0.544C0.342,-0.544 0.404,-0.517 0.453,-0.462C0.502,-0.406 0.527,-0.347 0.527,-0.282C0.527,-0.239 0.506,-0.218 0.464,-0.218ZM0.154,-0.314L0.383,-0.314C0.379,-0.347 0.367,-0.373 0.347,-0.394C0.327,-0.414 0.301,-0.424 0.268,-0.424C0.237,-0.424 0.211,-0.413 0.19,-0.393C0.169,-0.372 0.157,-0.345 0.154,-0.314Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+        </g>
+        <g transform="matrix(240.804,0,0,220.676,982.509,1774.45)">
+            <path d="M0.435,-0.497C0.448,-0.484 0.454,-0.47 0.454,-0.453C0.454,-0.436 0.449,-0.421 0.439,-0.406C0.428,-0.391 0.415,-0.384 0.399,-0.384C0.388,-0.384 0.37,-0.389 0.345,-0.398C0.321,-0.407 0.301,-0.412 0.285,-0.412C0.246,-0.412 0.217,-0.398 0.196,-0.369C0.174,-0.34 0.164,-0.305 0.164,-0.265C0.164,-0.227 0.175,-0.193 0.197,-0.164C0.219,-0.135 0.248,-0.12 0.285,-0.12C0.298,-0.12 0.319,-0.125 0.345,-0.135C0.373,-0.145 0.388,-0.15 0.392,-0.15C0.409,-0.15 0.423,-0.144 0.436,-0.132C0.448,-0.119 0.454,-0.104 0.454,-0.087C0.454,-0.064 0.443,-0.045 0.42,-0.029C0.397,-0.013 0.372,-0.002 0.347,0.003C0.322,0.009 0.299,0.012 0.278,0.012C0.202,0.012 0.14,-0.015 0.092,-0.069C0.044,-0.123 0.02,-0.188 0.02,-0.265C0.02,-0.34 0.045,-0.406 0.094,-0.461C0.142,-0.516 0.204,-0.544 0.278,-0.544C0.294,-0.544 0.311,-0.543 0.33,-0.54C0.349,-0.537 0.368,-0.532 0.387,-0.525C0.406,-0.518 0.422,-0.509 0.435,-0.497Z" style="fill:rgb(115,113,111);fill-rule:nonzero;"/>
+        </g>
+    </g>
+</svg>
diff --git a/packages/cloud2edge/index.html b/packages/cloud2edge/index.html
index fe2ff2f..47743fc 100644
--- a/packages/cloud2edge/index.html
+++ b/packages/cloud2edge/index.html
@@ -14,7 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary_large_image"/>
-<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/package-zero.jpg"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/c2e-logo.svg"/>
 <meta name="twitter:title" content="Cloud2Edge"/>
 <meta name="twitter:description" content="A package connecting and managing sensor style devices. Connecting sensors to the cloud, processing data with a digital twin platform, and managing device firmware."/>
 
diff --git a/packages/cloud2edge/installation/index.html b/packages/cloud2edge/installation/index.html
index 813fbe7..ef37caa 100644
--- a/packages/cloud2edge/installation/index.html
+++ b/packages/cloud2edge/installation/index.html
@@ -14,8 +14,10 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
-<meta name="twitter:title" content="Installation"/>
-<meta name="twitter:description" content=""/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
+<meta name="twitter:title" content="Cloud2Edge | Installation"/>
+<meta name="twitter:description" content="Installations instructions for the Cloud2Edge package."/>
+
 
     <link rel="icon" type="image/svg+xml" href="/packages/images/icon/icon.svg" sizes="any">
     <link rel="icon" href="/packages/images/icon/icon.png" sizes="192x192">
@@ -81,7 +83,9 @@
 
 <div class="col-12 col-md-8 col-lg-9">
 
-    <p>You will need a Kubernetes instance in order to deploy this package. If you haven’t done so already, take a look at our <a href="/packages/prereqs">Kubernetes installation</a> page. Any Kubernetes compatible cluster will do, as long as it meets the requirements.</p>
+    <p>You will need a Kubernetes instance, the <code class="highlighter-rouge">kubectl</code> and the <code class="highlighter-rouge">helm</code> tool in order to deploy this package.
+Please refer to our <a href="/packages/prereqs">pre-requisites</a> page for details.
+Any Kubernetes compatible cluster will do, as long as it meets the requirements.</p>
 
     <h2 id="check-access">Check access</h2>
 
@@ -97,41 +101,43 @@ Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.4+c2a5caf
 </code></pre></div>          </div>
         </div></details></p>
 
-    <h2 id="run-the-installation">Run the installation</h2>
+    <h2 id="install-the-package">Install the package</h2>
 
-    <p>First create a new namespace for the package:</p>
+    <p>The Cloud2Edge package consists of multiple components. In order to keep them together and separate
+from other components running in your Kubernetes cluster, it is feasible to install them into
+their own name space. The following command creates the <code class="highlighter-rouge">cloud2edge</code> name space but you can select any
+other name as well.</p>
 
-    <div class="clipboard"><pre><code>kubectl create namespace cloud2edge</code></pre></div>
+    <div class="clipboard"><pre><code>NS=cloud2edge
+kubectl create namespace $NS</code></pre></div>
 
-    <p>Next, install the package using Helm:</p>
+    <p>Next, install the package to the name space using Helm.</p>
 
-    <div class="clipboard"><pre><code>helm install --dependency-update -n cloud2edge c2e eclipse-iot/cloud2edge</code></pre></div>
+    <nav><div class="nav nav-tabs" role="tablist"><a class="nav-item nav-link active" data-toggle="tab" id="variants-1-0-tab" href="#variants-1-0" aria-controls="variants-1-0">NodePort</a><a class="nav-item nav-link" data-toggle="tab" id="variants-1-1-tab" href="#variants-1-1" aria-controls="variants-1-1">LoadBalancer</a></div></nav>
+    <div class="tab-content">
 
-    <h2 id="monitor-installation">Monitor installation</h2>
+<div class="tab-pane active show" id="variants-1-0" role="tabpanel" aria-labelledby="variants-1-0-tab">
+        <p>Kubernetes variants like <em>kind</em> or <em>Minikube</em> do not support exposing service endpoints via load balancers
+out of the box. Instead, services are exposed via <em>NodePorts</em>.</p>
 
-    <p>Installation and start-up of the package’s services might take some minutes.
-You can track the start-up by means of the following command:</p>
+        <div class="clipboard"><pre><code>RELEASE=c2e
+helm install -n $NS --wait --timeout 10m $RELEASE eclipse-iot/cloud2edge</code></pre></div>
+      </div>
 
-    <div class="clipboard"><pre><code>kubectl get pods -n cloud2edge</code></pre></div>
+<div class="tab-pane" id="variants-1-1" role="tabpanel" aria-labelledby="variants-1-1-tab">
+        <p>Managed Kubernetes variants usually support exposing service endpoints via load balancers on public
+IP addresses. To install the Cloud2Edge package using load balancers, run the following command:</p>
 
-    <p>You should see the pods being started and becoming ready.</p>
+        <div class="clipboard"><pre><code>RELEASE=c2e
+helm install -n $NS --wait --timeout 10m --set hono.useLoadBalancer=true --set ditto.nginx.service.type=LoadBalancer $RELEASE eclipse-iot/cloud2edge</code></pre></div>
+      </div>
 
-    <p><details><summary>Example of started pods</summary><div>
-          <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>NAME                                               READY   STATUS    RESTARTS   AGE
-c2e-adapter-amqp-vertx-57dc849d4c-tw25z            1/1     Running   0          148m
-c2e-adapter-http-vertx-6bdffc59-t54h5              1/1     Running   0          148m
-c2e-adapter-mqtt-vertx-74cdb9644b-6pgs6            1/1     Running   0          148m
-c2e-artemis-54ffcff88f-7w85x                       1/1     Running   0          148m
-c2e-dispatch-router-54d968954b-vrp7z               1/1     Running   0          148m
-c2e-service-auth-6c9bcf8899-qmztm                  1/1     Running   0          148m
-c2e-service-device-registry-0                      1/1     Running   0          148m
-</code></pre></div>          </div>
-        </div></details></p>
+</div>
 
     <h2 id="ready-to-run">Ready to run</h2>
 
-    <p>Once the pods are all ready, you can start using the package’s services. For an initial walk-through of the functionality
-see the section <a href="../tour">Take a tour</a>.</p>
+    <p>Once the package’s pods are all up and running, you can start using its services.
+The easiest way of getting to know the Cloud2Edge package is by <a href="../tour">taking a little tour</a>.</p>
 
   </div>
 
diff --git a/packages/cloud2edge/learn/index.html b/packages/cloud2edge/learn/index.html
index 61fc5a8..4ea0dc5 100644
--- a/packages/cloud2edge/learn/index.html
+++ b/packages/cloud2edge/learn/index.html
@@ -14,8 +14,10 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
-<meta name="twitter:title" content="Learn more"/>
-<meta name="twitter:description" content=""/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
+<meta name="twitter:title" content="Cloud2Edge | Learn more"/>
+<meta name="twitter:description" content="Learn more about the Cloud2Edge package."/>
+
 
     <link rel="icon" type="image/svg+xml" href="/packages/images/icon/icon.svg" sizes="any">
     <link rel="icon" href="/packages/images/icon/icon.png" sizes="192x192">
diff --git a/packages/cloud2edge/scripts/setCloud2EdgeEnv.sh b/packages/cloud2edge/scripts/setCloud2EdgeEnv.sh
new file mode 100755
index 0000000..89ee933
--- /dev/null
+++ b/packages/cloud2edge/scripts/setCloud2EdgeEnv.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+#*******************************************************************************
+# Copyright (c) 2020 Contributors to the Eclipse Foundation
+#
+# See the NOTICE file(s) distributed with this work for additional
+# information regarding copyright ownership.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0
+#
+# SPDX-License-Identifier: EPL-2.0
+#*******************************************************************************
+
+RELEASE=$1
+NS=${2:-default}
+
+NODE_IP=$(kubectl get node -n $NS --output jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}' 2> /dev/null)
+
+function getPorts {
+  SERVICENAME=$1
+  PORT_NAMES=$2
+  ENV_VAR_PREFIX=$3
+  TYPE=$4
+
+  for NAME in $PORT_NAMES
+  do
+    PORT=$(kubectl get service $SERVICENAME -n $NS --output jsonpath='{.spec.ports[?(@.name=='"'$NAME'"')].'$TYPE'}' 2> /dev/null)
+    if [ $? -eq 0 -a "$PORT" != '' ]
+    then
+      UPPERCASE_PORT_NAME=$(echo $NAME | tr [a-z\-] [A-Z_])
+      echo "export ${ENV_VAR_PREFIX}_PORT_${UPPERCASE_PORT_NAME}=\"$PORT\""
+    fi
+  done
+
+}
+
+function getService {
+  SERVICENAME=${RELEASE}-$1
+  PORT_NAMES=$2
+  ENV_VAR_PREFIX=$3
+
+  SERVICE_TYPE=$(kubectl get service $SERVICENAME -n $NS --output jsonpath='{.spec.type}' 2> /dev/null)
+  if [ $? -eq 0 ]
+  then
+    case $SERVICE_TYPE in
+      NodePort)
+        echo "export ${ENV_VAR_PREFIX}_IP=\"$NODE_IP\""
+        getPorts $SERVICENAME "$PORT_NAMES" $ENV_VAR_PREFIX nodePort
+        ;;
+      LoadBalancer)
+        IP=$(kubectl get service $SERVICENAME --output='jsonpath={.status.loadBalancer.ingress[0].ip}' -n $NS 2> /dev/null)
+        if [ $? -eq 0 -a "$IP" != '' ]
+        then
+          echo "export ${ENV_VAR_PREFIX}_IP=\"$IP\""
+          getPorts $SERVICENAME "$PORT_NAMES" $ENV_VAR_PREFIX port
+        fi
+        ;;
+    esac
+  fi
+}
+
+getService dispatch-router-ext "amqp amqps" AMQP_NETWORK
+getService service-device-registry-ext "http https" REGISTRY
+getService adapter-amqp-vertx "amqp amqps" AMQP_ADAPTER
+getService adapter-coap-vertx "coap coaps" COAP_ADAPTER
+getService adapter-http-vertx "http https" HTTP_ADAPTER
+getService adapter-mqtt-vertx "mqtt secure-mqtt" MQTT_ADAPTER
+getService ditto-nginx "http" DITTO_API
+
+echo "# Run this command to populate environment variables"
+echo "# with the NodePorts of Hono's and Ditto's API endpoints:"
+echo "# eval \"\$(./setCloude2EdgeEnv.sh RELEASE_NAME [NAMESPACE])\""
+echo "# with NAMESPACE being the Kubernetes name space that you installed Hono to"
+echo "# if no name space is given, the default name space is used"
+
diff --git a/packages/cloud2edge/tour/index.html b/packages/cloud2edge/tour/index.html
index 9a1678e..7629573 100644
--- a/packages/cloud2edge/tour/index.html
+++ b/packages/cloud2edge/tour/index.html
@@ -14,8 +14,10 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
-<meta name="twitter:title" content="Take a tour"/>
-<meta name="twitter:description" content=""/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
+<meta name="twitter:title" content="Cloud2Edge | Take a tour"/>
+<meta name="twitter:description" content="Take a tour once you installed the Cloud2Edge package."/>
+
 
     <link rel="icon" type="image/svg+xml" href="/packages/images/icon/icon.svg" sizes="any">
     <link rel="icon" href="/packages/images/icon/icon.png" sizes="192x192">
@@ -93,42 +95,158 @@ or that you might experience some issues when testing.
 
 </div>
 
+    <h2 id="preparing-the-environment">Preparing the environment</h2>
+
     <p>The following examples will use information which depends on your
 environment. All of this information is listed in this section and will be
 set as environment variables so that all commands can easily make use
-of those variables:</p>
+of those variables. Note that you will need to set the environment variables
+in every command shell separately.</p>
 
-    <nav><div class="nav nav-tabs" role="tablist"><a class="nav-item nav-link active" data-toggle="tab" id="variants-1-0-tab" href="#variants-1-0" aria-controls="variants-1-0">Minikube</a><a class="nav-item nav-link" data-toggle="tab" id="variants-1-1-tab" href="#variants-1-1" aria-controls="variants-1-1">Kubernetes</a><a class="nav-item nav-link" data-toggle="tab" id="variants-1-2-tab" href="#variants-1-2" aria-controls="variants-1-2">OpenShift</a></div></nav>
+    <nav><div class="nav nav-tabs" role="tablist"><a class="nav-item nav-link active" data-toggle="tab" id="variants-1-0-tab" href="#variants-1-0" aria-controls="variants-1-0">Kubernetes</a><a class="nav-item nav-link" data-toggle="tab" id="variants-1-1-tab" href="#variants-1-1" aria-controls="variants-1-1">OpenShift</a></div></nav>
     <div class="tab-content">
+
 <div class="tab-pane active show" id="variants-1-0" role="tabpanel" aria-labelledby="variants-1-0-tab">
-        <div class="clipboard"><pre><code>DEVICE_REGISTRY_URL=$(minikube service -n cloud2edge c2e-service-device-registry-ext --url --https | grep 31443)
-MQTT_ADAPTER_HOST=$(minikube service -n cloud2edge c2e-adapter-mqtt-vertx --url | grep 30883 | sed -e 's/^http:\/\///' -e 's/:.*$//')
-MQTT_ADAPTER_PORT=30883</code></pre></div>
-      </div>
+        <p><br />
+Download the <a href="../scripts/setCloud2EdgeEnv.sh">setCloud2EdgeEnv script</a> and use it
+to set environment variables for the Cloud2Edge package’s service endpoints.</p>
 
-<div class="tab-pane" id="variants-1-1" role="tabpanel" aria-labelledby="variants-1-1-tab">
-        <div class="clipboard"><pre><code>DEVICE_REGISTRY_URL=https://$(kubectl get service c2e-service-device-registry-ext --output='jsonpath={.status.loadBalancer.ingress[0].ip}' -n cloud2edge):28080
-MQTT_ADAPTER_HOST=$(kubectl get service c2e-adapter-mqtt-vertx --output='jsonpath={.status.loadBalancer.ingress[0].ip}' -n cloud2edge)
-MQTT_ADAPTER_PORT=8883</code></pre></div>
+        <div class="clipboard"><pre><code>RELEASE=c2e
+NS=cloud2edge
+./setCloud2EdgeEnv.sh $RELEASE $NS</code></pre></div>
       </div>
 
-<div class="tab-pane" id="variants-1-2" role="tabpanel" aria-labelledby="variants-1-2-tab">
-        <div class="clipboard"><pre><code>DEVICE_REGISTRY_URL=https://$(oc get -n cloud2edge route c2e-service-device-registry-https --template='{{.spec.host}}')
-MQTT_ADAPTER_URL=$(oc -n cloud2edge get route c2e-adapter-http-vertx-sec --template='{{.spec.host}}')
-MQTT_ADAPTER_PORT=443</code></pre></div>
+<div class="tab-pane" id="variants-1-1" role="tabpanel" aria-labelledby="variants-1-1-tab">
+        <div class="clipboard"><pre><code>NS=cloud2edge
+RELEASE=c2e
+DEVICE_REGISTRY_URL=https://$(oc get -n $NS route ${RELEASE}-service-device-registry-https --template='{{.spec.host}}')
+HTTP_ADAPTER_URL=$(oc get -n $NS route ${RELEASE}-adapter-http-vertx-sec --template='{{.spec.host}}')
+HTTP_ADAPTER_PORT=443</code></pre></div>
       </div>
 
 </div>
 
+    <h2 id="publishing-telemetry-data">Publishing telemetry data</h2>
+
+    <p>The Cloud2Edge package comes with a pre-provisioned example device that we will use to publish
+some telemetry data via Hono’s HTTP protocol adapter. The data will automatically be forwarded to Ditto
+where the device’s twin representation will be updated with the data published by the device.</p>
+
+    <p>The demo device’s digital twin supports a temperature property which will be set to 45
+by means of the following command:</p>
+
+    <div class="clipboard"><pre><code>curl -i -u demo-device@org.eclipse.packages.c2e:demo-secret -H 'application/json' --data-binary '{
+  "topic": "org.eclipse.packages.c2e/demo-device/things/twin/commands/modify",
+  "headers": {},
+  "path": "/features/temperature/properties/value",
+  "value": 45
+}' http://${HTTP_ADAPTER_IP}:${HTTP_ADAPTER_PORT_HTTP}/telemetry</code></pre></div>
+
+    <h2 id="retrieving-the-digital-twins-current-state">Retrieving the digital twin’s current state</h2>
+
+    <p>The updated state of the digital twin can then be retrieved using:</p>
+
+    <div class="clipboard"><pre><code>curl -u ditto:ditto -w '\n' http://$DITTO_API_IP:$DITTO_API_PORT_HTTP/api/2/things/org.eclipse.packages.c2e:demo-device</code></pre></div>
+
+    <p>Alternatively you can also use the following command to subscribe to Ditto’s
+stream of thing update events:</p>
+
+    <div class="clipboard"><pre><code>curl --http2 -u ditto:ditto -H 'Accept:text/event-stream' -N http://$DITTO_API_IP:$DITTO_API_PORT_HTTP/api/2/things</code></pre></div>
+
+    <h2 id="sending-a-command-to-the-device-via-its-digital-twin">Sending a command to the device via its digital twin</h2>
+
+    <p>Ditto digital twin may also be used to send a command down to the device connected at Hono using.</p>
+
+    <div class="clipboard"><pre><code>curl -i -X POST -u ditto:ditto -H 'Content-Type: application/json' -w '\n' --data '{
+  "water-amount": "3liters"
+}' http://$DITTO_API_IP:$DITTO_API_PORT_HTTP/api/2/things/org.eclipse.packages.c2e:demo-device/inbox/messages/start-watering?timeout=0</code></pre></div>
+
+    <p>Specifying the <code class="highlighter-rouge">timeout=0</code> parameter indicates that the HTTP request will directly be accepted and Ditto does not wait
+for a response.</p>
+
+    <p>If Ditto shall wait for a response, responding with the response from the device at the HTTP level, simply increase the
+timeout to the amount of seconds to wait:</p>
+
+    <div class="clipboard"><pre><code>curl -i -X POST -u ditto:ditto -H 'Content-Type: application/json' -w '\n' --data '{
+  "water-amount": "3liters"
+}' http://$DITTO_API_IP:$DITTO_API_PORT_HTTP/api/2/things/org.eclipse.packages.c2e:demo-device/inbox/messages/start-watering?timeout=60</code></pre></div>
+
+    <h3 id="receiving-a-command-at-the-device">Receiving a command at the device</h3>
+
+    <p>The device may receive a command by specifying a <code class="highlighter-rouge">ttd</code> when e.g. sending telemetry via HTTP to Hono:</p>
+
+    <div class="clipboard"><pre><code>curl -i -u demo-device@org.eclipse.packages.c2e:demo-secret -H 'hono-ttd: 50' -H 'application/json' -w '\n' --data '{
+  "topic": "org.eclipse.packages.c2e/demo-device/things/twin/commands/modify",
+  "headers": {},
+  "path": "/features/temperature/properties/value",
+  "value": 45
+}' http://${HTTP_ADAPTER_IP}:${HTTP_ADAPTER_PORT_HTTP}/telemetry</code></pre></div>
+
+    <p>An example response for the device containing the command sent via the Ditto twin (see previous step for sending the 
+command) is:</p>
+
+    <p><details><summary>Example of a received command at the device</summary><div>
+          <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>HTTP/1.1 200 OK
+hono-command: start-watering
+hono-cmd-req-id: 024d84b1ceb-797b-45f5-bc87-78e9b5396645replies
+content-type: application/json
+content-length: 516
+
+{"topic":"org.eclipse.packages.c2e/demo-device/things/live/messages/start-watering","headers":{"correlation-id":"d84b1ceb-797b-45f5-bc87-78e9b5396645","x-forwarded-for":"10.244.0.1","version":2,"timeout":"0","x-forwared-user":"ditto","accept":"*/*","x-real-ip":"10.244.0.1","x-ditto-dummy-auth":"nginx:ditto","host":"172.17.0.2:30385","content-type":"application/json","timestamp":"2020-02-28T08:04:43.518+01:00","user-agent":"curl/7.58.0"},"path":"/inbox/messages/start-watering","value":{"water-amount":"3liters"}}
+</code></pre></div>          </div>
+        </div></details></p>
+
+    <h3 id="responding-to-a-command-at-the-device">Responding to a command at the device</h3>
+
+    <p>In order to answer to a command, the device can send its answer in Ditto Protocol back to Hono via HTTP.</p>
+
+    <p>The response has to be correlated twice:</p>
+    <ul>
+      <li>once for Hono in the URL: please replace the placeholder <code class="highlighter-rouge">insert-hono-cmd-req-id-here</code> with the <code class="highlighter-rouge">hono-cmd-req-id</code> 
+HTTP header value from the received command.</li>
+      <li>once for Ditto in the Ditto Protocol payload: please replace the placeholder <code class="highlighter-rouge">insert-ditto-correlation-id-header-here</code>
+with the <code class="highlighter-rouge">"correlation-id"</code> value from the received Ditto Protocol message’s <code class="highlighter-rouge">"headers"</code> object.</li>
+    </ul>
+
+    <div class="clipboard"><pre><code>curl -i -X PUT -u demo-device@org.eclipse.packages.c2e:demo-secret -H "content-type: application/json" --data-binary '{
+  "topic": "org.eclipse.packages.c2e/demo-device/things/live/messages/start-watering",
+  "headers": {
+    "content-type": "application/json",
+    "correlation-id": "insert-ditto-correlation-id-header-here"
+  },
+  "path": "/inbox/messages/start-watering",
+  "value": {
+    "starting-watering": true
+  },
+  "status": 200
+}' http://${HTTP_ADAPTER_IP}:${HTTP_ADAPTER_PORT_HTTP}/command/res/org.eclipse.packages.c2e/org.eclipse.packages.c2e:demo-device/insert-hono-cmd-req-id-here?hono-cmd-status=200</code></pre></div>
+
+    <p>An example message response (omitting some additional HTTP headers) at the Ditto twin which waited for the command
+ e.g. with a <code class="highlighter-rouge">timeout=60</code> is:</p>
+
+    <p><details><summary>Example of a twin message response</summary><div>
+          <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>HTTP/1.1 200 OK
+Content-Type: application/json
+Content-Length: 26
+correlation-id: 715cb667-7750-4451-969e-6f8c735129ef
+
+{"starting-watering":true}
+</code></pre></div>          </div>
+        </div></details></p>
+
     <h2 id="working-with-devices">Working with devices</h2>
 
-    <p>The next sections will create a new tenant and register a device for it.</p>
+    <p>The next sections will create a new tenant in Hono, register a device for it and create a digital twin for it in Ditto.</p>
+
+    <p>In order to <em>link</em> Hono devices to Ditto digital twins (a.k.a. things), it is assumed that Hono device and Ditto thing 
+always have the same id, starting with a namespace (e.g. in reverse domain notation), followed by a colon and a name, 
+e.g.: <code class="highlighter-rouge">org.acme:my-device</code>.</p>
 
     <h3 id="create-a-new-tenant">Create a new tenant</h3>
 
-    <p>Create a new tenant named <code class="highlighter-rouge">my-tenant</code>:</p>
+    <p>Create a new tenant named <code class="highlighter-rouge">my-tenant</code> in Hono:</p>
 
-    <div class="clipboard"><pre><code>curl -i --insecure -XPOST ${DEVICE_REGISTRY_URL}/v1/tenants/my-tenant</code></pre></div>
+    <div class="clipboard"><pre><code>curl -i -X POST http://${REGISTRY_IP}:${REGISTRY_PORT_HTTP}/v1/tenants/my-tenant</code></pre></div>
 
     <p>This should return a result of <code class="highlighter-rouge">201 Created</code>.</p>
 
@@ -145,40 +263,38 @@ content-length: 12
 
     <h3 id="register-a-new-device">Register a new device</h3>
 
-    <p>Next we can register a new device, named <code class="highlighter-rouge">my-device-1</code> for the tenant we just created:</p>
+    <p>Next we can register a new device, named <code class="highlighter-rouge">org.acme:my-device-1</code> for the tenant we just created:</p>
 
-    <div class="clipboard"><pre><code>curl -i --insecure -XPOST ${DEVICE_REGISTRY_URL}/v1/devices/my-tenant/my-device-1</code></pre></div>
+    <div class="clipboard"><pre><code>curl -i http://${REGISTRY_IP}:${REGISTRY_PORT_HTTP}/v1/devices/my-tenant/org.acme:my-device-1</code></pre></div>
 
     <p>This should return a result of <code class="highlighter-rouge">201 Created</code>.</p>
 
     <p><details><summary>Example of a successful result</summary><div>
           <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>HTTP/1.1 201 Created
 etag: d48f4e13-b398-4c73-bbc3-5ac97a81b3e8
-location: /v1/devices/iot/my-device-1
+location: /v1/devices/iot/org.acme:my-device-1
 content-type: application/json; charset=utf-8
 content-length: 17
 
-{"id":"my-device-1"}
+{"id":"org.acme:my-device-1"}
 </code></pre></div>          </div>
         </div></details></p>
 
-    <h3 id="set-device-credentials">Set device credentials</h3>
+    <h4 id="set-device-credentials">Set device credentials</h4>
 
     <p>The device created has no credentials assigned. So it will not be possible for this
 device to directly connect to the platform. This is ok for devices attached via
 a <em>gateway device</em>, but we want this device to be able to connect, so the next step is
 to assign a username/password combination:</p>
 
-    <div class="clipboard"><pre><code>curl -i --insecure -XPUT ${DEVICE_REGISTRY_URL}/v1/credentials/my-tenant/my-device-1 \
-      -H "Content-Type: application/json" --data-binary @- &lt;&lt;__EOF__
-    [{
-      "type": "hashed-password",
-      "auth-id": "my-auth-id-1",
-      "secrets": [{
-        "pwd-plain": "my-password"
-      }]
-    }]
-    __EOF__</code></pre></div>
+    <div class="clipboard"><pre><code>curl -i -X PUT -H "Content-Type: application/json" --data '[
+{
+  "type": "hashed-password",
+  "auth-id": "my-auth-id-1",
+  "secrets": [{
+    "pwd-plain": "my-password"
+  }]
+}]' http://${REGISTRY_IP}:${REGISTRY_PORT_HTTP}/v1/credentials/my-tenant/org.acme:my-device-1</code></pre></div>
 
     <p><details><summary>Example of a successful result</summary><div>
           <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>HTTP/1.1 204 No Content
@@ -186,14 +302,14 @@ etag: a7edc4b8-701a-4fe1-85c4-1717c0d24562
 </code></pre></div>          </div>
         </div></details></p>
 
-    <h3 id="understanding-identities">Understanding identities</h3>
+    <h4 id="understanding-identities">Understanding identities</h4>
 
-    <p>The previous step assigned the credentials of <code class="highlighter-rouge">my-auth-id-1</code> and <code class="highlighter-rouge">my-password</code> to the device <code class="highlighter-rouge">my-device-1</code>.</p>
+    <p>The previous step assigned the credentials of <code class="highlighter-rouge">my-auth-id-1</code> and <code class="highlighter-rouge">my-password</code> to the device <code class="highlighter-rouge">org.acme:my-device-1</code>.</p>
 
     <p>Please note that there is a difference between the <em>username</em> of the device (<code class="highlighter-rouge">my-auth-id-1</code>) and
-the name of the device (<code class="highlighter-rouge">my-device-1</code>). When connecting to e.g. the MQTT protocol adapter,
+the name of the device (<code class="highlighter-rouge">org.acme:my-device-1</code>). When connecting to e.g. the MQTT protocol adapter,
 you will need to use the fully qualified username of <code class="highlighter-rouge">my-auth-id-1@my-tenant</code>
-(<em>authentication id</em> and <em>tenant name</em>), rather than just the <em>device id</em> (<code class="highlighter-rouge">my-device-1</code>).</p>
+(<em>authentication id</em> and <em>tenant name</em>), rather than just the <em>device id</em> (<code class="highlighter-rouge">org.acme:my-device-1</code>).</p>
 
     <p>The <em>authentication id</em> is only used for the authentication process. Later on, the messages will be marked
 with the <em>device id</em> and the back end system isn’t aware of the <em>authentication id</em> anymore.</p>
@@ -201,29 +317,103 @@ with the <em>device id</em> and the back end system isn’t aware of the <em>aut
     <p>Of course you may use the same value for the <em>authentication id</em> and the <em>device id</em>. In this tutorial however,
 we use distinct values to show the difference.</p>
 
-    <h2 id="working-with-data">Working with data</h2>
-
-    <p>Now that the device is registered, and has credentials set up, we can start publishing data.</p>
-
-    <h3 id="start-consumer">Start consumer</h3>
-
-    <h3 id="publish-telemetry-data-via-mqtt">Publish telemetry data via MQTT</h3>
-
-    <p>Publish a telemetry message using the MQTT endpoint:</p>
-
-    <div class="clipboard"><pre><code>mosquitto_pub --insecure -h ${MQTT_ADAPTER_HOST} -p ${MQTT_ADAPTER_PORT} \
-      -u my-auth-id-1@my-tenant -P my-password \
-      --cafile charts/eclipse-hono/hono-demo-certs-jar/root-cert.pem \
-      -t telemetry -m '{"temperature": 5}'</code></pre></div>
-
-    <div role="alert" class="alert alert-info">
-Although a certificate is provided, <strong>insecure</strong> is still required because
-the host name would not match the certificate.
-</div>
-
-    <h2 id="fetch-from-digital-twin">Fetch from Digital Twin</h2>
-
-    <p>tbd</p>
+    <h3 id="create-the-digital-twin">Create the digital twin</h3>
+
+    <p>In the previous steps a device was registered in Hono, now we want to create a digital twin for this device in Ditto.</p>
+
+    <h4 id="setup-a-common-policy">Setup a common policy</h4>
+
+    <p>In order to define common authorization information for all digital twins about to be created in Ditto, we first create 
+a policy with the id <code class="highlighter-rouge">org.acme:my-policy</code>:</p>
+
+    <div class="clipboard"><pre><code>curl -i -X PUT -u ditto:ditto -H 'Content-Type: application/json' --data '{
+  "entries": {
+    "DEFAULT": {
+      "subjects": {
+        "{{ request:subjectId }}": {
+           "type": "Ditto user authenticated via nginx"
+        }
+      },
+      "resources": {
+        "thing:/": {
+          "grant": ["READ", "WRITE"],
+          "revoke": []
+        },
+        "policy:/": {
+          "grant": ["READ", "WRITE"],
+          "revoke": []
+        },
+        "message:/": {
+          "grant": ["READ", "WRITE"],
+          "revoke": []
+        }
+      }
+    },
+    "HONO": {
+      "subjects": {
+        "pre-authenticated:hono-connection": {
+          "type": "Connection to Eclipse Hono"
+        }
+      },
+      "resources": {
+        "thing:/": {
+          "grant": ["READ", "WRITE"],
+          "revoke": []
+        },
+        "message:/": {
+          "grant": ["READ", "WRITE"],
+          "revoke": []
+        }
+      }
+    }
+  }
+}' http://${DITTO_API_IP}:${$DITTO_API_PORT_HTTP/api/2/policies/org.acme:my-policy</code></pre></div>
+
+    <p>This should return a result of <code class="highlighter-rouge">201 Created</code> containing as response body of the created policy JSON.</p>
+
+    <p>The created policy may be used for just one digital twin or for many of them. Modifying it will adjust the authorization
+configuration of all twins referencing this <em>policy id</em>.</p>
+
+    <h4 id="create-the-twin">Create the twin</h4>
+
+    <p>In order to create a digital twin in Ditto, we use the same <em>device id</em> already used for creating the device at Hono as 
+<em>thing id</em>: <code class="highlighter-rouge">org.acme:my-device-1</code>.<br />
+Furthermore, we add a reference to the in the previous step created <em>policy id</em> in order to define the authorization 
+information of the twin:</p>
+
+    <div class="clipboard"><pre><code>curl -X PUT -u ditto:ditto -H 'Content-Type: application/json' --data '{
+  "policyId": "org.acme:my-policy",
+  "attributes": {
+    "location": "Germany"
+  },
+  "features": {
+    "temperature": {
+      "properties": {
+        "value": null
+      }
+    },
+    "humidity": {
+      "properties": {
+        "value": null
+      }
+    }
+  }
+}' http://${DITTO_API_IP}:${$DITTO_API_PORT_HTTP/api/2/things/org.acme:my-device-1</code></pre></div>
+
+    <p>This should return a result of <code class="highlighter-rouge">201 Created</code> containing as response body of the created thing JSON.</p>
+
+    <p>In order to add more twins, we simply create additional devices via <a href="#register-a-new-device">“Register a new device”</a>
+and add twins for them with the above snippet by simply adjusting the <em>device id</em> and <em>thing id</em> in the URL of both
+HTTP requests.</p>
+
+    <h2 id="next-steps">Next Steps</h2>
+
+    <ul>
+      <li>Check out the <a href="https://www.eclipse.org/hono/docs/user-guide/">User Guides of Hono’s protocol adapters</a> to learn more about
+the device protocols that are supported by Hono.</li>
+      <li>Learn about the <a href="https://www.eclipse.org/ditto/protocol-overview.html">Ditto Protocol</a> which is used to interact with the
+digital twins that are maintained by Ditto.</li>
+    </ul>
 
     <h2 id="updating-the-firmware">Updating the firmware</h2>
 
diff --git a/prereqs/index.html b/prereqs/index.html
index 7f0b460..df24cff 100644
--- a/prereqs/index.html
+++ b/prereqs/index.html
@@ -14,6 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
 <meta name="twitter:title" content="Pre-Requisites"/>
 <meta name="twitter:description" content=""/>
 
@@ -213,22 +214,22 @@ Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.4+c2a5caf
 
     <p>When you no longer need your cluster, you can stop it using:</p>
 
-    <div class="clipboard"><pre><code>minishift stop</code></pre></div>
+    <div class="clipboard"><pre><code>minikube stop</code></pre></div>
 
     <p>This will suspend the VM so that you can, later on, resume it by
 executing:</p>
 
-    <div class="clipboard"><pre><code>minishift start</code></pre></div>
+    <div class="clipboard"><pre><code>minikube start</code></pre></div>
 
     <p>Or delete it using:</p>
 
-    <div class="clipboard"><pre><code>minishift delete</code></pre></div>
+    <div class="clipboard"><pre><code>minikube delete</code></pre></div>
 
     <h4 id="resources">Resources</h4>
 
     <p>You can translate the package resources requirements into arguments for the <code class="highlighter-rouge">start</code> command like this:</p>
 
-    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>minishift start --cpus &lt;cpus&gt; --disk-size &lt;size&gt; --memory &lt;memory&gt; --kubernetes-version &lt;version&gt;
+    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>minikube start --cpus &lt;cpus&gt; --disk-size &lt;size&gt; --memory &lt;memory&gt; --kubernetes-version &lt;version&gt;
 </code></pre></div>    </div>
 
     <p>Using the following arguments:</p>
diff --git a/repository/index.html b/repository/index.html
index b05b8d6..b3768c7 100644
--- a/repository/index.html
+++ b/repository/index.html
@@ -14,6 +14,7 @@
     <script src="/packages/assets/js/code.js"></script>
     
 <meta name="twitter:card" content="summary"/>
+<meta name="twitter:image" content="https://staging.eclipse.org/packages/images/icon/twitter_icon.png"/>
 <meta name="twitter:title" content="Helm chart repository"/>
 <meta name="twitter:description" content=""/>
 
@@ -97,6 +98,10 @@ are labeled explicitly.</p>
 a different name here. Just take extra care when working through tutorials, as they will
 expect the name to be <code class="highlighter-rouge">eclipse-iot</code>.</p>
 
+<p>After you have added the repository you should tell helm to download the index for its contents:</p>
+
+<div class="clipboard"><pre><code>helm repo update</code></pre></div>
+
 <h2 id="see-the-content-helm-v3">See the content <small><span class="badge badge-secondary">Helm v3</span></small></h2>
 
 <p>You can browse through the content using:</p>
@@ -107,6 +112,14 @@ expect the name to be <code class="highlighter-rouge">eclipse-iot</code>.</p>
 
 <div class="clipboard"><pre><code>helm search repo --devel</code></pre></div>
 
+<p>If you want to search for <em>charts</em> only, then you can use</p>
+
+<div class="clipboard"><pre><code>helm search repo iot-chart</code></pre></div>
+
+<p>and if you want to search for <em>packages</em> only</p>
+
+<div class="clipboard"><pre><code>helm search repo iot-package</code></pre></div>
+
 <h2 id="how-chart-publishing-works">How chart publishing works</h2>
 
 <p>All chart changes will be verified by a <a href="https://github.com/eclipse/packages/actions">Github action</a>, this is done on every pull request.</p>
+ echo 'Changes have been detected, publishing to repo '"'"'www.eclipse.org/packages'"'"
Changes have been detected, publishing to repo 'www.eclipse.org/packages'
+ git commit -m 'Website build Website/develop-2'
[staging c6bb628] Website build Website/develop-2
 19 files changed, 555 insertions(+), 101 deletions(-)
 create mode 100644 charts/cloud2edge-0.0.5.tgz
 create mode 100644 charts/ditto-1.1.4.tgz
 create mode 100644 charts/hawkbit-1.1.0.tgz
 create mode 100644 charts/hono-1.2.1.tgz
 create mode 100644 images/icon/twitter_icon.png
 create mode 100644 packages/cloud2edge/images/c2e-logo.svg
 create mode 100755 packages/cloud2edge/scripts/setCloud2EdgeEnv.sh
+ git log --graph --abbrev-commit '--date=relative' -n 5
* commit c6bb628
| Author: Eclipse IoT Packages Bot <packages-bot@eclipse.org>
| Date:   1 second ago
| 
|     Website build Website/develop-2
| 
* commit ad86444
| Author: Eclipse IoT Packages Bot <packages-bot@eclipse.org>
| Date:   5 weeks ago
| 
|     Website build Website/develop-60
| 
* commit 40bf11e
| Author: Eclipse IoT Packages Bot <packages-bot@eclipse.org>
| Date:   5 weeks ago
| 
|     Website build Website/develop-54
| 
* commit c678f84
| Author: Eclipse IoT Packages Bot <packages-bot@eclipse.org>
| Date:   5 weeks ago
| 
|     Website build Website/develop-52
| 
* commit 31a23b4
| Author: Eclipse IoT Packages Bot <packages-bot@eclipse.org>
| Date:   3 months ago
| 
|     Website build Website/develop-46
+ git push origin HEAD:staging
remote: 
remote: Processing changes: refs: 1
remote: Processing changes: refs: 1, done            
remote: ----------        
remote: Reviewing commit: c6bb6288        
remote: Authored by: Eclipse IoT Packages Bot <packages-bot@eclipse.org>        
remote: 
remote: The author is a committer on the project.        
remote: 
remote: This commit passes Eclipse validation.        
To ssh://git.eclipse.org:29418/www.eclipse.org/packages
   ad86444..c6bb628  HEAD -> staging
[Pipeline] }
Executing shell script inside container [jnlp] of pod [packages-58d1adbe-1a4d-4d06-a140-b6ce504959b1-4td10-6sb0h]
Executing command: "ssh-agent" "-k" 
exit
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 486 killed;
[ssh-agent] Stopped.
[Pipeline] // sshagent
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // timeout
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // podTemplate
[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

Finished: SUCCESS