diff --git a/CHANGELOG.md b/CHANGELOG.md index 0051c43d5..faec19e4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - (Documentation) ManualUpgrade Docs - (Documentation) Add Required & Skip in Docs - (Feature) (Platform) ECS Storage +- (Feature) (Platform) Improve Registry Performance ## [1.2.50](https://github.com/arangodb/kube-arangodb/tree/1.2.50) (2025-07-04) - (Feature) (Platform) MetaV1 Integration Service diff --git a/docs/api/ArangoBackupPolicy.V1.md b/docs/api/ArangoBackupPolicy.V1.md index 78d6ca4b3..420fcebfd 100644 --- a/docs/api/ArangoBackupPolicy.V1.md +++ b/docs/api/ArangoBackupPolicy.V1.md @@ -42,7 +42,7 @@ Parsed by https://godoc.org/github.com/robfig/cron Type: `meta.LabelSelector` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.50/pkg/apis/backup/v1/backup_policy_spec.go#L39) -DeploymentSelector Selector definition for selecting matching ArangoBackup Custom Resources. +DeploymentSelector Selector definition for selecting matching ArangoDeployment Custom Resources. Links: * [Kubernetes Documentation](https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#LabelSelector) diff --git a/pkg/apis/backup/v1/backup_policy_spec.go b/pkg/apis/backup/v1/backup_policy_spec.go index e94c40a94..4dd98edc5 100644 --- a/pkg/apis/backup/v1/backup_policy_spec.go +++ b/pkg/apis/backup/v1/backup_policy_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2025 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,7 +33,7 @@ type ArangoBackupPolicySpec struct { // AllowConcurrent if false, ArangoBackup will not be created when previous Backups are not finished // +doc/default: true AllowConcurrent *bool `json:"allowConcurrent,omitempty"` - // DeploymentSelector Selector definition for selecting matching ArangoBackup Custom Resources. + // DeploymentSelector Selector definition for selecting matching ArangoDeployment Custom Resources. // +doc/type: meta.LabelSelector // +doc/link: Kubernetes Documentation|https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#LabelSelector DeploymentSelector *meta.LabelSelector `json:"selector,omitempty"` diff --git a/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml b/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml index 58decadda..42d907d3d 100644 --- a/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml +++ b/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml @@ -18,7 +18,7 @@ v1: Parsed by https://godoc.org/github.com/robfig/cron type: string selector: - description: DeploymentSelector Selector definition for selecting matching ArangoBackup Custom Resources. + description: DeploymentSelector Selector definition for selecting matching ArangoDeployment Custom Resources. properties: matchExpressions: items: diff --git a/pkg/platform/flags.go b/pkg/platform/flags.go index df6eaa4b8..e869ebf4b 100644 --- a/pkg/platform/flags.go +++ b/pkg/platform/flags.go @@ -134,4 +134,10 @@ var ( Description: "List of insecure registries", Default: nil, } + + flagRegistryList = cli.Flag[[]string]{ + Name: "registry.docker.endpoint", + Description: "List of boosted registries", + Default: nil, + } ) diff --git a/pkg/platform/package_export.go b/pkg/platform/package_export.go index c54eb5f41..fa4bffe97 100644 --- a/pkg/platform/package_export.go +++ b/pkg/platform/package_export.go @@ -34,7 +34,7 @@ func packageExport() (*cobra.Command, error) { cmd.Use = "export [flags] package output" cmd.Short = "Export the package in the ZIP Format" - if err := cli.RegisterFlags(&cmd, flagPlatformEndpoint, flagRegistryUseCredentials, flagRegistryInsecure); err != nil { + if err := cli.RegisterFlags(&cmd, flagPlatformEndpoint, flagRegistryUseCredentials, flagRegistryInsecure, flagRegistryList); err != nil { return nil, err } diff --git a/pkg/platform/package_import.go b/pkg/platform/package_import.go index 863d12f12..982bc94f3 100644 --- a/pkg/platform/package_import.go +++ b/pkg/platform/package_import.go @@ -37,7 +37,7 @@ func packageImport() (*cobra.Command, error) { cmd.Use = "import [flags] registry package output" cmd.Short = "Imports the package from the ZIP format" - if err := cli.RegisterFlags(&cmd, flagRegistryUseCredentials, flagRegistryInsecure); err != nil { + if err := cli.RegisterFlags(&cmd, flagRegistryUseCredentials, flagRegistryInsecure, flagRegistryList); err != nil { return nil, err } diff --git a/pkg/platform/regclient.go b/pkg/platform/regclient.go index 2874aecf2..dc5372090 100644 --- a/pkg/platform/regclient.go +++ b/pkg/platform/regclient.go @@ -35,6 +35,10 @@ func getRegClient(cmd *cobra.Command) (*regclient.RegClient, error) { slog.SetLogLoggerLevel(slog.LevelDebug) + flags = append(flags, regclient.WithConfigHostDefault(config.Host{ + ReqConcurrent: 8, + })) + flags = append(flags, regclient.WithRegOpts(reg.WithTransport(&goHttp.Transport{ MaxConnsPerHost: 64, MaxIdleConns: 100, @@ -55,6 +59,24 @@ func getRegClient(cmd *cobra.Command) (*regclient.RegClient, error) { } v.TLS = config.TLSDisabled + v.ReqConcurrent = 8 + + configs[el] = v + } + + regs, err := flagRegistryList.Get(cmd) + if err != nil { + return nil, err + } + + for _, el := range regs { + v, ok := configs[el] + if !ok { + v.Name = el + v.Hostname = el + } + + v.ReqConcurrent = 8 configs[el] = v }