Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .chloggen/rv64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# 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. otlpreceiver)
component: platforms

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Add Tier 3 support for riscv64


# One or more tracking issues or pull requests related to the change
issues: [968, 969]

# (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: |
New Tier 3 platform: riscv64 architecture is now included,
allowing the collector to be built and distributed for this platform.

# 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: [user]

8 changes: 6 additions & 2 deletions .github/workflows/base-ci-goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ jobs:
GOARCH: ppc64le
- GOOS: windows
GOARCH: ppc64le
- GOOS: darwin
GOARCH: riscv64
- GOOS: windows
GOARCH: riscv64
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.prep.outputs.version }}
Expand All @@ -68,7 +72,7 @@ jobs:
- name: Setup QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
with:
platforms: arm64,ppc64le,linux/arm/v7,s390x
platforms: arm64,ppc64le,linux/arm/v7,s390x,riscv64

- name: Setup wixl # Required to build MSI packages for Windows
if: ${{ matrix.GOOS == 'windows' && ( matrix.GOARCH == '386' || matrix.GOARCH == 'amd64') }}
Expand Down Expand Up @@ -268,7 +272,7 @@ jobs:
- name: Setup QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
with:
platforms: arm64,ppc64le,linux/arm/v7,s390x
platforms: arm64,ppc64le,linux/arm/v7,s390x,riscv64

- name: Download container image artifact
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/base-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
GOARCH: ppc64le
- GOOS: darwin
GOARCH: arm
- GOOS: darwin
GOARCH: riscv64
runs-on: ${{ inputs.runner_os }}
permissions:
packages: write
Expand All @@ -58,7 +60,7 @@ jobs:
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
if: runner.os != 'Windows'
with:
platforms: arm64,ppc64le,linux/arm/v7,s390x
platforms: arm64,ppc64le,linux/arm/v7,s390x,riscv64

- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
if: runner.os != 'Windows'
Expand Down Expand Up @@ -188,7 +190,7 @@ jobs:
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
if: runner.os != 'Windows'
with:
platforms: arm64,ppc64le,s390x
platforms: arm64,ppc64le,s390x,riscv64

- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
if: runner.os != 'Windows'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-builder.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI - Builder

on:
merge_group:
merge_group:
push:
branches:
- main
Expand Down Expand Up @@ -51,7 +51,7 @@ jobs:
- uses: anchore/sbom-action/download-syft@7b36ad622f042cab6f59a75c2ac24ccb256e9b45 # v0.20.4
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
with:
platforms: amd64, arm64,ppc64le
platforms: amd64,arm64,ppc64le,riscv64
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Setup Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-goreleaser-contrib.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI - Contrib - GoReleaser

on:
merge_group:
merge_group:
push:
branches:
- main
Expand Down Expand Up @@ -34,7 +34,7 @@ jobs:
with:
distribution: otelcol-contrib
goos: '[ "linux", "windows", "darwin" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
goarch: '[ "386", "amd64", "arm", "arm64", "ppc64le", "riscv64", "s390x" ]'
secrets: inherit

package-tests:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-goreleaser-core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
with:
distribution: otelcol
goos: '[ "linux", "windows", "darwin" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
goarch: '[ "386", "amd64", "arm", "arm64", "ppc64le", "riscv64", "s390x" ]'
secrets: inherit

package-tests:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-goreleaser-k8s.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI - k8s - GoReleaser

on:
merge_group:
merge_group:
push:
branches:
- main
Expand Down Expand Up @@ -34,5 +34,5 @@ jobs:
with:
distribution: otelcol-k8s
goos: '[ "linux" ]'
goarch: '[ "amd64", "arm64", "ppc64le", "s390x" ]'
goarch: '[ "amd64", "arm64", "ppc64le", "riscv64", "s390x" ]'
secrets: inherit
4 changes: 2 additions & 2 deletions .github/workflows/ci-goreleaser-otlp.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI - OTLP - GoReleaser

on:
merge_group:
merge_group:
push:
branches:
- main
Expand Down Expand Up @@ -34,5 +34,5 @@ jobs:
with:
distribution: otelcol-otlp
goos: '[ "linux", "windows", "darwin" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
goarch: '[ "386", "amd64", "arm", "arm64", "ppc64le", "riscv64", "s390x" ]'
secrets: inherit
4 changes: 2 additions & 2 deletions .github/workflows/ci-opampsupervisor.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI - OpAMP supervisor

on:
merge_group:
merge_group:
push:
branches:
- main
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
- uses: anchore/sbom-action/download-syft@7b36ad622f042cab6f59a75c2ac24ccb256e9b45 # v0.20.4
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
with:
platforms: amd64, arm64,ppc64le
platforms: amd64,arm64,ppc64le
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Setup Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-builder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ env:
jobs:
goreleaser:
runs-on: ubuntu-latest

