From a2df0dc9bad3d2f25343a7827b246a84142b108f Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Tue, 9 Jul 2024 09:04:50 -0400 Subject: [PATCH 1/5] set build ID, update melange, use apko auth Signed-off-by: Jason Hall --- go.mod | 52 ++++++++-------- go.sum | 112 +++++++++++++++++------------------ pkg/cli/apk.go | 16 +---- pkg/cli/build.go | 31 +++++----- pkg/cli/bundle.go | 1 + pkg/private/bundle/bundle.go | 33 +++-------- 6 files changed, 111 insertions(+), 134 deletions(-) diff --git a/go.mod b/go.mod index f0cd4a6f..9a2cc712 100644 --- a/go.mod +++ b/go.mod @@ -7,9 +7,9 @@ replace github.com/mholt/archiver/v3 => github.com/anchore/archiver/v3 v3.5.2 require ( chainguard.dev/apko v0.16.1-0.20240705153345-0f83208787ca - chainguard.dev/melange v0.10.3 + chainguard.dev/melange v0.10.4-0.20240708223758-bedb1f812be0 cloud.google.com/go/storage v1.43.0 - github.com/adrg/xdg v0.4.0 + github.com/adrg/xdg v0.5.0 github.com/anchore/grype v0.79.2 github.com/anchore/stereoscope v0.0.3-0.20240624202600-753b5576fe42 github.com/anchore/syft v1.8.0 @@ -31,7 +31,7 @@ require ( github.com/go-git/go-billy/v5 v5.5.0 github.com/go-git/go-git/v5 v5.12.0 github.com/google/go-cmp v0.6.0 - github.com/google/go-containerregistry v0.19.2 + github.com/google/go-containerregistry v0.20.0 github.com/google/go-github/v58 v58.0.0 github.com/google/osv-scanner v1.8.1 github.com/google/uuid v1.6.0 @@ -54,7 +54,7 @@ require ( go.opentelemetry.io/otel v1.28.0 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0 go.opentelemetry.io/otel/sdk v1.28.0 - golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 + golang.org/x/exp v0.0.0-20240707233637-46b078467d37 golang.org/x/mod v0.19.0 golang.org/x/oauth2 v0.21.0 golang.org/x/sync v0.7.0 @@ -66,7 +66,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.30.2 k8s.io/apimachinery v0.30.2 - k8s.io/client-go v0.30.2 + k8s.io/client-go v0.29.2 knative.dev/pkg v0.0.0-20240516194901-4a9c38d654dc sigs.k8s.io/release-utils v0.8.3 ) @@ -75,8 +75,8 @@ require ( cloud.google.com/go v0.115.0 // indirect cloud.google.com/go/auth v0.6.1 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect - cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.9 // indirect + cloud.google.com/go/compute/metadata v0.4.0 // indirect + cloud.google.com/go/iam v1.1.10 // indirect dagger.io/dagger v0.11.9 // indirect dario.cat/mergo v1.0.0 // indirect github.com/99designs/gqlgen v0.17.49 // indirect @@ -149,7 +149,7 @@ require ( github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/elliotchance/phpserialize v1.4.0 // indirect - github.com/emicklei/go-restful/v3 v3.12.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/felixge/fgprof v0.9.3 // indirect @@ -218,7 +218,7 @@ require ( github.com/knqyf263/go-deb-version v0.0.0-20190517075300-09fca494f03d // indirect github.com/knqyf263/go-rpmdb v0.1.1 // indirect github.com/kubescape/go-git-url v0.0.30 // indirect - github.com/letsencrypt/boulder v0.0.0-20240627203931-55c274d132fb // indirect + github.com/letsencrypt/boulder v0.0.0-20240708143348-9c88e49fb1a6 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/masahiro331/go-mvn-version v0.0.0-20210429150710-d3157d602a08 // indirect @@ -309,28 +309,28 @@ require ( gitlab.alpinelinux.org/alpine/go v0.10.1 // indirect go.mongodb.org/mongo-driver v1.16.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240627172748-f3a2d96022c0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 // indirect - go.opentelemetry.io/otel/log v0.3.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240709073659-82184aa44bb8 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.4.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 // indirect + go.opentelemetry.io/otel/log v0.4.0 // indirect go.opentelemetry.io/otel/metric v1.28.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.3.0 // indirect + go.opentelemetry.io/otel/sdk/log v0.4.0 // indirect go.opentelemetry.io/otel/trace v1.28.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/crypto v0.25.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/sys v0.22.0 // indirect - golang.org/x/tools v0.22.0 // indirect + golang.org/x/tools v0.23.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect - google.golang.org/genproto v0.0.0-20240624140628-dc46fd24d27d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240624140628-dc46fd24d27d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d // indirect - google.golang.org/grpc v1.64.0 // indirect + google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240708141625-4ad9e859172b // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect + google.golang.org/grpc v1.65.0 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect @@ -338,7 +338,7 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/gorm v1.25.10 // indirect k8s.io/klog/v2 v2.120.1 // indirect - k8s.io/kube-openapi v0.0.0-20240620174524-b456828f718b // indirect + k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f // indirect k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect modernc.org/libc v1.52.1 // indirect modernc.org/mathutil v1.6.0 // indirect diff --git a/go.sum b/go.sum index befdfa10..465af829 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ chainguard.dev/apko v0.16.1-0.20240705153345-0f83208787ca h1:zzaYfCgF5211XPg1BxYB26/lQFvqHM2qVJHIk2Rwo7w= chainguard.dev/apko v0.16.1-0.20240705153345-0f83208787ca/go.mod h1:Nt08FmnCz5PX+p3l0ZtGinn1VqPqOwTNxq7nYGRVqbM= -chainguard.dev/melange v0.10.3 h1:5NIyG84drHbXxUBFRN8jE4VyGbadz+36wLkgnXZWVU0= -chainguard.dev/melange v0.10.3/go.mod h1:m8khjFfS2hK9YohFp7EZ3aqpkR1zLfCpFIPOE30tTfU= +chainguard.dev/melange v0.10.4-0.20240708223758-bedb1f812be0 h1:Ath5N3vLewsVErQuRlneL2sTxFfuEmM+bWxvl37sEuM= +chainguard.dev/melange v0.10.4-0.20240708223758-bedb1f812be0/go.mod h1:sJ5jI1NlD/8uqepNK1Bn7ShT/iORZAoK3N7o2cZnWS4= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -77,8 +77,8 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.4.0 h1:vHzJCWaM4g8XIcm8kopr3XmDA4Gy/lblD3EhhSux05c= +cloud.google.com/go/compute/metadata v0.4.0/go.mod h1:SIQh1Kkb4ZJ8zJ874fqVkslA29PRXuleyj6vOzlbK7M= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= @@ -117,14 +117,14 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97 cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v1.1.9 h1:oSkYLVtVme29uGYrOcKcvJRht7cHJpYD09GM9JaR0TE= -cloud.google.com/go/iam v1.1.9/go.mod h1:Nt1eDWNYH9nGQg3d/mY7U1hvfGmsaG9o/kLGoLoLXjQ= +cloud.google.com/go/iam v1.1.10 h1:ZSAr64oEhQSClwBL670MsJAW5/RLiC6kfw3Bqmd5ZDI= +cloud.google.com/go/iam v1.1.10/go.mod h1:iEgMq62sg8zx446GCaijmA2Miwg5o3UbO+nI47WHJps= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= -cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= -cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= +cloud.google.com/go/longrunning v0.5.9 h1:haH9pAuXdPAMqHvzX0zlWQigXT7B0+CL4/2nXXdBo5k= +cloud.google.com/go/longrunning v0.5.9/go.mod h1:HD+0l9/OOW0za6UWdKJtXoFAX/BGg/3Wj8p10NeWF7c= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -240,8 +240,8 @@ github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0k github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/acobaugh/osrelease v0.1.0 h1:Yb59HQDGGNhCj4suHaFQQfBps5wyoKLSSX/J/+UifRE= github.com/acobaugh/osrelease v0.1.0/go.mod h1:4bFEs0MtgHNHBrmHCt67gNisnabCRAlzdVasCEGHTWY= -github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= -github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= +github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY= +github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -325,8 +325,8 @@ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chainguard-dev/clog v1.4.0 h1:x0YyEppnUX+dxQAnfGNYdQEKNDSRCAwC08f/1eIxJ9E= github.com/chainguard-dev/clog v1.4.0/go.mod h1:cV516KZWqYc/phZsCNwF36u/KMGS+Gj5Uqeb8Hlp95Y= github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ= @@ -448,8 +448,8 @@ github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcej github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= -github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= -github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -615,8 +615,8 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-containerregistry v0.19.2 h1:TannFKE1QSajsP6hPWb5oJNgKe1IKjHukIKDUmvsV6w= -github.com/google/go-containerregistry v0.19.2/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= +github.com/google/go-containerregistry v0.20.0 h1:wRqHpOeVh3DnenOrPy9xDOLdnLatiGuuNRVelR2gSbg= +github.com/google/go-containerregistry v0.20.0/go.mod h1:YCMFNQeeXeLF+dnhhWkqDItx/JSkH01j1Kis4PsjzFI= github.com/google/go-github/v54 v54.0.0 h1:OZdXwow4EAD5jEo5qg+dGFH2DpkyZvVsAehjvJuUL/c= github.com/google/go-github/v54 v54.0.0/go.mod h1:Sw1LXWHhXRZtzJ9LI5fyJg9wbQzYvFhW8W5P2yaAQ7s= github.com/google/go-github/v58 v58.0.0 h1:Una7GGERlF/37XfkPwpzYJe0Vp4dt2k1kCjlxwjIvzw= @@ -814,8 +814,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kubescape/go-git-url v0.0.30 h1:PIbg86ae0ftee/p/Tu/6CA1ju6VoJ51G3sQWNHOm6wg= github.com/kubescape/go-git-url v0.0.30/go.mod h1:3ddc1HEflms1vMhD9owt/3FBES070UaYTUarcjx8jDk= -github.com/letsencrypt/boulder v0.0.0-20240627203931-55c274d132fb h1:mN3f/ItB4IJXSpV3x2gzrS7pCcFgw5fKLynVGRo05Oc= -github.com/letsencrypt/boulder v0.0.0-20240627203931-55c274d132fb/go.mod h1:DNWt6HdzbAMkuzimBEe3fsBBjS3IPGVcUoDB0JQzy/k= +github.com/letsencrypt/boulder v0.0.0-20240708143348-9c88e49fb1a6 h1:NHOb3rfprg+UqyJdip8ZI+ckw4aRXGqwbcV/jwjHj7w= +github.com/letsencrypt/boulder v0.0.0-20240708143348-9c88e49fb1a6/go.mod h1:LRG6ABiGQFOhELqHre+3USN0XbThr1SSDptlFNTUNck= github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381 h1:bqDmpDG49ZRnB5PcgP0RXtQvnMSgIF14M7CBd2shtXs= github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= @@ -1190,32 +1190,32 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240627172748-f3a2d96022c0 h1:gPFA3sQVcOU1vZgpbZeEbLxwq66GpZ2ThpGUefjVhLA= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240627172748-f3a2d96022c0/go.mod h1:+j2/S7k7t2jiA3PrDSMVIqT1+RWBOJEWOV4AWvRw5qU= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0 h1:ccBrA8nCY5mM0y5uO7FT0ze4S0TuFcWdDB2FxGMTjkI= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0/go.mod h1:/9pb6634zi2Lk8LYg9Q0X8Ar6jka4dkFOylBLbVQPCE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0 h1:QY7/0NeRPKlzusf40ZE4t1VlMKbqSNT7cJRYzWuja0s= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0/go.mod h1:HVkSiDhTM9BoUJU8qE6j2eSWLLXvi1USXjyd2BXT8PY= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240709073659-82184aa44bb8 h1:aBQ+PceJa8k6jpjr+E6TSOJxISLFXF8rbALAnKx+IhA= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240709073659-82184aa44bb8/go.mod h1:wg1IdCvTM9S+8Z3cy1150R1xO/YTQqEeJ4RO9bt9rHI= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.4.0 h1:zBPZAISA9NOc5cE8zydqDiS0itvg/P/0Hn9m72a5gvM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.4.0/go.mod h1:gcj2fFjEsqpV3fXuzAA+0Ze1p2/4MJ4T7d77AmkvueQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0 h1:R3X6ZXmNPRR8ul6i3WgFURCHzaXjHdm0karRG/+dj3s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0/go.mod h1:QWFXnDavXWwMx2EEcZsf3yxgEKAqsxQ+Syjp+seyInw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 h1:j9+03ymgYhPKmeXGk5Zu+cIZOlVzd9Zv7QIiyItjFBU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0/go.mod h1:Y5+XiUG4Emn1hTfciPzGPJaSI+RpDts6BnCIir0SLqk= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0 h1:EVSnY9JbEEW92bEkIYOVMw4q1WJxIAGoFTrtYOzWuRQ= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0/go.mod h1:Ea1N1QQryNXpCD0I1fdLibBAIpQuBkznMmkdKrapk1Y= -go.opentelemetry.io/otel/log v0.3.0 h1:kJRFkpUFYtny37NQzL386WbznUByZx186DpEMKhEGZs= -go.opentelemetry.io/otel/log v0.3.0/go.mod h1:ziCwqZr9soYDwGNbIL+6kAvQC+ANvjgG367HVcyR/ys= +go.opentelemetry.io/otel/log v0.4.0 h1:/vZ+3Utqh18e8TPjuc3ecg284078KWrR8BRz+PQAj3o= +go.opentelemetry.io/otel/log v0.4.0/go.mod h1:DhGnQvky7pHy82MIRV43iXh3FlKN8UUKftn0KbLOq6I= go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= -go.opentelemetry.io/otel/sdk/log v0.3.0 h1:GEjJ8iftz2l+XO1GF2856r7yYVh74URiF9JMcAacr5U= -go.opentelemetry.io/otel/sdk/log v0.3.0/go.mod h1:BwCxtmux6ACLuys1wlbc0+vGBd+xytjmjajwqqIul2g= +go.opentelemetry.io/otel/sdk/log v0.4.0 h1:1mMI22L82zLqf6KtkjrRy5BbagOTWdJsqMY/HSqILAA= +go.opentelemetry.io/otel/sdk/log v0.4.0/go.mod h1:AYJ9FVF0hNOgAVzUG/ybg/QttnXhUePWAupmCqtdESo= go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -1243,8 +1243,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1255,8 +1255,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= -golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/exp v0.0.0-20240707233637-46b078467d37 h1:uLDX+AfeFCct3a2C7uIWBKMJIR3CJMhcgfrUAqjRK6w= +golang.org/x/exp v0.0.0-20240707233637-46b078467d37/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1347,8 +1347,8 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1575,8 +1575,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1751,12 +1751,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20240624140628-dc46fd24d27d h1:PksQg4dV6Sem3/HkBX+Ltq8T0ke0PKIRBNBatoDTVls= -google.golang.org/genproto v0.0.0-20240624140628-dc46fd24d27d/go.mod h1:s7iA721uChleev562UJO2OYB0PPT9CMFjV+Ce7VJH5M= -google.golang.org/genproto/googleapis/api v0.0.0-20240624140628-dc46fd24d27d h1:Aqf0fiIdUQEj0Gn9mKFFXoQfTTEaNopWpfVyYADxiSg= -google.golang.org/genproto/googleapis/api v0.0.0-20240624140628-dc46fd24d27d/go.mod h1:Od4k8V1LQSizPRUK4OzZ7TBE/20k+jPczUDAEyvn69Y= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d h1:k3zyW3BYYR30e8v3x0bTDdE9vpYFjZHK+HcyqkrppWk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b h1:dSTjko30weBaMj3eERKc0ZVXW4GudCswM3m+P++ukU0= +google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY= +google.golang.org/genproto/googleapis/api v0.0.0-20240708141625-4ad9e859172b h1:y/kpOWeX2pWERnbsvh/hF+Zmo69wVmjyZhstreXQQeA= +google.golang.org/genproto/googleapis/api v0.0.0-20240708141625-4ad9e859172b/go.mod h1:mw8MG/Qz5wfgYr6VqVCiZcHe/GJEfI+oGGDCohaVgB0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1793,8 +1793,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1860,12 +1860,12 @@ k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI= k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI= k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= -k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50= -k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs= +k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= +k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240620174524-b456828f718b h1:Q9xmGWBvOGd8UJyccgpYlLosk/JlfP3xQLNkQlHJeXw= -k8s.io/kube-openapi v0.0.0-20240620174524-b456828f718b/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc= +k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc= +k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc= k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= knative.dev/pkg v0.0.0-20240516194901-4a9c38d654dc h1:aiFq7jcBYaZlPxJkbJSNOg9Azcbgfu8dCrh2a/pkdN0= diff --git a/pkg/cli/apk.go b/pkg/cli/apk.go index 7e999879..76f508d0 100644 --- a/pkg/cli/apk.go +++ b/pkg/cli/apk.go @@ -16,6 +16,7 @@ import ( "time" "chainguard.dev/apko/pkg/apk/apk" + "chainguard.dev/apko/pkg/apk/auth" "cloud.google.com/go/storage" "github.com/spf13/cobra" "golang.org/x/exp/maps" @@ -88,7 +89,7 @@ func cmdCp() *cobra.Command { if err != nil { return err } - addAuth(req) + auth.DefaultAuthenticators.AddAuth(ctx, req) resp, err := http.DefaultClient.Do(req) if err != nil { return err @@ -295,7 +296,7 @@ func fetchAPKIndex(ctx context.Context, indexURL string) (*apk.APKIndex, string, if err != nil { return nil, "", fmt.Errorf("GET %q: %w", u.Redacted(), err) } - addAuth(req) + auth.DefaultAuthenticators.AddAuth(ctx, req) resp, err := http.DefaultClient.Do(req) //nolint:bodyclose if err != nil { return nil, "", fmt.Errorf("GET %q: %w", u.Redacted(), err) @@ -315,17 +316,6 @@ func fetchAPKIndex(ctx context.Context, indexURL string) (*apk.APKIndex, string, return index, arch, nil } -func addAuth(req *http.Request) { - env := os.Getenv("HTTP_AUTH") - parts := strings.Split(env, ":") - if len(parts) != 4 || parts[0] != "basic" { - return - } - if req.URL.Host == parts[1] { - req.SetBasicAuth(parts[2], parts[3]) - } -} - func onlyLatest(packages []*apk.Package) []*apk.Package { // by package highest := map[string]*apk.Package{} diff --git a/pkg/cli/build.go b/pkg/cli/build.go index d87075fd..d04cf1d3 100644 --- a/pkg/cli/build.go +++ b/pkg/cli/build.go @@ -22,10 +22,19 @@ import ( "sync" "time" + "chainguard.dev/apko/pkg/apk/apk" + "chainguard.dev/apko/pkg/apk/auth" + "chainguard.dev/apko/pkg/build/types" + "chainguard.dev/melange/pkg/build" + "chainguard.dev/melange/pkg/container" + "chainguard.dev/melange/pkg/container/docker" + "chainguard.dev/melange/pkg/index" + "chainguard.dev/melange/pkg/sign" "cloud.google.com/go/storage" charmlog "github.com/charmbracelet/log" "github.com/dominikbraun/graph" "github.com/google/go-containerregistry/pkg/name" + "github.com/google/uuid" "github.com/spf13/cobra" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/stdout/stdouttrace" @@ -44,25 +53,19 @@ import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd/api" + "github.com/chainguard-dev/clog" "github.com/wolfi-dev/wolfictl/pkg/dag" "github.com/wolfi-dev/wolfictl/pkg/private/bundle" "github.com/wolfi-dev/wolfictl/pkg/tar" - - "chainguard.dev/apko/pkg/apk/apk" - "chainguard.dev/apko/pkg/build/types" - "chainguard.dev/melange/pkg/build" - "chainguard.dev/melange/pkg/container" - "chainguard.dev/melange/pkg/container/docker" - "chainguard.dev/melange/pkg/index" - "chainguard.dev/melange/pkg/sign" - "github.com/chainguard-dev/clog" ) func cmdBuild() *cobra.Command { var jobs int var traceFile string - cfg := Global{} + cfg := Global{ + BuildID: uuid.New(), + } // TODO: buildworld bool (build deps vs get them from package repo) // TODO: builddownstream bool (build things that depend on listed packages) @@ -158,7 +161,6 @@ func cmdBuild() *cobra.Command { cmd.Flags().StringVar(&cfg.K8sNamespace, "k8s-namespace", "default", "namespace to deploy pods into for builds.") cmd.Flags().StringVar(&cfg.MachineFamily, "machine-family", "", "machine family for amd64 builds") cmd.Flags().StringVar(&cfg.ServiceAccount, "service-account", "default", "service-account to run pods as.") - cmd.Flags().BoolVar(&cfg.GVisor, "gvisor", false, "enable gVisor (GKE Sandbox) for builds") return cmd } @@ -292,7 +294,7 @@ func fetchIndex(ctx context.Context, dst, arch string) (map[string]struct{}, err if err != nil { return nil, err } - addAuth(req) + auth.DefaultAuthenticators.AddAuth(ctx, req) resp, err := http.DefaultClient.Do(req) if err != nil { @@ -668,6 +670,8 @@ func buildAll(ctx context.Context, cfg *Global, args []string) error { } type Global struct { + BuildID uuid.UUID + dryrun bool jobch chan struct{} @@ -714,7 +718,6 @@ type Global struct { K8sNamespace string ServiceAccount string MachineFamily string - GVisor bool ProjectID string ClusterLocation string @@ -951,7 +954,7 @@ func (t *task) buildBundleArch(ctx context.Context, arch string) (*bundleResult, log := clog.FromContext(ctx) - pod, err := bundle.Podspec(*t.bundle, t.ref, arch, t.cfg.MachineFamily, t.cfg.ServiceAccount, t.cfg.K8sNamespace, t.cfg.GVisor) + pod, err := bundle.Podspec(*t.bundle, t.ref, arch, t.cfg.MachineFamily, t.cfg.ServiceAccount, t.cfg.K8sNamespace) if err != nil { return nil, fmt.Errorf("creating podspec for %s: %w", t.pkg, err) } diff --git a/pkg/cli/bundle.go b/pkg/cli/bundle.go index 283b1b9d..4976e416 100644 --- a/pkg/cli/bundle.go +++ b/pkg/cli/bundle.go @@ -292,6 +292,7 @@ func bundleAll(ctx context.Context, cfg *Global, bcfg *bundleConfig, args []stri } bundleTasks = append(bundleTasks, &bundle.Task{ + BuildID: cfg.BuildID, Package: pkg, Version: t.config.Package.Version, Epoch: t.config.Package.Epoch, diff --git a/pkg/private/bundle/bundle.go b/pkg/private/bundle/bundle.go index 958a0c12..8f3ebd09 100644 --- a/pkg/private/bundle/bundle.go +++ b/pkg/private/bundle/bundle.go @@ -28,6 +28,7 @@ import ( "github.com/google/go-containerregistry/pkg/v1/remote" "github.com/google/go-containerregistry/pkg/v1/tarball" ggcrtypes "github.com/google/go-containerregistry/pkg/v1/types" + "github.com/google/uuid" "golang.org/x/exp/maps" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" @@ -349,7 +350,7 @@ func escapeRFC1123(s string) string { // Podspec returns bytes of yaml representing a podspec. // This is a terrible API that we should change. -func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, gvisor bool) (*corev1.Pod, error) { +func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string) (*corev1.Pod, error) { goarch := types.ParseArchitecture(arch).String() // Set some sane default resource requests if none are specified by flag or config. @@ -408,21 +409,6 @@ func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, gvisor "kubernetes.io/arch": goarch, } - if gvisor { - // Override the default, so we dont consider normal bundle-builder - t = []corev1.Toleration{{ - Effect: "NoSchedule", - Key: "chainguard.dev/runner", - Operator: "Equal", - Value: "gvisor-builder", - }, { - Effect: "NoSchedule", - Key: "sandbox.gke.io/runtime", - Operator: "Equal", - Value: "gvisor", - }} - } - mf := mFamily if goarch == "arm64" { mf = "t2a" @@ -444,10 +430,11 @@ func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, gvisor GenerateName: fmt.Sprintf("%s-%s-", escapeRFC1123(task.Package), goarch), Namespace: ns, Labels: map[string]string{ - "kubernetes.io/arch": goarch, - "app.kubernetes.io/component": task.Package, - "melange.chainguard.dev/arch": goarch, - "melange.chainguard.dev/package": task.Package, + "kubernetes.io/arch": goarch, + "app.kubernetes.io/component": task.Package, + "melange.chainguard.dev/arch": goarch, + "melange.chainguard.dev/package": task.Package, + "melange.chainguard.dev/build-id": task.BuildID.String(), }, Annotations: map[string]string{}, }, @@ -497,11 +484,6 @@ func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, gvisor }, } - if gvisor { - c := "gvisor" - pod.Spec.RuntimeClassName = &c - } - if mf != "" { // https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#custom_machine_family pod.Spec.Affinity = &corev1.Affinity{ @@ -566,6 +548,7 @@ func tarAddFS(tw *tar.Writer, fsys fs.FS) error { } type Task struct { + BuildID uuid.UUID `json:"buildID"` Package string `json:"package"` Version string `json:"version"` Epoch uint64 `json:"epoch"` From 7c4b9fe50334fbd803fd17009f683ad3f1ea3a72 Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Tue, 9 Jul 2024 09:19:36 -0400 Subject: [PATCH 2/5] support -a to pass arbitrary annotations Signed-off-by: Jason Hall --- pkg/cli/build.go | 4 +++- pkg/private/bundle/bundle.go | 13 ++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pkg/cli/build.go b/pkg/cli/build.go index d04cf1d3..75e4d0c5 100644 --- a/pkg/cli/build.go +++ b/pkg/cli/build.go @@ -161,6 +161,7 @@ func cmdBuild() *cobra.Command { cmd.Flags().StringVar(&cfg.K8sNamespace, "k8s-namespace", "default", "namespace to deploy pods into for builds.") cmd.Flags().StringVar(&cfg.MachineFamily, "machine-family", "", "machine family for amd64 builds") cmd.Flags().StringVar(&cfg.ServiceAccount, "service-account", "default", "service-account to run pods as.") + cmd.Flags().StringSliceVarP(&cfg.Annotations, "annotations", "a", []string{}, "key=value pairs to add to the pod spec annotations.") return cmd } @@ -718,6 +719,7 @@ type Global struct { K8sNamespace string ServiceAccount string MachineFamily string + Annotations []string ProjectID string ClusterLocation string @@ -954,7 +956,7 @@ func (t *task) buildBundleArch(ctx context.Context, arch string) (*bundleResult, log := clog.FromContext(ctx) - pod, err := bundle.Podspec(*t.bundle, t.ref, arch, t.cfg.MachineFamily, t.cfg.ServiceAccount, t.cfg.K8sNamespace) + pod, err := bundle.Podspec(*t.bundle, t.ref, arch, t.cfg.MachineFamily, t.cfg.ServiceAccount, t.cfg.K8sNamespace, t.cfg.Annotations) if err != nil { return nil, fmt.Errorf("creating podspec for %s: %w", t.pkg, err) } diff --git a/pkg/private/bundle/bundle.go b/pkg/private/bundle/bundle.go index 8f3ebd09..e2c70e6e 100644 --- a/pkg/private/bundle/bundle.go +++ b/pkg/private/bundle/bundle.go @@ -350,7 +350,7 @@ func escapeRFC1123(s string) string { // Podspec returns bytes of yaml representing a podspec. // This is a terrible API that we should change. -func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string) (*corev1.Pod, error) { +func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, anns []string) (*corev1.Pod, error) { goarch := types.ParseArchitecture(arch).String() // Set some sane default resource requests if none are specified by flag or config. @@ -484,6 +484,17 @@ func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string) (*core }, } + for _, a := range anns { + k, v, ok := strings.Cut(a, "=") + if !ok { + return nil, fmt.Errorf("annotation %q should be in the form 'key=value'", a) + } + if _, ok := pod.Annotations[k]; ok { + return nil, fmt.Errorf("annotation %q already set", k) + } + pod.Annotations["melange.chainguard.dev/"+k] = v + } + if mf != "" { // https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#custom_machine_family pod.Spec.Affinity = &corev1.Affinity{ From cdafadcc82e1f124b69694b3f128d0bc3d29f4e9 Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Tue, 9 Jul 2024 13:08:33 -0400 Subject: [PATCH 3/5] simplify, use map[string]string Signed-off-by: Jason Hall --- pkg/cli/build.go | 14 ++++++++++++-- pkg/private/bundle/bundle.go | 8 ++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/pkg/cli/build.go b/pkg/cli/build.go index 75e4d0c5..1bba869d 100644 --- a/pkg/cli/build.go +++ b/pkg/cli/build.go @@ -62,6 +62,7 @@ import ( func cmdBuild() *cobra.Command { var jobs int var traceFile string + var anns []string // string list annotations cfg := Global{ BuildID: uuid.New(), @@ -75,6 +76,15 @@ func cmdBuild() *cobra.Command { RunE: func(cmd *cobra.Command, args []string) error { ctx := cmd.Context() + cfg.Annotations = map[string]string{} + for _, ann := range anns { + k, v, ok := strings.Cut(ann, "=") + if !ok { + return fmt.Errorf("invalid annotation: %q", ann) + } + cfg.Annotations[k] = v + } + if traceFile != "" { w, err := os.Create(traceFile) if err != nil { @@ -161,7 +171,7 @@ func cmdBuild() *cobra.Command { cmd.Flags().StringVar(&cfg.K8sNamespace, "k8s-namespace", "default", "namespace to deploy pods into for builds.") cmd.Flags().StringVar(&cfg.MachineFamily, "machine-family", "", "machine family for amd64 builds") cmd.Flags().StringVar(&cfg.ServiceAccount, "service-account", "default", "service-account to run pods as.") - cmd.Flags().StringSliceVarP(&cfg.Annotations, "annotations", "a", []string{}, "key=value pairs to add to the pod spec annotations.") + cmd.Flags().StringSliceVarP(&anns, "annotations", "a", []string{}, "key=value pairs to add to the pod spec annotations.") return cmd } @@ -719,7 +729,7 @@ type Global struct { K8sNamespace string ServiceAccount string MachineFamily string - Annotations []string + Annotations map[string]string ProjectID string ClusterLocation string diff --git a/pkg/private/bundle/bundle.go b/pkg/private/bundle/bundle.go index e2c70e6e..fd00500a 100644 --- a/pkg/private/bundle/bundle.go +++ b/pkg/private/bundle/bundle.go @@ -350,7 +350,7 @@ func escapeRFC1123(s string) string { // Podspec returns bytes of yaml representing a podspec. // This is a terrible API that we should change. -func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, anns []string) (*corev1.Pod, error) { +func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, anns map[string]string) (*corev1.Pod, error) { goarch := types.ParseArchitecture(arch).String() // Set some sane default resource requests if none are specified by flag or config. @@ -484,11 +484,7 @@ func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, anns [ }, } - for _, a := range anns { - k, v, ok := strings.Cut(a, "=") - if !ok { - return nil, fmt.Errorf("annotation %q should be in the form 'key=value'", a) - } + for k, v := range anns { if _, ok := pod.Annotations[k]; ok { return nil, fmt.Errorf("annotation %q already set", k) } From 1fbb69ac9a75fa4133dab5e093d46a0510e6e63d Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Tue, 9 Jul 2024 13:17:34 -0400 Subject: [PATCH 4/5] review feedback Signed-off-by: Jason Hall --- pkg/private/bundle/bundle.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/private/bundle/bundle.go b/pkg/private/bundle/bundle.go index fd00500a..cb25710d 100644 --- a/pkg/private/bundle/bundle.go +++ b/pkg/private/bundle/bundle.go @@ -485,10 +485,11 @@ func Podspec(task Task, ref name.Reference, arch, mFamily, sa, ns string, anns m } for k, v := range anns { - if _, ok := pod.Annotations[k]; ok { - return nil, fmt.Errorf("annotation %q already set", k) + kk := "melange.chainguard.dev/" + k + if _, ok := pod.Annotations[kk]; ok { + return nil, fmt.Errorf("annotation %q already set", kk) } - pod.Annotations["melange.chainguard.dev/"+k] = v + pod.Annotations[kk] = v } if mf != "" { From c090db6ef43eef9349261ced18f659be82fb8dcf Mon Sep 17 00:00:00 2001 From: Jason Hall Date: Tue, 9 Jul 2024 13:21:46 -0400 Subject: [PATCH 5/5] document it Signed-off-by: Jason Hall --- pkg/cli/build.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cli/build.go b/pkg/cli/build.go index 1bba869d..29c6fa73 100644 --- a/pkg/cli/build.go +++ b/pkg/cli/build.go @@ -171,7 +171,7 @@ func cmdBuild() *cobra.Command { cmd.Flags().StringVar(&cfg.K8sNamespace, "k8s-namespace", "default", "namespace to deploy pods into for builds.") cmd.Flags().StringVar(&cfg.MachineFamily, "machine-family", "", "machine family for amd64 builds") cmd.Flags().StringVar(&cfg.ServiceAccount, "service-account", "default", "service-account to run pods as.") - cmd.Flags().StringSliceVarP(&anns, "annotations", "a", []string{}, "key=value pairs to add to the pod spec annotations.") + cmd.Flags().StringSliceVarP(&anns, "annotations", "a", []string{}, "key=value pairs to add to the pod spec annotations. The keys will be prefixed with 'melange.chainguard.dev/' on the pod.") return cmd }