summaryrefslogtreecommitdiff
path: root/app-containers
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-02-25 19:25:33 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-02-25 19:25:33 +0000
commit67dbd3ba144944fbf4b466be1b5fa0569b774e6f (patch)
tree721c7f9085992578da57f71ea0c5becb6827cdb4 /app-containers
parentd4653056cc74d97f24bef0d56b4ebe11c53c8b76 (diff)
gentoo auto-resync : 25:02:2025 - 19:25:33
Diffstat (limited to 'app-containers')
-rw-r--r--app-containers/Manifest.gzbin9403 -> 9412 bytes
-rw-r--r--app-containers/docker-registry/Manifest1
-rw-r--r--app-containers/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch398
-rw-r--r--app-containers/k3d/Manifest4
-rw-r--r--app-containers/k3d/k3d-5.7.5.ebuild4
-rw-r--r--app-containers/k3d/k3d-5.8.3.ebuild52
6 files changed, 57 insertions, 402 deletions
diff --git a/app-containers/Manifest.gz b/app-containers/Manifest.gz
index af8845ba5f25..de5aabd9d5c5 100644
--- a/app-containers/Manifest.gz
+++ b/app-containers/Manifest.gz
Binary files differ
diff --git a/app-containers/docker-registry/Manifest b/app-containers/docker-registry/Manifest
index de7e51817329..8f80dfff1f04 100644
--- a/app-containers/docker-registry/Manifest
+++ b/app-containers/docker-registry/Manifest
@@ -1,4 +1,3 @@
-AUX docker-registry-2.7.0-notification-metrics.patch 15565 BLAKE2B 31d3bc9d40c07939aca340d0c9bb516eb5afb9191f5d5d7c92b85f9f6dc8e1d86b659df337565eb09a0d08558ee50e1301734fcfa0449a920fcb332c00452c1a SHA512 a2161e5d2638f5682d70d900aba86cba3ca61ae99f7e325a5691c2cc4e5408f4a543c6204a05c19748494f1145e8468cf27e359ffad624fdac1e710974654e2c
AUX registry.confd 85 BLAKE2B 0997c1ad7ee8fc165a87cfebeea75694487c8d8b62130fb19fd4d9c55cc605754537deaea6e114a9fb28e46eb67bb6ab9d01de0971163acf22f223ca8ec84605 SHA512 7cbd19f545b659e2d295938b320710ae20b3c2222fcb6668216985c6e55bf51647041dec1c33ab7271e464f13001d8095fef9240d3390cff7e65028d3432c4f4
AUX registry.initd 606 BLAKE2B ed8af2651d91be13578edb561c067cfd3e72dfe42a6111be8930d61f233248b7364659a8db5a9800eaa167d76a8b2daf9d121970622de235e61fa0f10ad85174 SHA512 af7780264d068adcd0d6a6768b88ab43c26081b71d1ebd591ca6d175e413cdeee935a6f50d9833775690f0b47daadcc33286f86fb5eb98d2e674b225122aabce
AUX registry.logrotated 89 BLAKE2B c16fab4c6a3c4fd9f48370ae30505408a49e07c2a7ea7fc119717efcd840ad489c92855e27a5546219b3cdeb257642eb65abc2d544859295688925ae2e94ecb3 SHA512 f824b33a1fa38802a8aa79599843b0ea065603799823352e9515c50bfc61c43a03e9eb5327f9c687b8c3864fc633ad1a46bff9e91f4c54a46a09e67d2f6f833b
diff --git a/app-containers/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch b/app-containers/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch
deleted file mode 100644
index 8adf364ce164..000000000000
--- a/app-containers/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch
+++ /dev/null
@@ -1,398 +0,0 @@
-From 7b2292ee20c5d49053cc5262dfbc99ce121b9b74 Mon Sep 17 00:00:00 2001
-From: tifayuki <tifayuki@gmail.com>
-Date: Tue, 13 Feb 2018 13:30:56 -0800
-Subject: [PATCH 1/4] Add notification metrics
-
-It adds notification related prometheus metrics, including:
- - total count for events/success/failure/error
- - total count for notification per each status code
- - gauge of the pending notification queue
-
-Signed-off-by: tifayuki <tifayuki@gmail.com>
----
- metrics/prometheus.go | 3 +++
- notifications/metrics.go | 28 ++++++++++++++++++++++++++++
- 2 files changed, 31 insertions(+)
-
-diff --git a/metrics/prometheus.go b/metrics/prometheus.go
-index b5a532144..91b32b23d 100644
---- a/metrics/prometheus.go
-+++ b/metrics/prometheus.go
-@@ -10,4 +10,7 @@ const (
- var (
- // StorageNamespace is the prometheus namespace of blob/cache related operations
- StorageNamespace = metrics.NewNamespace(NamespacePrefix, "storage", nil)
-+
-+ // NotificationsNamespace is the prometheus namespace of notification related metrics
-+ NotificationsNamespace = metrics.NewNamespace(NamespacePrefix, "notifications", nil)
- )
-diff --git a/notifications/metrics.go b/notifications/metrics.go
-index a20af1687..69960e9cb 100644
---- a/notifications/metrics.go
-+++ b/notifications/metrics.go
-@@ -5,6 +5,18 @@ import (
- "fmt"
- "net/http"
- "sync"
-+
-+ prometheus "github.com/docker/distribution/metrics"
-+ "github.com/docker/go-metrics"
-+)
-+
-+var (
-+ // eventsCounter counts total events of incoming, success, failure, and errors
-+ eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type")
-+ // pendingGauge measures the pending queue size
-+ pendingGauge = prometheus.NotificationsNamespace.NewGauge("pending", "The gauge of pending events in queue", metrics.Total)
-+ // statusCounter counts the total notification call per each status code
-+ statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code")
- )
-
- // EndpointMetrics track various actions taken by the endpoint, typically by
-@@ -61,6 +73,9 @@ func (emsl *endpointMetricsHTTPStatusListener) success(status int, events ...Eve
- defer emsl.safeMetrics.Unlock()
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Successes += len(events)
-+
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-+ eventsCounter.WithValues("Successes").Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Event) {
-@@ -68,12 +83,17 @@ func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Eve
- defer emsl.safeMetrics.Unlock()
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Failures += len(events)
-+
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-+ eventsCounter.WithValues("Failures").Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) {
- emsl.safeMetrics.Lock()
- defer emsl.safeMetrics.Unlock()
- emsl.Errors += len(events)
-+
-+ eventsCounter.WithValues("Errors").Inc(1)
- }
-
- // endpointMetricsEventQueueListener maintains the incoming events counter and
-@@ -87,12 +107,17 @@ func (eqc *endpointMetricsEventQueueListener) ingress(events ...Event) {
- defer eqc.Unlock()
- eqc.Events += len(events)
- eqc.Pending += len(events)
-+
-+ eventsCounter.WithValues("Events").Inc()
-+ pendingGauge.Inc(1)
- }
-
- func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) {
- eqc.Lock()
- defer eqc.Unlock()
- eqc.Pending -= len(events)
-+
-+ pendingGauge.Dec(1)
- }
-
- // endpoints is global registry of endpoints used to report metrics to expvar
-@@ -149,4 +174,7 @@ func init() {
- }))
-
- registry.(*expvar.Map).Set("notifications", &notifications)
-+
-+ // register prometheus metrics
-+ metrics.Register(prometheus.NotificationsNamespace)
- }
-
-From 4497e40eda1e0024f055c09ab480b7816a1147b1 Mon Sep 17 00:00:00 2001
-From: Honglin Feng <tifayuki@gmail.com>
-Date: Thu, 11 Oct 2018 21:39:02 +0800
-Subject: [PATCH 2/4] add label to the metrics
-
-Signed-off-by: Honglin Feng <tifayuki@gmail.com>
----
- notifications/endpoint.go | 2 +-
- notifications/http_test.go | 2 +-
- notifications/metrics.go | 26 ++++++++++++++------------
- notifications/sinks_test.go | 2 +-
- 4 files changed, 17 insertions(+), 15 deletions(-)
-
-diff --git a/notifications/endpoint.go b/notifications/endpoint.go
-index a8a52d0c9..854f1dd6c 100644
---- a/notifications/endpoint.go
-+++ b/notifications/endpoint.go
-@@ -58,7 +58,7 @@ func NewEndpoint(name, url string, config EndpointConfig) *Endpoint {
- endpoint.url = url
- endpoint.EndpointConfig = config
- endpoint.defaults()
-- endpoint.metrics = newSafeMetrics()
-+ endpoint.metrics = newSafeMetrics(name)
-
- // Configures the inmemory queue, retry, http pipeline.
- endpoint.Sink = newHTTPSink(
-diff --git a/notifications/http_test.go b/notifications/http_test.go
-index de47f789e..b7845cf95 100644
---- a/notifications/http_test.go
-+++ b/notifications/http_test.go
-@@ -63,7 +63,7 @@ func TestHTTPSink(t *testing.T) {
- })
- server := httptest.NewTLSServer(serverHandler)
-
-- metrics := newSafeMetrics()
-+ metrics := newSafeMetrics("")
- sink := newHTTPSink(server.URL, 0, nil, nil,
- &endpointMetricsHTTPStatusListener{safeMetrics: metrics})
-
-diff --git a/notifications/metrics.go b/notifications/metrics.go
-index 69960e9cb..4464edd8f 100644
---- a/notifications/metrics.go
-+++ b/notifications/metrics.go
-@@ -12,11 +12,11 @@ import (
-
- var (
- // eventsCounter counts total events of incoming, success, failure, and errors
-- eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type")
-+ eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type", "to")
- // pendingGauge measures the pending queue size
-- pendingGauge = prometheus.NotificationsNamespace.NewGauge("pending", "The gauge of pending events in queue", metrics.Total)
-+ pendingGauge = prometheus.NotificationsNamespace.NewLabeledGauge("pending", "The gauge of pending events in queue", metrics.Total, "to")
- // statusCounter counts the total notification call per each status code
-- statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code")
-+ statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code", "to")
- )
-
- // EndpointMetrics track various actions taken by the endpoint, typically by
-@@ -34,14 +34,16 @@ type EndpointMetrics struct {
- // safeMetrics guards the metrics implementation with a lock and provides a
- // safe update function.
- type safeMetrics struct {
-+ EndpointName string
- EndpointMetrics
- sync.Mutex // protects statuses map
- }
-
- // newSafeMetrics returns safeMetrics with map allocated.
--func newSafeMetrics() *safeMetrics {
-+func newSafeMetrics(name string) *safeMetrics {
- var sm safeMetrics
- sm.Statuses = make(map[string]int)
-+ sm.EndpointName = name
- return &sm
- }
-
-@@ -74,8 +76,8 @@ func (emsl *endpointMetricsHTTPStatusListener) success(status int, events ...Eve
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Successes += len(events)
-
-- statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-- eventsCounter.WithValues("Successes").Inc(1)
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status)), emsl.EndpointName).Inc(1)
-+ eventsCounter.WithValues("Successes", emsl.EndpointName).Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Event) {
-@@ -84,8 +86,8 @@ func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Eve
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Failures += len(events)
-
-- statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-- eventsCounter.WithValues("Failures").Inc(1)
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status)), emsl.EndpointName).Inc(1)
-+ eventsCounter.WithValues("Failures", emsl.EndpointName).Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) {
-@@ -93,7 +95,7 @@ func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) {
- defer emsl.safeMetrics.Unlock()
- emsl.Errors += len(events)
-
-- eventsCounter.WithValues("Errors").Inc(1)
-+ eventsCounter.WithValues("Errors", emsl.EndpointName).Inc(1)
- }
-
- // endpointMetricsEventQueueListener maintains the incoming events counter and
-@@ -108,8 +110,8 @@ func (eqc *endpointMetricsEventQueueListener) ingress(events ...Event) {
- eqc.Events += len(events)
- eqc.Pending += len(events)
-
-- eventsCounter.WithValues("Events").Inc()
-- pendingGauge.Inc(1)
-+ eventsCounter.WithValues("Events", eqc.EndpointName).Inc()
-+ pendingGauge.WithValues(eqc.EndpointName).Inc(1)
- }
-
- func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) {
-@@ -117,7 +119,7 @@ func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) {
- defer eqc.Unlock()
- eqc.Pending -= len(events)
-
-- pendingGauge.Dec(1)
-+ pendingGauge.WithValues(eqc.EndpointName).Dec(1)
- }
-
- // endpoints is global registry of endpoints used to report metrics to expvar
-diff --git a/notifications/sinks_test.go b/notifications/sinks_test.go
-index 06f88b2c9..4a69486b5 100644
---- a/notifications/sinks_test.go
-+++ b/notifications/sinks_test.go
-@@ -66,7 +66,7 @@ func TestBroadcaster(t *testing.T) {
- func TestEventQueue(t *testing.T) {
- const nevents = 1000
- var ts testSink
-- metrics := newSafeMetrics()
-+ metrics := newSafeMetrics("")
- eq := newEventQueue(
- // delayed sync simulates destination slower than channel comms
- &delayedSink{
-
-From 73e4232b5171c2988b0daeea517aa07386e7945d Mon Sep 17 00:00:00 2001
-From: Honglin Feng <tifayuki@gmail.com>
-Date: Mon, 15 Oct 2018 19:50:38 +0800
-Subject: [PATCH 3/4] run go fmt
-
-Signed-off-by: Honglin Feng <tifayuki@gmail.com>
----
- registry/storage/driver/s3-aws/s3.go | 10 +++++-----
- registry/storage/linkedblobstore.go | 16 ++++++++--------
- registry/storage/linkedblobstore_test.go | 4 ++--
- 3 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go
-index 800435d01..9cd87dbab 100644
---- a/registry/storage/driver/s3-aws/s3.go
-+++ b/registry/storage/driver/s3-aws/s3.go
-@@ -476,11 +476,11 @@ func New(params DriverParameters) (*Driver, error) {
- // }
-
- d := &driver{
-- S3: s3obj,
-- Bucket: params.Bucket,
-- ChunkSize: params.ChunkSize,
-- Encrypt: params.Encrypt,
-- KeyID: params.KeyID,
-+ S3: s3obj,
-+ Bucket: params.Bucket,
-+ ChunkSize: params.ChunkSize,
-+ Encrypt: params.Encrypt,
-+ KeyID: params.KeyID,
- MultipartCopyChunkSize: params.MultipartCopyChunkSize,
- MultipartCopyMaxConcurrency: params.MultipartCopyMaxConcurrency,
- MultipartCopyThresholdSize: params.MultipartCopyThresholdSize,
-diff --git a/registry/storage/linkedblobstore.go b/registry/storage/linkedblobstore.go
-index de591c8a5..3fb1da26f 100644
---- a/registry/storage/linkedblobstore.go
-+++ b/registry/storage/linkedblobstore.go
-@@ -312,14 +312,14 @@ func (lbs *linkedBlobStore) newBlobUpload(ctx context.Context, uuid, path string
- }
-
- bw := &blobWriter{
-- ctx: ctx,
-- blobStore: lbs,
-- id: uuid,
-- startedAt: startedAt,
-- digester: digest.Canonical.Digester(),
-- fileWriter: fw,
-- driver: lbs.driver,
-- path: path,
-+ ctx: ctx,
-+ blobStore: lbs,
-+ id: uuid,
-+ startedAt: startedAt,
-+ digester: digest.Canonical.Digester(),
-+ fileWriter: fw,
-+ driver: lbs.driver,
-+ path: path,
- resumableDigestEnabled: lbs.resumableDigestEnabled,
- }
-
-diff --git a/registry/storage/linkedblobstore_test.go b/registry/storage/linkedblobstore_test.go
-index e0ffd2796..85376f715 100644
---- a/registry/storage/linkedblobstore_test.go
-+++ b/registry/storage/linkedblobstore_test.go
-@@ -162,8 +162,8 @@ type mockBlobDescriptorServiceFactory struct {
- func (f *mockBlobDescriptorServiceFactory) BlobAccessController(svc distribution.BlobDescriptorService) distribution.BlobDescriptorService {
- return &mockBlobDescriptorService{
- BlobDescriptorService: svc,
-- t: f.t,
-- stats: f.stats,
-+ t: f.t,
-+ stats: f.stats,
- }
- }
-
-
-From 5c66b577b027e3b314680f245be4213a002fcee0 Mon Sep 17 00:00:00 2001
-From: Honglin Feng <tifayuki@gmail.com>
-Date: Mon, 15 Oct 2018 20:18:36 +0800
-Subject: [PATCH 4/4] run go fmt and goimports
-
-Signed-off-by: Honglin Feng <tifayuki@gmail.com>
----
- registry/storage/driver/s3-aws/s3.go | 10 +++++-----
- registry/storage/linkedblobstore.go | 16 ++++++++--------
- registry/storage/linkedblobstore_test.go | 4 ++--
- 3 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go
-index 9cd87dbab..800435d01 100644
---- a/registry/storage/driver/s3-aws/s3.go
-+++ b/registry/storage/driver/s3-aws/s3.go
-@@ -476,11 +476,11 @@ func New(params DriverParameters) (*Driver, error) {
- // }
-
- d := &driver{
-- S3: s3obj,
-- Bucket: params.Bucket,
-- ChunkSize: params.ChunkSize,
-- Encrypt: params.Encrypt,
-- KeyID: params.KeyID,
-+ S3: s3obj,
-+ Bucket: params.Bucket,
-+ ChunkSize: params.ChunkSize,
-+ Encrypt: params.Encrypt,
-+ KeyID: params.KeyID,
- MultipartCopyChunkSize: params.MultipartCopyChunkSize,
- MultipartCopyMaxConcurrency: params.MultipartCopyMaxConcurrency,
- MultipartCopyThresholdSize: params.MultipartCopyThresholdSize,
-diff --git a/registry/storage/linkedblobstore.go b/registry/storage/linkedblobstore.go
-index 3fb1da26f..de591c8a5 100644
---- a/registry/storage/linkedblobstore.go
-+++ b/registry/storage/linkedblobstore.go
-@@ -312,14 +312,14 @@ func (lbs *linkedBlobStore) newBlobUpload(ctx context.Context, uuid, path string
- }
-
- bw := &blobWriter{
-- ctx: ctx,
-- blobStore: lbs,
-- id: uuid,
-- startedAt: startedAt,
-- digester: digest.Canonical.Digester(),
-- fileWriter: fw,
-- driver: lbs.driver,
-- path: path,
-+ ctx: ctx,
-+ blobStore: lbs,
-+ id: uuid,
-+ startedAt: startedAt,
-+ digester: digest.Canonical.Digester(),
-+ fileWriter: fw,
-+ driver: lbs.driver,
-+ path: path,
- resumableDigestEnabled: lbs.resumableDigestEnabled,
- }
-
-diff --git a/registry/storage/linkedblobstore_test.go b/registry/storage/linkedblobstore_test.go
-index 85376f715..e0ffd2796 100644
---- a/registry/storage/linkedblobstore_test.go
-+++ b/registry/storage/linkedblobstore_test.go
-@@ -162,8 +162,8 @@ type mockBlobDescriptorServiceFactory struct {
- func (f *mockBlobDescriptorServiceFactory) BlobAccessController(svc distribution.BlobDescriptorService) distribution.BlobDescriptorService {
- return &mockBlobDescriptorService{
- BlobDescriptorService: svc,
-- t: f.t,
-- stats: f.stats,
-+ t: f.t,
-+ stats: f.stats,
- }
- }
-
diff --git a/app-containers/k3d/Manifest b/app-containers/k3d/Manifest
index bc52ff29d3b3..9e006a4e93a8 100644
--- a/app-containers/k3d/Manifest
+++ b/app-containers/k3d/Manifest
@@ -1,7 +1,9 @@
DIST k3d-5.6.0.tar.gz 8022281 BLAKE2B 93f32f65e6c42650608b94d58d2149c3fec96251500be0d95d5673f07ae8c366d80954afa4d80eec149b7a9e8af7389323c21498910a3010bb80b975f64064d0 SHA512 c13df93499ffde6567e4bf7dcf260cb65ca01c390bf39361122fa61553591f418213049cf29d8dde63896f026a28d96f4e2ab522a143ac66cfa9f3786f8ba9b9
DIST k3d-5.7.3.tar.gz 9566684 BLAKE2B 9dff7ab447b3fd790a036d61bc3a4bb61238c74eec60aa12a4ff10150ff2f4999a3b1e635aaae6211f4e05ed9c589dc08e08ba511eb7690f857c0dad954b6ce7 SHA512 d6e2f6fb3013429745e1663214c7dd66dd2727b592a32e81f5837bbcc997aee18418366a0e21463ba48a2d72b9a86067f492f1f44c4689a129166dcf018e5642
DIST k3d-5.7.5.tar.gz 9542352 BLAKE2B 7855f4241577ab2558d3eda7eb866fd456ba3c08a60d8ba1d4c7874d846654f39d7bd618bb010d48543536d5e38847cb715fd0ce5af8a519ce0cc7bd3814a1df SHA512 b14f9ddd521aade832ad5493007be55294648a037bcdaeae7e1f424f60975451872ad1bed895892e51ad22ac86ec6fcdc77c08d2b0422d3aad20ab4b40b9f884
+DIST k3d-5.8.3.tar.gz 9542510 BLAKE2B d6b2e6701c576ff7cc25b979c18284e6e4dbe4fc8078f3669297b6aa0acddb6ad7e256255d8f8d8a97aef981b20f81529f621237d2f183c58aa37bfd58645b71 SHA512 e942a895b31c7906264380851e5f450e4f4b8bba5552d6693baf3428d2b8c7198f94d62b2791571867f24adda3a3edbac73253d04e13b8f5f3adba56310f6936
EBUILD k3d-5.6.0.ebuild 802 BLAKE2B f0dd1a4a0a8558f6338cb7d2564a182196677daacc12ad959b1724ebadd8e418e69caaf46680a1fc087a6db41e632ff7e07204df4e92e96a62adfa4ea3006caf SHA512 290fde415ed21510a978f30ba1560eb8cd7a412c76aefdd2012bcb3573496304dccc22609487d51c59e127430dce12a52222834a6cd035d4926ae102e31eccb5
EBUILD k3d-5.7.3.ebuild 867 BLAKE2B ebe2e31457023fb8cbf032573a0046ffde8f0c8e65a154c5dbf9581153a35bcd499b077cf17024bbe4083252c381f961980dfb2caff698dbc05d996fd41730e9 SHA512 dd36491e537bcfb7c2602b245bdc4c9cb6d74dc6e9da4dbdde841a1b6d62895864958c9bc776c1faefe2c7d431b5b39247af59bf80f34003a43585f2c2881e5c
-EBUILD k3d-5.7.5.ebuild 867 BLAKE2B 2ab0b8952f07aaafaa906a3d4764a2bba75616573319e775e0e7cfee8863bd1a41cb8b18fd715fac9ac886bd375242432040d05191d482628cbd51b1feaf8efc SHA512 67d347e2ad39719a54a602e7b577ddf5b959f7f4c38652bbe062bd7095e63e435a8edbccd5307e06f0d11108b9d9b1a3946dc00450e0572976dbbaa82d7e1ac8
+EBUILD k3d-5.7.5.ebuild 866 BLAKE2B 97d059029c77dcb3d71b4127858fa2be46e1675cccf25da6dd4a4b1472ecf95d2c118cdc3c3bd32181c67b40bfcaf6ece0fd5abd0740f9cb2dae1e2cf9e9bfef SHA512 999bd13ea6925377e8ac20de1f2f149cde3740f950fd4ab4cfc8160f01021a69bb8d86812ac55adcf6f4f0ef622db452ed30ebd45c8327be436572535021d19f
+EBUILD k3d-5.8.3.ebuild 1133 BLAKE2B 3158d1e7fa75322b66a5cf0b4d39b35a1e350a5dbc1cfe85dabf825bfe8ce9e5aafd2ecd332fd65f88c421948503526f5ca1835cb8fce2e08638ad7a4cdb8fbd SHA512 2a6daac65017d0f648c26382329d2bbfbc132bc8552e39ad4754233e10240a9a2d8fbf67a3d68ea73ee1a05718fbd7ecb2950ef176668923a593e9e81926d568
MISC metadata.xml 321 BLAKE2B a208d771132d412c9ac0adeb9017eae248d17303824ac7a616301fa0be1ceaed0fa93d43e179730b96dc81e2252afb628c3cfdda601bfbd288eb23e4d8553e3c SHA512 107d2bc402e3c1e1bf26af4427a563902921bcf4f676683f2a33952112fdf1b2d6d5993f18535ab440d985ffeb777f66a85735b91692739764666fb8e6aa898d
diff --git a/app-containers/k3d/k3d-5.7.5.ebuild b/app-containers/k3d/k3d-5.7.5.ebuild
index cf9bfa7e51d5..33469a037f2e 100644
--- a/app-containers/k3d/k3d-5.7.5.ebuild
+++ b/app-containers/k3d/k3d-5.7.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Gentoo Authors
+# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/rancher/k3d/archive/refs/tags/v${PV}.tar.gz -> ${P}.
LICENSE="MIT Apache-2.0 BSD BSD-2 MPL-2.0 ISC"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="doc"
src_prepare() {
diff --git a/app-containers/k3d/k3d-5.8.3.ebuild b/app-containers/k3d/k3d-5.8.3.ebuild
new file mode 100644
index 000000000000..38dc7be01194
--- /dev/null
+++ b/app-containers/k3d/k3d-5.8.3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit shell-completion go-module
+
+K3D_K3S_TAG=v1.31.5-k3s1
+
+DESCRIPTION="k3d creates k3s clusters in docker"
+HOMEPAGE="https://github.com/rancher/k3d"
+SRC_URI="https://github.com/rancher/k3d/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT Apache-2.0 BSD BSD-2 MPL-2.0 ISC"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc"
+
+src_prepare() {
+ default
+ rm Makefile || die
+}
+
+src_compile() {
+ local ldflags=(
+ -w -s
+ -X "github.com/k3d-io/k3d/v5/version.Version=v${PV}"
+ -X "github.com/k3d-io/k3d/v5/version.K3sVersion=${K3D_K3S_TAG}"
+ )
+ local -x GOWORK="" CGO_ENABLED=1
+ ego build -mod=vendor -ldflags "${ldflags[*]}" -o bin/k3d
+
+ ./bin/k3d completion bash > ${PN}.bash || die
+ ./bin/k3d completion zsh > ${PN}.zsh || die
+ ./bin/k3d completion fish > ${PN}.fish || die
+}
+
+src_test() {
+ ego test -v ./... -skip "TestGetK3sVersion"
+}
+
+src_install() {
+ dobin bin/${PN}
+
+ newbashcomp ${PN}.bash ${PN}
+ newzshcomp ${PN}.zsh _${PN}
+ dofishcomp ${PN}.fish
+
+ DOCS=( *.md )
+ use doc && DOCS+=( docs )
+ default_src_install
+}