diff --git a/.chloggen/s3provider-mdatagen.yaml b/.chloggen/s3provider-mdatagen.yaml new file mode 100644 index 000000000000..1cea9a80a8c7 --- /dev/null +++ b/.chloggen/s3provider-mdatagen.yaml @@ -0,0 +1,27 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: confmap/provider/s3 + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Promote to alpha stability + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +issues: [38227] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: + +# If your change doesn't affect end users or the exported elements of any package, +# you should instead start your pull request title with [chore] or use the "Skip Changelog" label. +# Optional: The change log or logs in which this entry should be included. +# e.g. '[user]' or '[user, api]' +# Include 'user' if the change is relevant to end users. +# Include 'api' if there is a change to a library API. +# Default: '[user]' +change_logs: [] diff --git a/confmap/provider/s3provider/README.md b/confmap/provider/s3provider/README.md index d61a968b557e..87489de27825 100644 --- a/confmap/provider/s3provider/README.md +++ b/confmap/provider/s3provider/README.md @@ -1,12 +1,31 @@ +# S3 Confmap Provider + + +| Status | | +| ------------- |-----------| +| Stability | [alpha] | +| Distributions | [contrib] | +| Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aopen%20label%3Aprovider%2Fs3provider%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Aprovider%2Fs3provider) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aclosed%20label%3Aprovider%2Fs3provider%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Aprovider%2Fs3provider) | +| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@Aneurysm9](https://www.github.com/Aneurysm9) | + +[alpha]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/component-stability.md#alpha +[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib + + ## Summary + This package provides a `ConfigMapProvider` implementation for Amazon S3 (`s3provider`) that allows the Collector the ability to load configuration by fetching and reading config objects stored in Amazon S3. + ## How it works + - It will be called by `ConfigMapResolver` to load configuration for the Collector. - By giving a config URI starting with prefix `s3://`, this `s3provider` will be used to download config objects from the given S3 URIs, and then use the downloaded configuration during Collector initialization. Expected URI format: + - s3://[BUCKET].s3.[REGION].amazonaws.com/[KEY] Prerequistes: + - Need to setup access keys from IAM console (aws_access_key_id and aws_secret_access_key) with permission to access Amazon S3 - For details, can take a look at https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/ \ No newline at end of file diff --git a/confmap/provider/s3provider/package_test.go b/confmap/provider/s3provider/generated_package_test.go similarity index 61% rename from confmap/provider/s3provider/package_test.go rename to confmap/provider/s3provider/generated_package_test.go index a247d040f870..839de88e0a8b 100644 --- a/confmap/provider/s3provider/package_test.go +++ b/confmap/provider/s3provider/generated_package_test.go @@ -1,5 +1,4 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 +// Code generated by mdatagen. DO NOT EDIT. package s3provider diff --git a/confmap/provider/s3provider/metadata.yaml b/confmap/provider/s3provider/metadata.yaml index 79f2d095d572..6e112275d1ee 100644 --- a/confmap/provider/s3provider/metadata.yaml +++ b/confmap/provider/s3provider/metadata.yaml @@ -1,3 +1,9 @@ +type: s3 + status: + class: provider + stability: + alpha: [provider] + distributions: [contrib] codeowners: - active: [Aneurysm9] \ No newline at end of file + active: [Aneurysm9] diff --git a/confmap/provider/s3provider/provider.go b/confmap/provider/s3provider/provider.go index 4a696a5890c7..413a68e754e8 100644 --- a/confmap/provider/s3provider/provider.go +++ b/confmap/provider/s3provider/provider.go @@ -1,6 +1,8 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 +//go:generate mdatagen metadata.yaml + package s3provider // import "github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/s3provider" import ( diff --git a/reports/distributions/contrib.yaml b/reports/distributions/contrib.yaml index d48235cc84c9..df0d345b15a8 100644 --- a/reports/distributions/contrib.yaml +++ b/reports/distributions/contrib.yaml @@ -109,6 +109,8 @@ components: - sumologic - tail_sampling - transform + provider: + - s3 receiver: - active_directory_ds - aerospike