HawkBit Artifact Repository is a library for storing binary artifacts and metadata into the AWS S3 service.
The module contains a spring-boot autoconfiguration for easily integration into spring-boot projects. For using this extension in the hawkbit-example-application you just need to add the maven dependency.
<dependency>
<groupId>org.eclipse.hawkbit</groupId>
<artifactId>hawkbit-extension-artifact-repository-s3</artifactId>
<version>${project.version}</version>
</dependency>
All files are stored in a bucket configured via property org.eclipse.hawkbit.repository.s3.bucketName
(see S3RepositoryProperties).
The name of the object stored in the S3 bucket is the SHA1-hash of the binary file.
The extension is using the DefaultAWSCredentialsProviderChain
class which looks for credentials in this order:
- Environment variables (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY)
- Java system properties (aws.accessKeyId and aws.secretKey)
- Default credential profile file (~/.aws/credentials)
- Amazon ECS container credentials
- Instance profile credentials
For more information check the Amazon credentials guide.
You can exchange the credentials provider by overwriting the AWSCredentialsProvider
bean (see S3RepositoryAutoConfiguration).
MinIO is a high performance, Kubernetes-friendly object storage
- Setup MinIO with
MINIO_DOMAIN
environment variable is set. For exampleminio.acme.com
- Create your bucket. For example
hawkbit
- Use Java system property
aws.s3.endpoint=http://minio.acme.com:9000
if MinIO runs on the default port and is not secured by HTTPS - Set up a DNS record for
hawkbit.minio.acme.com
to point to your MinIO server. Ensure9000
port is open for HawkBit - When storing objects HawkBit relies on it can resolve
hawkbit.minio.acme.com
and can connect to9000
port