diff --git a/Dockerfile b/Dockerfile index 6732cab..a5d1b39 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ -FROM keppel.eu-de-1.cloud.sap/ccloud-dockerhub-mirror/library/golang:1.14-alpine3.12 as builder +FROM keppel.eu-de-1.cloud.sap/ccloud-dockerhub-mirror/library/golang:1.20-alpine3.18 as builder WORKDIR /go/src/github.com/sapcc/atlas RUN apk add --no-cache make COPY . . ARG VERSION RUN make all -FROM keppel.eu-de-1.cloud.sap/ccloud-dockerhub-mirror/library/alpine:3.9 +FROM keppel.eu-de-1.cloud.sap/ccloud-dockerhub-mirror/library/alpine:3.18 LABEL maintainer="Stefan Hipfel " LABEL source_repository="https://github.com/sapcc/atlas" diff --git a/Makefile b/Makefile index 8bb5668..53193a4 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ GOOS ?= $(shell go env | grep GOOS | cut -d'"' -f2) BINARY := atlas LDFLAGS := -X github.com/sapcc/atlas/pkg/atlas.VERSION=$(VERSION) -GOFLAGS := -ldflags "$(LDFLAGS)" +GOFLAGS := -mod vendor -ldflags "-s -w $(LDFLAGS)" SRCDIRS := cmd pkg internal PACKAGES := $(shell find $(SRCDIRS) -type d) @@ -16,9 +16,9 @@ GOFILES := $(wildcard $(GOFILES)) all: bin/$(GOOS)/$(BINARY) bin/%/$(BINARY): $(GOFILES) Makefile - GOOS=$* GOARCH=amd64 go build $(GOFLAGS) -v -i -o bin/$*/$(BINARY) ./cmd/atlas + GOOS=$* GOARCH=amd64 go build $(GOFLAGS) -o bin/$*/$(BINARY) ./cmd/atlas -build: +build: docker build -t $(IMAGE):$(VERSION) . push: build diff --git a/README.md b/README.md index 1648bc2..3d2bf3d 100644 --- a/README.md +++ b/README.md @@ -91,4 +91,4 @@ Either by building via docker using `docker build .` and then `docker run CONTAI environment with `go run cmd/atlas/main.go --help`. Prometheus server configuration: -A sample prometheus job to read those configmap targets is shown [here](https://github.com/sapcc/ipmi_sd/blob/master/prometheus.yml) \ No newline at end of file +A sample prometheus job to read those configmap targets is shown [here](https://github.com/sapcc/ipmi_sd/blob/master/prometheus.yml) diff --git a/etc/config/config.yaml b/etc/config/config.yaml index 95fbc64..a4c6a32 100644 --- a/etc/config/config.yaml +++ b/etc/config/config.yaml @@ -16,14 +16,14 @@ discoveries: netbox_api_token: netbox_api_token dcim: devices: - - custom_labels: + - custom_labels: job: "snmp" target: 1 role: "aci-leaf" manufacturer: "cisco" region: "eu-west" status: "1" - - custom_labels: + - custom_labels: job: "snmp2" role: "aci-spine" target: 1 diff --git a/internal/discovery/ironic_discovery.go b/internal/discovery/ironic_discovery.go index e4f40d3..a99b601 100644 --- a/internal/discovery/ironic_discovery.go +++ b/internal/discovery/ironic_discovery.go @@ -75,7 +75,7 @@ func init() { Register(ironicDiscovery, NewIronicDiscovery) } -//NewIronicDiscovery creates a new Ironic Discovery +// NewIronicDiscovery creates a new Ironic Discovery func NewIronicDiscovery(disc interface{}, ctx context.Context, opts config.Options, l log.Logger) (d Discovery, err error) { var cfg ironicConfig if err := UnmarshalHandler(disc, &cfg, nil); err != nil { diff --git a/internal/discovery/netbox_discovery.go b/internal/discovery/netbox_discovery.go index beb18d8..2760a4a 100644 --- a/internal/discovery/netbox_discovery.go +++ b/internal/discovery/netbox_discovery.go @@ -59,7 +59,7 @@ func init() { Register(netboxDiscovery, NewNetboxDiscovery) } -//NewNetboxDiscovery creates +// NewNetboxDiscovery creates func NewNetboxDiscovery(disc interface{}, ctx context.Context, opts config.Options, l log.Logger) (d Discovery, err error) { var cfg netboxConfig configValues := configValues{Region: opts.Region} diff --git a/pkg/clients/ironic.go b/pkg/clients/ironic.go index 182d65b..e34b987 100644 --- a/pkg/clients/ironic.go +++ b/pkg/clients/ironic.go @@ -136,10 +136,10 @@ func (c IronicClient) GetNodes() ([]IronicNode, error) { //////////////////////////////////////////////////////////////////////////////// // OpenStack is being inconsistent with itself again -//For fields that are sometimes missing, sometimes an integer, sometimes a string. +// For fields that are sometimes missing, sometimes an integer, sometimes a string. type veryFlexibleUint64 uint64 -//UnmarshalJSON implements the json.Unmarshaler interface. +// UnmarshalJSON implements the json.Unmarshaler interface. func (value *veryFlexibleUint64) UnmarshalJSON(buf []byte) error { if string(buf) == "null" { *value = 0 diff --git a/pkg/netbox/netbox.go b/pkg/netbox/netbox.go index d3640a2..d3b353c 100644 --- a/pkg/netbox/netbox.go +++ b/pkg/netbox/netbox.go @@ -151,7 +151,7 @@ func (nb *Netbox) Servers(rackID string) ([]models.DeviceWithConfigContext, erro } -//DevicesByRegion retrieves devices by region, manufacturer and status +// DevicesByRegion retrieves devices by region, manufacturer and status func (nb *Netbox) DevicesByRegion(query, manufacturer, region, status string) (res []models.DeviceWithConfigContext, err error) { res = make([]models.DeviceWithConfigContext, 0) params := dcim.NewDcimDevicesListParams() @@ -183,7 +183,7 @@ func (nb *Netbox) DevicesByRegion(query, manufacturer, region, status string) (r return res, err } -//DevicesByRegion retrieves devices by region, manufacturer and status +// DevicesByRegion retrieves devices by region, manufacturer and status func (nb *Netbox) DevicesByParams(params dcim.DcimDevicesListParams) (res []models.DeviceWithConfigContext, err error) { res = make([]models.DeviceWithConfigContext, 0) limit := int64(100) @@ -211,7 +211,7 @@ func (nb *Netbox) DevicesByParams(params dcim.DcimDevicesListParams) (res []mode return res, err } -//DevicesByRegion retrieves devices by region, manufacturer and status +// DevicesByRegion retrieves devices by region, manufacturer and status func (nb *Netbox) DeviceByParams(params dcim.DcimDevicesListParams) (res models.DeviceWithConfigContext, err error) { limit := int64(1) params.WithLimit(&limit) @@ -229,7 +229,7 @@ func (nb *Netbox) DeviceByParams(params dcim.DcimDevicesListParams) (res models. return res, err } -//VMsByTag retrieves devices by region, manufacturer and status +// VMsByTag retrieves devices by region, manufacturer and status func (nb *Netbox) VMsByParams(params virtualization.VirtualizationVirtualMachinesListParams) (res []models.VirtualMachineWithConfigContext, err error) { res = make([]models.VirtualMachineWithConfigContext, 0) params.WithTimeout(30 * time.Second) @@ -256,7 +256,7 @@ func (nb *Netbox) VMsByParams(params virtualization.VirtualizationVirtualMachine return res, err } -//VMsByTag retrieves devices by region, manufacturer and status +// VMsByTag retrieves devices by region, manufacturer and status func (nb *Netbox) VMsByTag(query, status, tag string) (res []models.VirtualMachineWithConfigContext, err error) { res = make([]models.VirtualMachineWithConfigContext, 0) params := virtualization.NewVirtualizationVirtualMachinesListParams() diff --git a/pkg/util/util.go b/pkg/util/util.go index c3aa52d..353e3d1 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -46,16 +46,16 @@ var DefaultBackoff = wait.Backoff{ // write. Callers should preserve previous executions if they wish to retry changes. It performs an // exponential backoff. // -// var pod *api.Pod -// err := RetryOnConflict(DefaultBackoff, func() (err error) { -// pod, err = c.Pods("mynamespace").UpdateStatus(podStatus) -// return -// }) -// if err != nil { -// // may be conflict if max retries were hit -// return err -// } -// ... +// var pod *api.Pod +// err := RetryOnConflict(DefaultBackoff, func() (err error) { +// pod, err = c.Pods("mynamespace").UpdateStatus(podStatus) +// return +// }) +// if err != nil { +// // may be conflict if max retries were hit +// return err +// } +// ... // // TODO: Make Backoff an interface? func RetryOnConflict(backoff wait.Backoff, fn func() error) error {