permissions:
id-token: write
packages: write
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
- uses: anchore/sbom-action/download-syft@7b36ad622f042cab6f59a75c2ac24ccb256e9b45 # v0.20.4
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
with:
platforms: amd64, arm64,ppc64le
platforms: amd64,arm64,ppc64le,riscv64
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Setup Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-contrib.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
with:
distribution: otelcol-contrib
goos: '[ "linux", "darwin" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x", "riscv64" ]'
nightly: ${{ contains(github.ref, '-nightly') }}
secrets: inherit
permissions: write-all
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
with:
distribution: otelcol
goos: '[ "linux", "darwin" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x", "riscv64" ]'
nightly: ${{ contains(github.ref, '-nightly') }}
secrets: inherit
permissions: write-all
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-opampsupervisor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
- uses: anchore/sbom-action/download-syft@7b36ad622f042cab6f59a75c2ac24ccb256e9b45 # v0.20.4
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
with:
platforms: amd64, arm64,ppc64le
platforms: amd64,arm64,ppc64le
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Setup Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-otlp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
with:
distribution: otelcol-otlp
goos: '[ "linux", "darwin" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x" ]'
goarch: '[ "386", "amd64", "arm64", "ppc64le", "arm", "s390x", "riscv64" ]'
nightly: ${{ contains(github.ref, '-nightly') }}
secrets: inherit
permissions: write-all
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ make goreleaser-verify

## Building Multi-Architecture Docker Images

`goreleaser` will build Docker images for various architectures, including `x86_64`, `386`, `arm`, `arm64`, and `ppc64le`. The build process involves executing `RUN` steps on the target architecture, which means the system you run it on needs support for emulating foreign architectures.
`goreleaser` will build Docker images for various architectures, including `x86_64`, `386`, `arm`, `arm64`, `ppc64le`, and `riscv64`. The build process involves executing `RUN` steps on the target architecture, which means the system you run it on needs support for emulating foreign architectures.

To set up the environment for building multi-architecture images:

Expand Down
27 changes: 27 additions & 0 deletions cmd/builder/.goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,18 @@ builds:
- amd64
- arm64
- ppc64le
- riscv64
ignore:
- goos: windows
goarch: arm64
- goos: windows
goarch: ppc64le
- goos: darwin
goarch: ppc64le
- goos: windows
goarch: riscv64
- goos: darwin
goarch: riscv64
binary: ocb
dockers:
- goos: linux
Expand Down Expand Up @@ -80,27 +85,49 @@ dockers:
- --label=org.opencontainers.image.source={{.GitURL}}
- --label=org.opencontainers.image.licenses=Apache-2.0
use: buildx
- goos: linux
goarch: riscv64
dockerfile: Dockerfile
image_templates:
- otel/opentelemetry-collector-builder:{{ .Version }}-riscv64
- otel/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-riscv64
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Version }}-riscv64
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-riscv64
build_flag_templates:
- --pull
- --platform=linux/riscv64
- --label=org.opencontainers.image.created={{.Date}}
- --label=org.opencontainers.image.name={{.ProjectName}}
- --label=org.opencontainers.image.revision={{.FullCommit}}
- --label=org.opencontainers.image.version={{.Version}}
- --label=org.opencontainers.image.source={{.GitURL}}
- --label=org.opencontainers.image.licenses=Apache-2.0
use: buildx
docker_manifests:
- name_template: otel/opentelemetry-collector-builder:{{ .Version }}
image_templates:
- otel/opentelemetry-collector-builder:{{ .Version }}-amd64
- otel/opentelemetry-collector-builder:{{ .Version }}-arm64
- otel/opentelemetry-collector-builder:{{ .Version }}-ppc64le
- otel/opentelemetry-collector-builder:{{ .Version }}-riscv64
- name_template: otel/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}
image_templates:
- otel/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-amd64
- otel/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-arm64
- otel/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-ppc64le
- otel/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-riscv64
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Version }}
image_templates:
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Version }}-amd64
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Version }}-arm64
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Version }}-ppc64le
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Version }}-riscv64
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}
image_templates:
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-amd64
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-arm64
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-ppc64le
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-builder:{{ .Env.CONTAINER_IMAGE_EPHEMERAL_TAG }}-riscv64
release:
make_latest: false
github:
Expand Down
4 changes: 2 additions & 2 deletions cmd/goreleaser/internal/configure.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ const (
)

var (
baseArchs = []string{"386", "amd64", "arm", "arm64", "ppc64le", "s390x"}
baseArchs = []string{"386", "amd64", "arm", "arm64", "ppc64le", "riscv64", "s390x"}
winArchs = []string{"386", "amd64", "arm64"}
winContainerArchs = []string{"amd64"}
darwinArchs = []string{"amd64", "arm64"}
k8sArchs = []string{"amd64", "arm64", "ppc64le", "s390x"}
k8sArchs = []string{"amd64", "arm64", "ppc64le", "riscv64", "s390x"}
ebpfProfilerArchs = []string{"amd64"}

imageRepos = []string{dockerHub, ghcr}
Expand Down
1 change: 1 addition & 0 deletions distributions/otelcol-contrib/.goreleaser-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ builds:
- arm
- arm64
- ppc64le
- riscv64
- s390x
goarm:
- "7"
Expand Down
Loading