add build details for opampsupervisor (#858)
* add build details for opampsupervisor This follows the pattern for releasing the builder. Fixes https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/24293 Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> * update config Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> * add changelog Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> * remove sha_short Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> * Update cmd/opampsupervisor/Dockerfile * dont bother testing on contrib changes Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> * add contrib to gitignore Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> * updated title Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> --------- Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com> Co-authored-by: Evan Bradley <11745660+evan-bradley@users.noreply.github.com> Co-authored-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com>
This commit is contained in:
parent
fc22344e71
commit
88a1ec8b99
|
|
@ -0,0 +1,26 @@
|
|||
# Use this changelog template to create an entry for release notes.
|
||||
|
||||
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
|
||||
change_type: new_component
|
||||
|
||||
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
|
||||
component: opampsupervisor
|
||||
|
||||
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
|
||||
note: publish binaries and container images for the OpAMP Supervisor
|
||||
|
||||
# One or more tracking issues or pull requests related to the change
|
||||
issues: [858]
|
||||
|
||||
# (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:
|
||||
|
||||
# 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: []
|
||||
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
name: Release OpAMP supervisor
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
env:
|
||||
# renovate: datasource=github-tags depName=goreleaser-pro packageName=goreleaser/goreleaser-pro
|
||||
GORELEASER_PRO_VERSION: v2.7.0
|
||||
|
||||
jobs:
|
||||
goreleaser:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
id-token: write
|
||||
packages: write
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Releases Repo
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Push cmd/opampsupervisor Tag
|
||||
run: |
|
||||
tag="cmd/opampsupervisor/${{ github.ref_name }}"
|
||||
message="Releasing OpAMP supervisor binaries for ${{ github.ref_name }}"
|
||||
git config user.name "${GITHUB_ACTOR}"
|
||||
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
|
||||
git tag -a "${tag}" -m "${message}"
|
||||
git push origin "${tag}"
|
||||
- name: Checkout Contrib Repo
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
repository: "open-telemetry/opentelemetry-collector-contrib"
|
||||
ref: ${{ github.ref_name }}
|
||||
path: ".contrib"
|
||||
- name: Copy Dockerfile to Contrib Repo directory
|
||||
run: cp cmd/opampsupervisor/Dockerfile .contrib/cmd/opampsupervisor/Dockerfile
|
||||
- uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a # v3.8.1
|
||||
- uses: anchore/sbom-action/download-syft@f325610c9f50a54015d37c8d16cb3b0e2c8f4de0 # v0.18.0
|
||||
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
||||
with:
|
||||
platforms: amd64, arm64,ppc64le
|
||||
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
|
||||
with:
|
||||
go-version: "~1.24"
|
||||
- name: Log into Docker.io
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Login to GitHub Package Registry
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@90a3faa9d0182683851fbfa97ca1a2cb983bfca3 # v6.2.1
|
||||
with:
|
||||
distribution: goreleaser-pro
|
||||
version: ${{ env.GORELEASER_PRO_VERSION }}
|
||||
args: release --clean -f cmd/opampsupervisor/.goreleaser.yml
|
||||
env:
|
||||
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
COSIGN_YES: true
|
||||
SKIP_SIGNS: false
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
name: CI - OpAMP supervisor
|
||||
|
||||
on:
|
||||
merge_group:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "cmd/**"
|
||||
- ".github/**"
|
||||
- "scripts/**"
|
||||
- "Makefile"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "cmd/**"
|
||||
- ".github/**"
|
||||
- "scripts/**"
|
||||
- "Makefile"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
|
||||
env:
|
||||
# renovate: datasource=github-tags depName=goreleaser-pro packageName=goreleaser/goreleaser-pro
|
||||
GORELEASER_PRO_VERSION: v2.7.0
|
||||
|
||||
jobs:
|
||||
check-goreleaser:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Releases Repo
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Checkout Core Repo
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
repository: "open-telemetry/opentelemetry-collector-contrib"
|
||||
path: ".contrib"
|
||||
- name: Copy Dockerfile to Core Repo directory
|
||||
run: cp cmd/opampsupervisor/Dockerfile .contrib/cmd/opampsupervisor/Dockerfile
|
||||
- uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a # v3.8.1
|
||||
- uses: anchore/sbom-action/download-syft@f325610c9f50a54015d37c8d16cb3b0e2c8f4de0 # v0.18.0
|
||||
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
||||
with:
|
||||
platforms: amd64, arm64,ppc64le
|
||||
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
|
||||
with:
|
||||
go-version: "~1.24"
|
||||
- name: Check GoReleaser
|
||||
uses: goreleaser/goreleaser-action@90a3faa9d0182683851fbfa97ca1a2cb983bfca3 # v6.2.1
|
||||
with:
|
||||
distribution: goreleaser-pro
|
||||
version: ${{ env.GORELEASER_PRO_VERSION }}
|
||||
args: check --verbose -f cmd/opampsupervisor/.goreleaser.yml
|
||||
env:
|
||||
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@90a3faa9d0182683851fbfa97ca1a2cb983bfca3 # v6.2.1
|
||||
with:
|
||||
distribution: goreleaser-pro
|
||||
version: ${{ env.GORELEASER_PRO_VERSION }}
|
||||
args: --snapshot --clean -f cmd/opampsupervisor/.goreleaser.yml
|
||||
env:
|
||||
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
COSIGN_YES: false
|
||||
SKIP_SIGNS: true
|
||||
|
|
@ -5,4 +5,5 @@ dist/
|
|||
.generated-yaml/
|
||||
.vscode
|
||||
.core
|
||||
.contrib
|
||||
.tools
|
||||
|
|
|
|||
|
|
@ -0,0 +1,144 @@
|
|||
before:
|
||||
hooks:
|
||||
- go mod download
|
||||
monorepo:
|
||||
tag_prefix: cmd/opampsupervisor/
|
||||
dir: .contrib/cmd/opampsupervisor
|
||||
version: 2
|
||||
builds:
|
||||
- flags:
|
||||
- -trimpath
|
||||
ldflags:
|
||||
- -s -w -X github.com/open-telemetry/opentelemetry-collector-contrib/cmd/opampsupervisor/internal.version={{ .Version }}
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
- linux
|
||||
- windows
|
||||
- darwin
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
- ppc64le
|
||||
ignore:
|
||||
- goos: windows
|
||||
goarch: arm64
|
||||
- goos: windows
|
||||
goarch: ppc64le
|
||||
- goos: darwin
|
||||
goarch: ppc64le
|
||||
binary: opampsupervisor
|
||||
dockers:
|
||||
- goos: linux
|
||||
goarch: amd64
|
||||
dockerfile: Dockerfile
|
||||
image_templates:
|
||||
- otel/opentelemetry-collector-opampsupervisor:{{ .Version }}-amd64
|
||||
- otel/opentelemetry-collector-opampsupervisor:latest-amd64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}-amd64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest-amd64
|
||||
build_flag_templates:
|
||||
- --pull
|
||||
- --platform=linux/amd64
|
||||
- --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
|
||||
- goos: linux
|
||||
goarch: arm64
|
||||
dockerfile: Dockerfile
|
||||
image_templates:
|
||||
- otel/opentelemetry-collector-opampsupervisor:{{ .Version }}-arm64
|
||||
- otel/opentelemetry-collector-opampsupervisor:latest-arm64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}-arm64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest-arm64
|
||||
build_flag_templates:
|
||||
- --pull
|
||||
- --platform=linux/arm64
|
||||
- --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
|
||||
- goos: linux
|
||||
goarch: ppc64le
|
||||
dockerfile: Dockerfile
|
||||
image_templates:
|
||||
- otel/opentelemetry-collector-opampsupervisor:{{ .Version }}-ppc64le
|
||||
- otel/opentelemetry-collector-opampsupervisor:latest-ppc64le
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}-ppc64le
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest-ppc64le
|
||||
build_flag_templates:
|
||||
- --pull
|
||||
- --platform=linux/ppc64le
|
||||
- --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-opampsupervisor:{{ .Version }}
|
||||
image_templates:
|
||||
- otel/opentelemetry-collector-opampsupervisor:{{ .Version }}-amd64
|
||||
- otel/opentelemetry-collector-opampsupervisor:{{ .Version }}-arm64
|
||||
- otel/opentelemetry-collector-opampsupervisor:{{ .Version }}-ppc64le
|
||||
- name_template: otel/opentelemetry-collector-opampsupervisor:latest
|
||||
image_templates:
|
||||
- otel/opentelemetry-collector-opampsupervisor:latest-amd64
|
||||
- otel/opentelemetry-collector-opampsupervisor:latest-arm64
|
||||
- otel/opentelemetry-collector-opampsupervisor:latest-ppc64le
|
||||
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}
|
||||
image_templates:
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}-amd64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}-arm64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:{{ .Version }}-ppc64le
|
||||
- name_template: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest
|
||||
image_templates:
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest-amd64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest-arm64
|
||||
- ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-opampsupervisor:latest-ppc64le
|
||||
release:
|
||||
github:
|
||||
owner: open-telemetry
|
||||
name: opentelemetry-collector-releases
|
||||
header: |
|
||||
### Release of OpAMP supervisor artifacts
|
||||
archives:
|
||||
- formats:
|
||||
- binary
|
||||
checksum:
|
||||
name_template: "checksums.txt"
|
||||
snapshot:
|
||||
version_template: "{{ .Tag }}-next"
|
||||
changelog:
|
||||
disable: true
|
||||
signs:
|
||||
- if: $SKIP_SIGNS != "true"
|
||||
cmd: cosign
|
||||
args:
|
||||
- sign-blob
|
||||
- --output-signature
|
||||
- ${artifact}.sig
|
||||
- --output-certificate
|
||||
- ${artifact}.pem
|
||||
- ${artifact}
|
||||
signature: ${artifact}.sig
|
||||
artifacts: all
|
||||
certificate: ${artifact}.pem
|
||||
docker_signs:
|
||||
- if: $SKIP_SIGNS != "true"
|
||||
args:
|
||||
- sign
|
||||
- ${artifact}
|
||||
artifacts: all
|
||||
sboms:
|
||||
- id: archive
|
||||
artifacts: archive
|
||||
- id: package
|
||||
artifacts: package
|
||||
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
FROM alpine:3.20
|
||||
RUN apk --update add ca-certificates
|
||||
|
||||
ARG SERVICE_NAME=opampsupervisor
|
||||
|
||||
RUN addgroup --gid 10001 --system ${SERVICE_NAME} && \
|
||||
adduser --ingroup ${SERVICE_NAME} --shell /bin/false \
|
||||
--disabled-password --uid 10001 ${SERVICE_NAME}
|
||||
|
||||
USER ${SERVICE_NAME}
|
||||
WORKDIR /home/${SERVICE_NAME}
|
||||
|
||||
COPY --chmod=755 opampsupervisor /usr/local/bin/opampsupervisor
|
||||
ENTRYPOINT [ "opampsupervisor" ]
|
||||
Loading…
Reference in New Issue