Skip to content

Commit 4800eb6

Browse files
Add minimal OTLP-only distribution (#663)
* Add minimal OTLP-only distribution * Pin CI goreleaser version to v2.2.0 Version 2.3 of goreleaser changed some of the output directory names, making the `Upload linux service packages` task failing silently, causing the `Package tests` tasks to fail at retrieving the package artifacts under test. * Rename distro from "otelcol-minimal" to "otelcol-otlp" * Add note in systemd .conf file * Correct exposed ports in Dockerfile * Removed default command line arguments in Dockerfile * Updated README * Update new distro to 0.110.0
1 parent aaa6ec9 commit 4800eb6

15 files changed

+518
-1
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Continuous Integration - OTLP - GoReleaser
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- "distributions/otelcol-otlp/**"
8+
- "cmd/**"
9+
- ".github/**"
10+
- "scripts/**"
11+
- "Makefile"
12+
- "go.mod"
13+
- "go.sum"
14+
pull_request:
15+
branches: [main]
16+
paths:
17+
- "distributions/otelcol-otlp/**"
18+
- "cmd/**"
19+
- ".github/**"
20+
- "scripts/**"
21+
- "Makefile"
22+
- "go.mod"
23+
- "go.sum"
24+
25+
jobs:
26+
check-goreleaser:
27+
name: Continuous Integration - OTLP - GoReleaser
28+
uses: ./.github/workflows/base-ci-goreleaser.yaml
29+
with:
30+
distribution: otelcol-otlp
31+
goos: '[ "linux", "windows", "darwin" ]'
32+
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
33+
secrets: inherit
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Release OTLP
2+
3+
on:
4+
push:
5+
tags: ["v*"]
6+
7+
jobs:
8+
release:
9+
name: Release OTLP
10+
uses: ./.github/workflows/base-release.yaml
11+
with:
12+
distribution: otelcol-otlp
13+
goos: '[ "linux", "windows", "darwin" ]'
14+
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
15+
secrets: inherit
16+
permissions: write-all

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ OTELCOL_BUILDER_VERSION ?= 0.110.0
55
OTELCOL_BUILDER_DIR ?= ${HOME}/bin
66
OTELCOL_BUILDER ?= ${OTELCOL_BUILDER_DIR}/ocb
77

8-
DISTRIBUTIONS ?= "otelcol,otelcol-contrib,otelcol-k8s"
8+
DISTRIBUTIONS ?= "otelcol,otelcol-contrib,otelcol-k8s,otelcol-otlp"
99
GEN_CONFIG_DISTRIBUTIONS ?= "otelcol,otelcol-contrib"
1010

1111
ci: check build

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ Current list of distributions:
1717
- [OpenTelemetry Collector (also known as "otelcol")](./distributions/otelcol)
1818
- [OpenTelemetry Collector Contrib (also known as "otelcol-contrib")](./distributions/otelcol-contrib)
1919
- [OpenTelemetry Collector for Kubernetes (also known as "otelcol-k8s")](./distributions/otelcol-k8s)
20+
- [OpenTelemetry Collector OTLP (also known as "otelcol-otlp")](./distributions/otelcol-otlp)
Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
partial:
2+
by: target
3+
version: 2
4+
project_name: opentelemetry-collector-releases
5+
env:
6+
- COSIGN_YES=true
7+
msi:
8+
- id: otelcol-otlp
9+
name: otelcol-otlp_{{ .Version }}_{{ .Os }}_{{ .MsiArch }}
10+
wxs: windows-installer.wxs
11+
extra_files:
12+
- opentelemetry.ico
13+
builds:
14+
- id: otelcol-otlp
15+
goos:
16+
- darwin
17+
- linux
18+
- windows
19+
goarch:
20+
- "386"
21+
- amd64
22+
- arm
23+
- arm64
24+
- ppc64le
25+
- s390x
26+
goarm:
27+
- "7"
28+
ignore:
29+
- goos: darwin
30+
goarch: "386"
31+
- goos: darwin
32+
goarch: arm
33+
- goos: darwin
34+
goarch: s390x
35+
- goos: windows
36+
goarch: arm
37+
- goos: windows
38+
goarch: arm64
39+
- goos: windows
40+
goarch: s390x
41+
dir: _build
42+
binary: otelcol-otlp
43+
ldflags:
44+
- -s
45+
- -w
46+
flags:
47+
- -trimpath
48+
env:
49+
- CGO_ENABLED=0
50+
archives:
51+
- id: otelcol-otlp
52+
builds:
53+
- otelcol-otlp
54+
name_template: '{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}'
55+
nfpms:
56+
- package_name: otelcol-otlp
57+
contents:
58+
- src: otelcol-otlp.service
59+
dst: /lib/systemd/system/otelcol-otlp.service
60+
- src: otelcol-otlp.conf
61+
dst: /etc/otelcol-otlp/otelcol-otlp.conf
62+
type: config|noreplace
63+
scripts:
64+
preinstall: preinstall.sh
65+
postinstall: postinstall.sh
66+
preremove: preremove.sh
67+
overrides:
68+
rpm:
69+
dependencies:
70+
- /bin/sh
71+
id: otelcol-otlp
72+
builds:
73+
- otelcol-otlp
74+
formats:
75+
- deb
76+
- rpm
77+
maintainer: The OpenTelemetry Collector maintainers <[email protected]>
78+
description: OpenTelemetry Collector - otelcol-otlp
79+
license: Apache 2.0
80+
checksum:
81+
name_template: '{{ .ProjectName }}_otelcol-otlp_checksums.txt'
82+
dockers:
83+
- goos: linux
84+
goarch: "386"
85+
dockerfile: Dockerfile
86+
image_templates:
87+
- otel/opentelemetry-collector-otlp:{{ .Version }}-386
88+
- otel/opentelemetry-collector-otlp:latest-386
89+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-386
90+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-386
91+
build_flag_templates:
92+
- --pull
93+
- --platform=linux/386
94+
- --label=org.opencontainers.image.created={{.Date}}
95+
- --label=org.opencontainers.image.name={{.ProjectName}}
96+
- --label=org.opencontainers.image.revision={{.FullCommit}}
97+
- --label=org.opencontainers.image.version={{.Version}}
98+
- --label=org.opencontainers.image.source={{.GitURL}}
99+
- --label=org.opencontainers.image.licenses=Apache-2.0
100+
use: buildx
101+
- goos: linux
102+
goarch: amd64
103+
dockerfile: Dockerfile
104+
image_templates:
105+
- otel/opentelemetry-collector-otlp:{{ .Version }}-amd64
106+
- otel/opentelemetry-collector-otlp:latest-amd64
107+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-amd64
108+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-amd64
109+
build_flag_templates:
110+
- --pull
111+
- --platform=linux/amd64
112+
- --label=org.opencontainers.image.created={{.Date}}
113+
- --label=org.opencontainers.image.name={{.ProjectName}}
114+
- --label=org.opencontainers.image.revision={{.FullCommit}}
115+
- --label=org.opencontainers.image.version={{.Version}}
116+
- --label=org.opencontainers.image.source={{.GitURL}}
117+
- --label=org.opencontainers.image.licenses=Apache-2.0
118+
use: buildx
119+
- goos: linux
120+
goarch: arm
121+
goarm: "7"
122+
dockerfile: Dockerfile
123+
image_templates:
124+
- otel/opentelemetry-collector-otlp:{{ .Version }}-armv7
125+
- otel/opentelemetry-collector-otlp:latest-armv7
126+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-armv7
127+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-armv7
128+
build_flag_templates:
129+
- --pull
130+
- --platform=linux/arm/v7
131+
- --label=org.opencontainers.image.created={{.Date}}
132+
- --label=org.opencontainers.image.name={{.ProjectName}}
133+
- --label=org.opencontainers.image.revision={{.FullCommit}}
134+
- --label=org.opencontainers.image.version={{.Version}}
135+
- --label=org.opencontainers.image.source={{.GitURL}}
136+
- --label=org.opencontainers.image.licenses=Apache-2.0
137+
use: buildx
138+
- goos: linux
139+
goarch: arm64
140+
dockerfile: Dockerfile
141+
image_templates:
142+
- otel/opentelemetry-collector-otlp:{{ .Version }}-arm64
143+
- otel/opentelemetry-collector-otlp:latest-arm64
144+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-arm64
145+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-arm64
146+
build_flag_templates:
147+
- --pull
148+
- --platform=linux/arm64
149+
- --label=org.opencontainers.image.created={{.Date}}
150+
- --label=org.opencontainers.image.name={{.ProjectName}}
151+
- --label=org.opencontainers.image.revision={{.FullCommit}}
152+
- --label=org.opencontainers.image.version={{.Version}}
153+
- --label=org.opencontainers.image.source={{.GitURL}}
154+
- --label=org.opencontainers.image.licenses=Apache-2.0
155+
use: buildx
156+
- goos: linux
157+
goarch: ppc64le
158+
dockerfile: Dockerfile
159+
image_templates:
160+
- otel/opentelemetry-collector-otlp:{{ .Version }}-ppc64le
161+
- otel/opentelemetry-collector-otlp:latest-ppc64le
162+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-ppc64le
163+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-ppc64le
164+
build_flag_templates:
165+
- --pull
166+
- --platform=linux/ppc64le
167+
- --label=org.opencontainers.image.created={{.Date}}
168+
- --label=org.opencontainers.image.name={{.ProjectName}}
169+
- --label=org.opencontainers.image.revision={{.FullCommit}}
170+
- --label=org.opencontainers.image.version={{.Version}}
171+
- --label=org.opencontainers.image.source={{.GitURL}}
172+
- --label=org.opencontainers.image.licenses=Apache-2.0
173+
use: buildx
174+
- goos: linux
175+
goarch: s390x
176+
dockerfile: Dockerfile
177+
image_templates:
178+
- otel/opentelemetry-collector-otlp:{{ .Version }}-s390x
179+
- otel/opentelemetry-collector-otlp:latest-s390x
180+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-s390x
181+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-s390x
182+
build_flag_templates:
183+
- --pull
184+
- --platform=linux/s390x
185+
- --label=org.opencontainers.image.created={{.Date}}
186+
- --label=org.opencontainers.image.name={{.ProjectName}}
187+
- --label=org.opencontainers.image.revision={{.FullCommit}}
188+
- --label=org.opencontainers.image.version={{.Version}}
189+
- --label=org.opencontainers.image.source={{.GitURL}}
190+
- --label=org.opencontainers.image.licenses=Apache-2.0
191+
use: buildx
192+
docker_manifests:
193+
- name_template: otel/opentelemetry-collector-otlp:{{ .Version }}
194+
image_templates:
195+
- otel/opentelemetry-collector-otlp:{{ .Version }}-386
196+
- otel/opentelemetry-collector-otlp:{{ .Version }}-amd64
197+
- otel/opentelemetry-collector-otlp:{{ .Version }}-armv7
198+
- otel/opentelemetry-collector-otlp:{{ .Version }}-arm64
199+
- otel/opentelemetry-collector-otlp:{{ .Version }}-ppc64le
200+
- otel/opentelemetry-collector-otlp:{{ .Version }}-s390x
201+
- name_template: otel/opentelemetry-collector-otlp:latest
202+
image_templates:
203+
- otel/opentelemetry-collector-otlp:latest-386
204+
- otel/opentelemetry-collector-otlp:latest-amd64
205+
- otel/opentelemetry-collector-otlp:latest-armv7
206+
- otel/opentelemetry-collector-otlp:latest-arm64
207+
- otel/opentelemetry-collector-otlp:latest-ppc64le
208+
- otel/opentelemetry-collector-otlp:latest-s390x
209+
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}
210+
image_templates:
211+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-386
212+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-amd64
213+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-armv7
214+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-arm64
215+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-ppc64le
216+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:{{ .Version }}-s390x
217+
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest
218+
image_templates:
219+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-386
220+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-amd64
221+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-armv7
222+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-arm64
223+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-ppc64le
224+
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-otlp:latest-s390x
225+
signs:
226+
- cmd: cosign
227+
args:
228+
- sign-blob
229+
- --output-signature
230+
- ${artifact}.sig
231+
- --output-certificate
232+
- ${artifact}.pem
233+
- ${artifact}
234+
signature: ${artifact}.sig
235+
artifacts: all
236+
certificate: ${artifact}.pem
237+
docker_signs:
238+
- args:
239+
- sign
240+
- ${artifact}
241+
artifacts: all
242+
sboms:
243+
- id: archive
244+
artifacts: archive
245+
- id: package
246+
artifacts: package
247+
monorepo:
248+
tag_prefix: v
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM alpine:3.19 as certs
2+
RUN apk --update add ca-certificates
3+
4+
FROM scratch
5+
6+
ARG USER_UID=10001
7+
USER ${USER_UID}
8+
9+
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
10+
COPY --chmod=755 otelcol-otlp /otelcol-otlp
11+
ENTRYPOINT ["/otelcol-otlp"]
12+
EXPOSE 4317 4318
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# OpenTelemetry Collector OTLP Distro
2+
3+
This distribution only contains the receiver and exporters for the OpenTelemetry Protocol (OTLP), including both gRPC and HTTP transport.
4+
5+
## Configuration
6+
7+
Unlike the Core and Contrib distributions, this distribution does not provide a default configuration file, and one will need to be created. The location of the config file is specified with the `--config` command line option.
8+
9+
- For the .deb/.rpm systemd service packages, the command line options are set in `/etc/otelcol-otlp/otelcol-otlp.conf`, and the default config path is `/etc/otelcol-otlp/config.yaml`.
10+
11+
- For the Windows installer, the command line options are set during the install process, and the default config path is `%ProgramW6432%\OpenTelemetry Collector\config.yaml`.
12+
13+
- For the Docker images, the command line options are blank by default, and must be specified with a `CMD` directive.
14+
15+
Example: `CMD ["--config", "/etc/otelcol-otlp/config.yaml"]`
16+
17+
## Components
18+
19+
The full list of components is available in the [manifest](manifest.yaml)
20+
21+
### Rules for Component Inclusion
22+
23+
- Only `otlpreceiver`, `otlpexporter`, and `otlphttpexporter` are allowed.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
dist:
2+
module: github.com/open-telemetry/opentelemetry-collector-releases/otlp
3+
name: otelcol-otlp
4+
description: OpenTelemetry Collector OTLP
5+
version: 0.110.0
6+
output_path: ./_build
7+
otelcol_version: 0.110.0
8+
9+
exporters:
10+
- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.110.0
11+
- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.110.0
12+
13+
receivers:
14+
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.110.0
15+
16+
providers:
17+
- gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.16.0
18+
- gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.16.0
269 KB
Binary file not shown.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Systemd environment file for the otelcol-otlp service
2+
3+
# Command-line options for the otelcol-otlp service.
4+
# Run `/usr/bin/otelcol-otlp --help` to see all available options.
5+
# Note: No default config file is provided at the path below, one must be created.
6+
OTELCOL_OPTIONS="--config=/etc/otelcol-otlp/config.yaml"

0 commit comments

Comments
 (0)