mirror of
https://github.com/luxfi/kms.git
synced 2026-07-27 03:38:31 +00:00
ghcr.io/luxfi/kms-operator has had no new image since v1.12.3. The Build KMS
Operator workflow failed on every tag since (v1.12.4 … v1.12.7) while its
sibling Build KMS succeeded on the same tag, so the tags looked published.
Dockerfile.operator:27 builds with -mod=vendor, and vendor/ had drifted from
go.mod in both directions:
- go.opentelemetry.io/otel/{metric,trace}: in vendor/modules.txt, not in go.mod
- github.com/luxfi/{crypto,geth,ids,keys,zap,address,age,cache,constants,
container,formatting,math,go-bip32,go-bip39}: in go.mod, not marked explicit
`go mod vendor` alone could not fix it — it aborted first on go.sum entries
missing for the k8s packages cmd/kms-operator imports (k8s.io/api/core/v1,
k8s.io/apimachinery/..., k8s.io/client-go/{dynamic,kubernetes,rest}). So:
go mod tidy (adds them, drops now-unused indirects) then go mod vendor.
Verified by stash control:
operator, -mod=vendor: rc=1 -> rc=0 ("inconsistent vendoring" 1 -> 0)
server, -mod=vendor: rc=1 -> rc=1 (unchanged)
The server's vendor build was already broken and stays broken, for an unrelated
reason: blst.h has never been vendored (confirmed absent from HEAD's tree, so it
could not have worked before either) — go mod vendor does not copy cgo headers
that live outside the package dir. It is not a regression and does not affect
CI: the server's Dockerfile builds with GOFLAGS=-mod=mod after `rm -f go.sum &&
go mod download`, i.e. from the module cache, never from vendor/. The operator
is the only -mod=vendor consumer, which is exactly why it was the only failure.
Co-authored-by: Hanzo Dev <dev@hanzo.ai>
86 lines
2.1 KiB
Go
86 lines
2.1 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package attribute // import "go.opentelemetry.io/otel/attribute"
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// KeyValue holds a key and value pair.
|
|
type KeyValue struct {
|
|
Key Key
|
|
Value Value
|
|
}
|
|
|
|
// Valid reports whether kv is a valid OpenTelemetry attribute.
|
|
func (kv KeyValue) Valid() bool {
|
|
return kv.Key.Defined()
|
|
}
|
|
|
|
// Bool creates a KeyValue with a BOOL Value type.
|
|
func Bool(k string, v bool) KeyValue {
|
|
return Key(k).Bool(v)
|
|
}
|
|
|
|
// BoolSlice creates a KeyValue with a BOOLSLICE Value type.
|
|
func BoolSlice(k string, v []bool) KeyValue {
|
|
return Key(k).BoolSlice(v)
|
|
}
|
|
|
|
// Int creates a KeyValue with an INT64 Value type.
|
|
func Int(k string, v int) KeyValue {
|
|
return Key(k).Int(v)
|
|
}
|
|
|
|
// IntSlice creates a KeyValue with an INT64SLICE Value type.
|
|
func IntSlice(k string, v []int) KeyValue {
|
|
return Key(k).IntSlice(v)
|
|
}
|
|
|
|
// Int64 creates a KeyValue with an INT64 Value type.
|
|
func Int64(k string, v int64) KeyValue {
|
|
return Key(k).Int64(v)
|
|
}
|
|
|
|
// Int64Slice creates a KeyValue with an INT64SLICE Value type.
|
|
func Int64Slice(k string, v []int64) KeyValue {
|
|
return Key(k).Int64Slice(v)
|
|
}
|
|
|
|
// Float64 creates a KeyValue with a FLOAT64 Value type.
|
|
func Float64(k string, v float64) KeyValue {
|
|
return Key(k).Float64(v)
|
|
}
|
|
|
|
// Float64Slice creates a KeyValue with a FLOAT64SLICE Value type.
|
|
func Float64Slice(k string, v []float64) KeyValue {
|
|
return Key(k).Float64Slice(v)
|
|
}
|
|
|
|
// String creates a KeyValue with a STRING Value type.
|
|
func String(k, v string) KeyValue {
|
|
return Key(k).String(v)
|
|
}
|
|
|
|
// StringSlice creates a KeyValue with a STRINGSLICE Value type.
|
|
func StringSlice(k string, v []string) KeyValue {
|
|
return Key(k).StringSlice(v)
|
|
}
|
|
|
|
// ByteSlice creates a KeyValue with a BYTESLICE Value type.
|
|
func ByteSlice(k string, v []byte) KeyValue {
|
|
return Key(k).ByteSlice(v)
|
|
}
|
|
|
|
// Slice creates a KeyValue with a SLICE Value type.
|
|
func Slice(k string, v ...Value) KeyValue {
|
|
return Key(k).Slice(v...)
|
|
}
|
|
|
|
// Stringer creates a new key-value pair with a passed name and a string
|
|
// value generated by the passed Stringer interface.
|
|
func Stringer(k string, v fmt.Stringer) KeyValue {
|
|
return Key(k).String(v.String())
|
|
}
|