Skip to content

Commit aa88140

Browse files
authored
feat: add EXTRA_USER_AGENT env (#26) (#27)
Signed-off-by: Patrik Cyvoct <[email protected]>
1 parent 7c8edd1 commit aa88140

File tree

4 files changed

+25
-12
lines changed

4 files changed

+25
-12
lines changed

Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ COPY cmd/ cmd/
1212
COPY scaleway/ scaleway/
1313

1414
ARG TAG
15-
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -a -ldflags "-w -s -X github.com/scaleway/scaleway-cloud-controller-manager/scaleway.version=${TAG}" -o scaleway-cloud-controller-manager ./cmd/scaleway-cloud-controller-manager
15+
ARG COMMIT_SHA
16+
ARG BUILD_DATE
17+
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -a -ldflags "-w -s -X github.com/scaleway/scaleway-cloud-controller-manager/scaleway.version=${TAG} -X github.com/scaleway/scaleway-cloud-controller-manager/scaleway.buildDate=${BUILD_DATE} github.com/scaleway/scaleway-cloud-controller-manager/scaleway.gitCommit=${COMMIT_SHA} " -o scaleway-cloud-controller-manager ./cmd/scaleway-cloud-controller-manager
1618

1719
FROM scratch
1820
WORKDIR /

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ OS ?= $(shell go env GOOS)
22
ARCH ?= $(shell go env GOARCH)
33
ALL_PLATFORM = linux/amd64,linux/arm/v7,linux/arm64
44

5+
BUILD_DATE ?= $(shell date -Is)
6+
57
GOPATH ?= $(GOPATH)
68

79
REGISTRY ?= scaleway
@@ -10,6 +12,7 @@ FULL_IMAGE ?= $(REGISTRY)/$(IMAGE)
1012

1113
TAG ?= $(shell git rev-parse HEAD)
1214
IMAGE_TAG ?= $(shell git rev-parse HEAD)
15+
COMMIT_SHA ?= $(shell git rev-parse HEAD)
1316

1417
DOCKER_CLI_EXPERIMENTAL ?= enabled
1518

@@ -35,12 +38,12 @@ compile:
3538
.PHONY: docker-build
3639
docker-build:
3740
@echo "Building scaleway-cloud-controller-manager for ${ARCH}"
38-
docker build . --platform=linux/$(ARCH) --build-arg ARCH=$(ARCH) --build-arg TAG=$(TAG) -f Dockerfile -t ${FULL_IMAGE}:${IMAGE_TAG}-$(ARCH)
41+
docker build . --platform=linux/$(ARCH) --build-arg ARCH=$(ARCH) --build-arg TAG=$(TAG) --build-arg COMMIT_SHA=$(COMMIT_SHA) --build-arg BUILD_DATE=$(BUILD_DATE) -f Dockerfile -t ${FULL_IMAGE}:${IMAGE_TAG}-$(ARCH)
3942

4043
.PHONY: docker-buildx-all
4144
docker-buildx-all:
4245
@echo "Making release for tag $(IMAGE_TAG)"
43-
docker buildx build --build-arg TAG=$(TAG) --platform=$(ALL_PLATFORM) --push -t $(FULL_IMAGE):$(IMAGE_TAG) .
46+
docker buildx build --build-arg TAG=$(TAG) --build-arg COMMIT_SHA=$(COMMIT_SHA) --build-arg BUILD_DATE=$(BUILD_DATE) --platform=$(ALL_PLATFORM) --push -t $(FULL_IMAGE):$(IMAGE_TAG) .
4447

4548
## Release
4649
.PHONY: release

scaleway/cloud.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package scaleway
1818

1919
import (
2020
"errors"
21+
"fmt"
2122
"io"
2223
"os"
2324
"time"
@@ -35,15 +36,12 @@ const (
3536
cacheUpdateFrequency = time.Minute * 10
3637

3738
// optional fields
38-
scwCcmUserAgent = "SCW_CCM_USER_AGENT"
3939
scwCcmPrefixEnv = "SCW_CCM_PREFIX"
4040
scwCcmTagsEnv = "SCW_CCM_TAGS"
4141
scwCcmTagsDelimiterEnv = "SCW_CCM_TAGS_DELIMITER"
42-
)
4342

44-
var (
45-
version = "0.0.0-dirty"
46-
userAgent = "scaleway/ccm (" + version + ")"
43+
// extraUserAgentEnv is the environment variable that adds some string at the end of the user agent
44+
extraUserAgentEnv = "EXTRA_USER_AGENT"
4745
)
4846

4947
type cloud struct {
@@ -57,13 +55,19 @@ type cloud struct {
5755
func newCloud(config io.Reader) (cloudprovider.Interface, error) {
5856
logger.SetLogger(logging)
5957

58+
userAgent := fmt.Sprintf("scaleway/ccm %s (%s)", ccmVersion, gitCommit)
59+
if extraUA := os.Getenv(extraUserAgentEnv); extraUA != "" {
60+
userAgent = userAgent + " " + extraUA
61+
}
62+
6063
// Create a Scaleway client
6164
// use theses env variable to set or overwrite profile values
6265
// SCW_ACCESS_KEY
6366
// SCW_SECRET_KEY
6467
// SCW_DEFAULT_ORGANIZATION_ID
6568
// SCW_DEFAULT_REGION
6669
// SCW_DEFAULT_ZONE
70+
6771
scwClient, err := scw.NewClient(
6872
scw.WithUserAgent(userAgent),
6973
scw.WithEnv(),
@@ -88,10 +92,6 @@ func newCloud(config io.Reader) (cloudprovider.Interface, error) {
8892
}
8993

9094
func init() {
91-
if ua, ok := os.LookupEnv(scwCcmUserAgent); ok {
92-
userAgent = ua
93-
}
94-
9595
cloudprovider.RegisterCloudProvider(providerName, func(config io.Reader) (cloudprovider.Interface, error) {
9696
return newCloud(config)
9797
})

scaleway/version.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package scaleway
2+
3+
// These are set during build time via -ldflags
4+
var (
5+
ccmVersion string
6+
gitCommit string
7+
buildDate string
8+
)

0 commit comments

Comments
 (0)