Help with Hawkbit Integration

The Documentation states that there is rudimental integration with hawkbit but I can’t find any branch, repo or sample project holding this setup. I would like to evaluate the combination of hawkbit and OR for my use case.
Where can i find these changes?

Thanks,
Florian

Hey @Floh,

Here’s some docker compose services showing simple integration steps:

volumes:
  deployment-data:
  hawkbit-data:
  hawkbit-artifact-data:

services:

  # PROXY NEEDS A CUSTOM CONFIG TO ALLOW ACCESS TO HAWKBIT UI
  proxy:
    image: openremote/proxy:${PROXY_VERSION:-latest}
    restart: always
    depends_on:
      manager:
        condition: service_healthy
    ports:
      - "80:80"
      - "443:443"
      - "8883:8883"
      - "127.0.0.1:8404:8404" # Localhost metrics access
    volumes:
      - proxy-data:/deployment
      - /etc/haproxy/haproxy.cfg:/path/to/custom/haproxy.cfg
    environment:
      LE_EMAIL: ${OR_EMAIL_ADMIN}
      DOMAINNAME: ${OR_HOSTNAME?OR_HOSTNAME must be set}
      DOMAINNAMES: ${OR_ADDITIONAL_HOSTNAMES:-}
      HAPROXY_CONFIG: '/data/proxy/haproxy.cfg'

  hawkbitdb:
    image: openremote/postgresql:${POSTGRESQL_VERSION:-latest}
    restart: always
    environment:
      POSTGRES_DB: 'hawkbit'
    healthcheck:
      retries: 100
    volumes:
      - hawkbit-data:/var/lib/postgresql/data

  hawkbit:
    image: openremote/hawkbit:latest
    restart: always
    depends_on:
      keycloak:
        condition: service_healthy
      hawkbitdb:
        condition: service_healthy
      proxy:
        condition: service_healthy
    healthcheck:
      interval: 3s
      timeout: 3s
      start_period: 3s
      retries: 100
      test: ["CMD", "curl", "--fail", "--silent", "http://localhost:8080/hawkbit"]
    volumes:
      - hawkbit-artifact-data:/opt/hawkbit/artifactrepo
    environment:
      - LOGGING_LEVEL_ROOT=INFO
      #      - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY=DEBUG
      #      - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY_ACCESS_VOTE=INFO
      #      - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY_ACCESS_INTERCEPT=INFO
      - SPRING_DATASOURCE_URL=jdbc:postgresql://hawkbitdb:5432/hawkbit
      - SPRING_DATASOURCE_USERNAME=postgres
      - SPRING_DATASOURCE_PASSWORD=postgres
      - spring.jpa.database=POSTGRESQL
      - spring.datasource.driverClassName=org.postgresql.Driver
      #      - SPRING_RABBITMQ_HOST=rabbitmq
      #      - SPRING_RABBITMQ_USERNAME=guest
      #      - SPRING_RABBITMQ_PASSWORD=guest
      - hawkbit.dmf.rabbitmq.enabled=false
      #      - hawkbit.artifact.url.protocols.download-http.hostname=${OR_HOSTNAME?OR_HOSTNAME must be set}
      - hawkbit.artifact.url.protocols.download-http.port=443
      - hawkbit.artifact.url.protocols.download-http.protocol=https
      - 'hawkbit.artifact.url.protocols.download-http.ref={protocol}://{hostnameRequest}:{port}$${server.servlet.context-path}/{tenant}/controller/v1/{controllerId}/softwaremodules/{softwareModuleId}/artifacts/{artifactFileName}'
      - hawkbit.server.ddi.security.authentication.targettoken.enabled=true
      - server.use-forward-headers=true
      - server.forward-headers-strategy=NATIVE
      - server.servlet.context-path=/hawkbit
      # OIDC config below
      - spring.security.oauth2.client.registration.oidc.client-id=hawkbit
      - spring.security.oauth2.client.registration.oidc.client-secret=${HAWKBIT_CLIENT_SECRET?HAWKBIT_CLIENT_SECRET must be set}
      - spring.security.oauth2.client.registration.oidc.authorization-grant-type=authorization_code
      - spring.security.oauth2.client.registration.oidc.scope=openid
      - spring.security.oauth2.client.provider.oidc.issuer-uri=https://${OR_HOSTNAME?OR_HOSTNAME must be set}/auth/realms/master
      - spring.security.oauth2.client.provider.oidc.user-name-attribute=preferred_username
    ports:
      - "8083:8080"

Custom haproxy.cfg snippet:

frontend https
    .
    .
    .
    # Insert the following above the last line (use_backend manager_backend)
    acl hawkbit path_beg /hawkbit
    use_backend hawkbit_backend if hawkbit
backend hawkbit_backend
  server hawkbit hawkbit:8080 resolvers docker_resolver

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.