diff --git a/CHANGELOG.md b/CHANGELOG.md index d4e859da8..8e2df76e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ - (Bugfix) (Platform) Ensure Inventory uses the serving group for license generation - (Bugfix) (Platform) Installer move to OCI - (Bugfix) (Platform) Fix Monitoring RBAC +- (Feature) (Platform) Do not require LM during install commands ## [1.3.1](https://github.com/arangodb/kube-arangodb/tree/1.3.1) (2025-10-07) - (Documentation) Add ArangoPlatformStorage Docs & Examples diff --git a/README.md b/README.md index c7c3d6abc..11cd956c9 100644 --- a/README.md +++ b/README.md @@ -203,7 +203,7 @@ Flags: --kubernetes.qps float32 Number of queries per second for k8s API. If set to 0 or less, API calls won't be throttled (default 32) --leader.label.skip Skips Leader Label for the Pod --log.format string Set log format. Allowed values: 'pretty', 'JSON'. If empty, default format is used (default "pretty") - --log.level stringArray Set log levels in format or =. Possible loggers: action, agency, api-server, assertion, backup-operator, chaos-monkey, crd, deployment, deployment-ci, deployment-reconcile, deployment-replication, deployment-resilience, deployment-resources, deployment-storage, deployment-storage-pc, deployment-storage-service, generic-parent-operator, helm, http, inspector, integration-authn-v1, integration-config-v1, integration-envoy-auth-v3, integration-envoy-auth-v3-impl-auth-bearer, integration-envoy-auth-v3-impl-auth-cookie, integration-envoy-auth-v3-impl-custom-openid, integration-envoy-auth-v3-impl-pass-mode, integration-events-v1, integration-meta-v1, integration-pong-v1, integration-scheduler-v2, integration-shutdown-v1, integration-storage-v1-s3, integration-storage-v2, integrations, k8s-client, kubernetes, kubernetes-access, kubernetes-client, kubernetes-informer, monitor, networking-route-operator, operator, operator-arangojob-handler, operator-v2, operator-v2-event, operator-v2-worker, panics, platform-chart-operator, platform-pod-shutdown, platform-service-operator, platform-storage-operator, pod_compare, root, root-event-recorder, scheduler-batchjob-operator, scheduler-cronjob-operator, scheduler-deployment-operator, scheduler-pod-operator, scheduler-profile-operator, server, server-authentication, webhook (default [info]) + --log.level stringArray Set log levels in format or =. Possible loggers: action, agency, api-server, assertion, backup-operator, chaos-monkey, cli-utils, crd, deployment, deployment-ci, deployment-reconcile, deployment-replication, deployment-resilience, deployment-resources, deployment-storage, deployment-storage-pc, deployment-storage-service, generic-parent-operator, helm, http, inspector, integration-authn-v1, integration-config-v1, integration-envoy-auth-v3, integration-envoy-auth-v3-impl-auth-bearer, integration-envoy-auth-v3-impl-auth-cookie, integration-envoy-auth-v3-impl-custom-openid, integration-envoy-auth-v3-impl-pass-mode, integration-events-v1, integration-meta-v1, integration-pong-v1, integration-scheduler-v2, integration-shutdown-v1, integration-storage-v1-s3, integration-storage-v2, integrations, k8s-client, kubernetes, kubernetes-access, kubernetes-client, kubernetes-informer, monitor, networking-route-operator, operator, operator-arangojob-handler, operator-v2, operator-v2-event, operator-v2-worker, panics, platform-chart-operator, platform-pod-shutdown, platform-service-operator, platform-storage-operator, pod_compare, root, root-event-recorder, scheduler-batchjob-operator, scheduler-cronjob-operator, scheduler-deployment-operator, scheduler-pod-operator, scheduler-profile-operator, server, server-authentication, webhook (default [info]) --log.sampling If true, operator will try to minimize duplication of logging events (default true) --log.stdout If true, operator will log to the stdout (default true) --memory-limit uint Define memory limit for hard shutdown and the dump of goroutines. Used for testing diff --git a/docs/cli/arangodb_operator.md b/docs/cli/arangodb_operator.md index 07d6ff4cf..e1515bef0 100644 --- a/docs/cli/arangodb_operator.md +++ b/docs/cli/arangodb_operator.md @@ -85,7 +85,7 @@ Flags: --kubernetes.qps float32 Number of queries per second for k8s API. If set to 0 or less, API calls won't be throttled (default 32) --leader.label.skip Skips Leader Label for the Pod --log.format string Set log format. Allowed values: 'pretty', 'JSON'. If empty, default format is used (default "pretty") - --log.level stringArray Set log levels in format or =. Possible loggers: action, agency, api-server, assertion, backup-operator, chaos-monkey, crd, deployment, deployment-ci, deployment-reconcile, deployment-replication, deployment-resilience, deployment-resources, deployment-storage, deployment-storage-pc, deployment-storage-service, generic-parent-operator, helm, http, inspector, integration-authn-v1, integration-config-v1, integration-envoy-auth-v3, integration-envoy-auth-v3-impl-auth-bearer, integration-envoy-auth-v3-impl-auth-cookie, integration-envoy-auth-v3-impl-custom-openid, integration-envoy-auth-v3-impl-pass-mode, integration-events-v1, integration-meta-v1, integration-pong-v1, integration-scheduler-v2, integration-shutdown-v1, integration-storage-v1-s3, integration-storage-v2, integrations, k8s-client, kubernetes, kubernetes-access, kubernetes-client, kubernetes-informer, monitor, networking-route-operator, operator, operator-arangojob-handler, operator-v2, operator-v2-event, operator-v2-worker, panics, platform-chart-operator, platform-pod-shutdown, platform-service-operator, platform-storage-operator, pod_compare, root, root-event-recorder, scheduler-batchjob-operator, scheduler-cronjob-operator, scheduler-deployment-operator, scheduler-pod-operator, scheduler-profile-operator, server, server-authentication, webhook (default [info]) + --log.level stringArray Set log levels in format or =. Possible loggers: action, agency, api-server, assertion, backup-operator, chaos-monkey, cli-utils, crd, deployment, deployment-ci, deployment-reconcile, deployment-replication, deployment-resilience, deployment-resources, deployment-storage, deployment-storage-pc, deployment-storage-service, generic-parent-operator, helm, http, inspector, integration-authn-v1, integration-config-v1, integration-envoy-auth-v3, integration-envoy-auth-v3-impl-auth-bearer, integration-envoy-auth-v3-impl-auth-cookie, integration-envoy-auth-v3-impl-custom-openid, integration-envoy-auth-v3-impl-pass-mode, integration-events-v1, integration-meta-v1, integration-pong-v1, integration-scheduler-v2, integration-shutdown-v1, integration-storage-v1-s3, integration-storage-v2, integrations, k8s-client, kubernetes, kubernetes-access, kubernetes-client, kubernetes-informer, monitor, networking-route-operator, operator, operator-arangojob-handler, operator-v2, operator-v2-event, operator-v2-worker, panics, platform-chart-operator, platform-pod-shutdown, platform-service-operator, platform-storage-operator, pod_compare, root, root-event-recorder, scheduler-batchjob-operator, scheduler-cronjob-operator, scheduler-deployment-operator, scheduler-pod-operator, scheduler-profile-operator, server, server-authentication, webhook (default [info]) --log.sampling If true, operator will try to minimize duplication of logging events (default true) --log.stdout If true, operator will log to the stdout (default true) --memory-limit uint Define memory limit for hard shutdown and the dump of goroutines. Used for testing diff --git a/docs/how-to/set_license.md b/docs/how-to/set_license.md index 88145f5ce..a3fa674e7 100644 --- a/docs/how-to/set_license.md +++ b/docs/how-to/set_license.md @@ -10,7 +10,11 @@ After deploying the ArangoDB Kubernetes operator, use the command below to deplo as a secret which is required for the Enterprise Edition starting with version 3.9: ```bash +# For the License Key kubectl create secret generic arango-license-key --from-literal=token-v2="" + +# For the License Manager Key +kubectl create secret generic arango-license-key --from-literal=license-client-id="" --from-literal=license-client-secret="" ``` diff --git a/docs/using-the-operator.md b/docs/using-the-operator.md index fe7ea2d6b..eb634df5f 100644 --- a/docs/using-the-operator.md +++ b/docs/using-the-operator.md @@ -99,7 +99,11 @@ in the [kube-arangodb repository](https://github.com/arangodb/kube-arangodb/rele After deploying the latest ArangoDB Kubernetes operator, use the command below to deploy your [license key](https://docs.arangodb.com/stable/operations/administration/license-management/) as a secret which is required for the Enterprise Edition starting with version 3.9: ```bash +# For the License Key kubectl create secret generic arango-license-key --from-literal=token-v2="" + +# For the License Manager Key +kubectl create secret generic arango-license-key --from-literal=license-client-id="" --from-literal=license-client-secret="" ``` Once the operator is running, you can create your ArangoDB database deployment diff --git a/pkg/util/cli/logger.go b/pkg/util/cli/logger.go new file mode 100644 index 000000000..4329d3bc1 --- /dev/null +++ b/pkg/util/cli/logger.go @@ -0,0 +1,27 @@ +// +// DISCLAIMER +// +// Copyright 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. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright holder is ArangoDB GmbH, Cologne, Germany +// + +package cli + +import "github.com/arangodb/kube-arangodb/pkg/logging" + +var ( + logger = logging.Global().RegisterAndGetLogger("cli-utils", logging.Info) +) diff --git a/pkg/util/cli/registry.go b/pkg/util/cli/registry.go index c27006fbf..1dea524e9 100644 --- a/pkg/util/cli/registry.go +++ b/pkg/util/cli/registry.go @@ -36,9 +36,6 @@ func NewRegistry() Registry { Name: "registry.docker.credentials", Description: "Use Docker Credentials", Default: false, - Check: func(in bool) error { - return nil - }, }, flagRegistryInsecure: Flag[[]string]{ @@ -143,20 +140,20 @@ func (r registry) Client(cmd *cobra.Command, lm LicenseManager) (*regclient.RegC // Hosts if lm != nil { registryConfigs, err := lm.RegistryHosts(cmd) - if err != nil { - return nil, err - } - - for n, m := range registryConfigs { - v, ok := configs[n] - if !ok { - v.Name = n - v.Hostname = n - } + if err == nil { + for n, m := range registryConfigs { + v, ok := configs[n] + if !ok { + v.Name = n + v.Hostname = n + } - v = m(v) + v = m(v) - configs[n] = v + configs[n] = v + } + } else { + logger.Err(err).Debug("Failed to initialize license manager, continuing...") } }