From 0ee9a5e7598e68e2ad2ffbb097f067498dc6dafc Mon Sep 17 00:00:00 2001 From: Lukasz Zajaczkowski Date: Wed, 25 Sep 2024 15:31:02 +0200 Subject: [PATCH 1/7] unify handling referenced objects (#1414) --- .../controller/clusterrestore_controller.go | 19 +++++++++++++------ go/controller/internal/controller/common.go | 1 + .../controller/customstackrun_controller.go | 13 +++++++++++++ .../controller/gitrepository_controller.go | 10 ++++++++++ .../controller/globalservice_controller.go | 19 +++++++++++++++---- .../controller/managednamespace_controller.go | 14 ++++++++++++-- .../notificationrouter_controller.go | 14 ++++++++++---- .../controller/observer_controller.go | 13 ++++++++++--- .../controller/pipeline_controller.go | 10 ++++++++-- .../pipeline_controller_attributes.go | 5 ++++- .../controller/prautomation_controller.go | 4 +++- 11 files changed, 99 insertions(+), 23 deletions(-) diff --git a/go/controller/internal/controller/clusterrestore_controller.go b/go/controller/internal/controller/clusterrestore_controller.go index ad693180d8..071d48215e 100644 --- a/go/controller/internal/controller/clusterrestore_controller.go +++ b/go/controller/internal/controller/clusterrestore_controller.go @@ -20,6 +20,9 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" ctrl "sigs.k8s.io/controller-runtime" @@ -94,6 +97,10 @@ func (r *ClusterRestoreReconciler) Reconcile(ctx context.Context, req ctrl.Reque // Sync resource with Console API. apiRestore, err := r.sync(ctx, restore) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(restore.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(restore.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReason, err.Error()) return ctrl.Result{}, err } @@ -127,16 +134,16 @@ func (r *ClusterRestoreReconciler) sync(ctx context.Context, restore *v1alpha1.C if restore.Spec.HasBackupID() { backupID = restore.Spec.GetBackupID() } else { - cluster := &v1alpha1.Cluster{} - key := client.ObjectKey{Name: restore.Spec.BackupClusterRef.Name, Namespace: restore.Spec.BackupClusterRef.Namespace} - if err := r.Get(ctx, key, cluster); err != nil { + helper := utils.NewConsoleHelper(ctx, r.ConsoleClient, r.Client) + clusterID, err := helper.IDFromRef(restore.Spec.BackupClusterRef, &v1alpha1.Cluster{}) + if err != nil { return nil, err } - if !cluster.Status.HasID() { - return nil, fmt.Errorf("cluster has no ID set yet") + if clusterID == nil { + return nil, errors.NewNotFound(schema.GroupResource{}, restore.Spec.BackupClusterRef.Name) } - backup, err := r.ConsoleClient.GetClusterBackup(cluster.Status.ID, restore.Spec.BackupNamespace, restore.Spec.BackupName) + backup, err := r.ConsoleClient.GetClusterBackup(clusterID, restore.Spec.BackupNamespace, restore.Spec.BackupName) if err != nil { return nil, err } diff --git a/go/controller/internal/controller/common.go b/go/controller/internal/controller/common.go index 83b2e920df..1445811ee8 100644 --- a/go/controller/internal/controller/common.go +++ b/go/controller/internal/controller/common.go @@ -27,6 +27,7 @@ const ( // requeueAfter is the time between scheduled reconciles if there are no changes to the CRD. requeueAfter = 30 * time.Second requeueWaitForResources = 5 * time.Second + notFoundOrReadyError = "unable to find referenced object or is not ready yet" ) var ( diff --git a/go/controller/internal/controller/customstackrun_controller.go b/go/controller/internal/controller/customstackrun_controller.go index c69752ea9b..185bd08131 100644 --- a/go/controller/internal/controller/customstackrun_controller.go +++ b/go/controller/internal/controller/customstackrun_controller.go @@ -20,6 +20,8 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/runtime/schema" + "github.com/pluralsh/polly/algorithms" "github.com/samber/lo" "k8s.io/apimachinery/pkg/api/errors" @@ -106,6 +108,10 @@ func (r *CustomStackRunReconciler) Reconcile(ctx context.Context, req ctrl.Reque logger.Info("create custom stack run", "name", stack.CustomStackRunName()) attr, err := r.genCustomStackRunAttr(ctx, stack) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(stack.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(stack.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return ctrl.Result{}, err } @@ -123,6 +129,10 @@ func (r *CustomStackRunReconciler) Reconcile(ctx context.Context, req ctrl.Reque logger.Info("upsert custom stack run", "name", stack.CustomStackRunName()) attr, err := r.genCustomStackRunAttr(ctx, stack) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(stack.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(stack.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return ctrl.Result{}, err } @@ -193,6 +203,9 @@ func (r *CustomStackRunReconciler) genCustomStackRunAttr(ctx context.Context, st if err := r.Get(ctx, client.ObjectKey{Name: stackRun.Spec.StackRef.Name, Namespace: stackRun.Namespace}, stack); err != nil { return nil, err } + if stack.Status.ID == nil { + return nil, errors.NewNotFound(schema.GroupResource{}, stackRun.Spec.StackRef.Name) + } attr.StackID = stack.Status.ID } if stackRun.Spec.Commands != nil { diff --git a/go/controller/internal/controller/gitrepository_controller.go b/go/controller/internal/controller/gitrepository_controller.go index aeb20d3af7..9a2847a0fd 100644 --- a/go/controller/internal/controller/gitrepository_controller.go +++ b/go/controller/internal/controller/gitrepository_controller.go @@ -3,6 +3,9 @@ package controller import ( "context" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -90,6 +93,10 @@ func (r *GitRepositoryReconciler) Reconcile(ctx context.Context, req ctrl.Reques attrs, err := r.getRepositoryAttributes(ctx, repo) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(repo.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(repo.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return requeue, err } @@ -171,6 +178,9 @@ func (r *GitRepositoryReconciler) getRepositoryAttributes(ctx context.Context, r if err := r.Get(ctx, types.NamespacedName{Name: repo.Spec.ConnectionRef.Name, Namespace: repo.Spec.ConnectionRef.Namespace}, connection); err != nil { return nil, err } + if connection.Status.ID == nil { + return nil, apierrors.NewNotFound(schema.GroupResource{}, repo.Spec.ConnectionRef.Name) + } if err := utils.TryAddOwnerRef(ctx, r.Client, repo, connection, r.Scheme); err != nil { return nil, err diff --git a/go/controller/internal/controller/globalservice_controller.go b/go/controller/internal/controller/globalservice_controller.go index fffce136d5..b4a70045c1 100644 --- a/go/controller/internal/controller/globalservice_controller.go +++ b/go/controller/internal/controller/globalservice_controller.go @@ -20,6 +20,9 @@ import ( "context" "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + "github.com/samber/lo" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -107,14 +110,22 @@ func (r *GlobalServiceReconciler) Reconcile(ctx context.Context, req ctrl.Reques provider, err := r.getProvider(ctx, globalService) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(globalService.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(globalService.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) - return RequeueAfter(requeueWaitForResources), err + return ctrl.Result{}, err } project, err := r.getProject(ctx, globalService) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(globalService.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(globalService.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReason, err.Error()) - return RequeueAfter(requeueWaitForResources), err + return ctrl.Result{}, err } attr := globalService.Attributes(provider.Status.ID, project.Status.ID) @@ -213,7 +224,7 @@ func (r *GlobalServiceReconciler) getProvider(ctx context.Context, globalService } if provider.Status.ID == nil { logger.Info("Provider is not ready") - return provider, fmt.Errorf("provider is not yet ready") + return provider, apierrors.NewNotFound(schema.GroupResource{}, globalService.Spec.ProviderRef.Name) } } @@ -230,7 +241,7 @@ func (r *GlobalServiceReconciler) getProject(ctx context.Context, globalService if project.Status.ID == nil { logger.Info("Project is not ready") - return project, fmt.Errorf("project is not yet ready") + return project, apierrors.NewNotFound(schema.GroupResource{}, globalService.Spec.ProjectRef.Name) } if err := controllerutil.SetOwnerReference(project, globalService, r.Scheme); err != nil { diff --git a/go/controller/internal/controller/managednamespace_controller.go b/go/controller/internal/controller/managednamespace_controller.go index 9bb1297a58..d2dd563d26 100644 --- a/go/controller/internal/controller/managednamespace_controller.go +++ b/go/controller/internal/controller/managednamespace_controller.go @@ -20,6 +20,8 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/runtime/schema" + "github.com/pluralsh/polly/algorithms" "github.com/samber/lo" "k8s.io/apimachinery/pkg/api/errors" @@ -109,6 +111,9 @@ func (r *ManagedNamespaceReconciler) Reconcile(ctx context.Context, req ctrl.Req logger.Info("create managed namespace", "name", managedNamespace.Name) attr, err := r.getNamespaceAttributes(ctx, managedNamespace) if err != nil { + if errors.IsNotFound(err) { + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(managedNamespace.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return ctrl.Result{}, err } @@ -126,6 +131,10 @@ func (r *ManagedNamespaceReconciler) Reconcile(ctx context.Context, req ctrl.Req logger.Info("update managed namespace", "name", managedNamespace.Name) attr, err := r.getNamespaceAttributes(ctx, managedNamespace) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(managedNamespace.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(managedNamespace.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return requeue, err } @@ -278,7 +287,7 @@ func (r *ManagedNamespaceReconciler) getNamespaceAttributes(ctx context.Context, if project.Status.ID == nil { logger.Info("Project is not ready") utils.MarkCondition(ns.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReason, "project is not ready") - return nil, nil + return nil, errors.NewNotFound(schema.GroupResource{}, ns.Spec.ProjectRef.Name) } if err := controllerutil.SetOwnerReference(project, ns, r.Scheme); err != nil { @@ -298,7 +307,8 @@ func (r *ManagedNamespaceReconciler) getRepository(ctx context.Context, ns *v1al return nil, err } if repository.Status.ID == nil { - return nil, fmt.Errorf("repository %s is not ready", repository.Name) + utils.MarkCondition(ns.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReason, "repository is not ready") + return nil, errors.NewNotFound(schema.GroupResource{}, ns.Spec.Service.RepositoryRef.Name) } if repository.Status.Health == v1alpha1.GitHealthFailed { return nil, fmt.Errorf("repository %s is not healthy", repository.Name) diff --git a/go/controller/internal/controller/notificationrouter_controller.go b/go/controller/internal/controller/notificationrouter_controller.go index cafa3c02a7..f1c47bc11d 100644 --- a/go/controller/internal/controller/notificationrouter_controller.go +++ b/go/controller/internal/controller/notificationrouter_controller.go @@ -20,6 +20,8 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/runtime/schema" + "github.com/pluralsh/polly/containers" "github.com/samber/lo" corev1 "k8s.io/api/core/v1" @@ -123,6 +125,10 @@ func (r *NotificationRouterReconciler) Reconcile(ctx context.Context, req ctrl.R logger.Info("upsert notification router", "name", notificationRouter.NotificationName()) attr, err := r.genNotificationRouterAttr(ctx, notificationRouter) if err != nil { + if errors.IsNotFound(err) { + utils.MarkCondition(notificationRouter.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(notificationRouter.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return ctrl.Result{}, err } @@ -186,7 +192,7 @@ func (r *NotificationRouterReconciler) genNotificationRouterAttr(ctx context.Con } if notifSink.Status.ID == nil { - return nil, fmt.Errorf("sink %s has not been reconciled", sink.Name) + return nil, errors.NewNotFound(schema.GroupResource{}, sink.Name) } attr.RouterSinks = append(attr.RouterSinks, &console.RouterSinkAttributes{SinkID: *notifSink.Status.ID}) @@ -204,7 +210,7 @@ func (r *NotificationRouterReconciler) getClusterID(ctx context.Context, obj *co return nil, err } if !cluster.Status.HasID() { - return nil, fmt.Errorf("cluster is not ready yet") + return nil, errors.NewNotFound(schema.GroupResource{}, obj.Name) } return cluster.Status.ID, nil } @@ -218,7 +224,7 @@ func (r *NotificationRouterReconciler) getServiceID(ctx context.Context, objRef return nil, err } if !resource.Status.HasID() { - return nil, fmt.Errorf("cluster is not ready yet") + return nil, errors.NewNotFound(schema.GroupResource{}, objRef.Name) } return resource.Status.ID, nil } @@ -232,7 +238,7 @@ func (r *NotificationRouterReconciler) getPipelineID(ctx context.Context, objRef return nil, err } if !resource.Status.HasID() { - return nil, fmt.Errorf("pipeline is not ready yet") + return nil, errors.NewNotFound(schema.GroupResource{}, objRef.Name) } return resource.Status.ID, nil } diff --git a/go/controller/internal/controller/observer_controller.go b/go/controller/internal/controller/observer_controller.go index d9bfb321e3..9a155da983 100644 --- a/go/controller/internal/controller/observer_controller.go +++ b/go/controller/internal/controller/observer_controller.go @@ -4,6 +4,9 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + console "github.com/pluralsh/console/go/client" "github.com/pluralsh/console/go/controller/internal/credentials" "github.com/pluralsh/console/go/controller/internal/utils" @@ -100,6 +103,10 @@ func (r *ObserverReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ apiProvider, err := r.sync(ctx, observer, changed) if err != nil { logger.Error(err, "unable to create or update observer") + if errors.IsNotFound(err) { + utils.MarkCondition(observer.SetCondition, v1alpha1.SynchronizedConditionType, metav1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(observer.SetCondition, v1alpha1.SynchronizedConditionType, metav1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) return ctrl.Result{}, err } @@ -175,7 +182,7 @@ func (r *ObserverReconciler) getAttributes(ctx context.Context, observer *v1alph return target, actions, projectID, err } if !gitRepo.Status.HasID() { - err = fmt.Errorf("gitRepo ID is nil") + err = errors.NewNotFound(schema.GroupResource{}, gitRepo.Name) return target, actions, projectID, err } target.Git = &console.ObserverGitAttributes{ @@ -210,7 +217,7 @@ func (r *ObserverReconciler) getAttributes(ctx context.Context, observer *v1alph return target, actions, projectID, err } if !prAutomation.Status.HasID() { - err = fmt.Errorf("PrAutomation ID is nil") + err = errors.NewNotFound(schema.GroupResource{}, prAutomation.Name) return target, actions, projectID, err } @@ -230,7 +237,7 @@ func (r *ObserverReconciler) getAttributes(ctx context.Context, observer *v1alph return target, actions, projectID, err } if !pipeline.Status.HasID() { - err = fmt.Errorf("pipeline ID is nil") + err = errors.NewNotFound(schema.GroupResource{}, pipeline.Name) return target, actions, projectID, err } a.Configuration.Pipeline = &console.ObserverPipelineActionAttributes{ diff --git a/go/controller/internal/controller/pipeline_controller.go b/go/controller/internal/controller/pipeline_controller.go index 5b55848c38..b7a7835d39 100644 --- a/go/controller/internal/controller/pipeline_controller.go +++ b/go/controller/internal/controller/pipeline_controller.go @@ -20,6 +20,8 @@ import ( "context" "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" ctrl "sigs.k8s.io/controller-runtime" @@ -105,7 +107,7 @@ func (r *PipelineReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ if project.Status.ID == nil { logger.Info("Project is not ready") utils.MarkCondition(pipeline.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReason, "project is not ready") - return requeue, nil + return RequeueAfter(requeueWaitForResources), nil } if err := controllerutil.SetOwnerReference(project, pipeline, r.Scheme); err != nil { @@ -116,8 +118,12 @@ func (r *PipelineReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ // Prepare attributes object that is used to calculate SHA and save changes. attrs, err := r.pipelineAttributes(ctx, pipeline, project.Status.ID) if err != nil { + if apierrors.IsNotFound(err) { + utils.MarkCondition(pipeline.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) + return RequeueAfter(requeueWaitForResources), nil + } utils.MarkCondition(pipeline.SetCondition, v1alpha1.SynchronizedConditionType, v1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, err.Error()) - return requeue, nil + return ctrl.Result{}, err } // Calculate SHA to detect changes that should be applied in the Console API. diff --git a/go/controller/internal/controller/pipeline_controller_attributes.go b/go/controller/internal/controller/pipeline_controller_attributes.go index b3fcd603d6..62d690a622 100644 --- a/go/controller/internal/controller/pipeline_controller_attributes.go +++ b/go/controller/internal/controller/pipeline_controller_attributes.go @@ -20,6 +20,9 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime/schema" + v1 "k8s.io/api/core/v1" console "github.com/pluralsh/console/go/client" @@ -80,7 +83,7 @@ func (r *PipelineReconciler) pipelineStageServiceAttributes(ctx context.Context, } if service.Status.ID == nil { - return nil, fmt.Errorf("service %s is not yet ready", service.Name) + return nil, errors.NewNotFound(schema.GroupResource{}, service.Name) } // Extracting cluster ref from the service, not from the custom resource field (i.e. PipelineStageService.ClusterRef). diff --git a/go/controller/internal/controller/prautomation_controller.go b/go/controller/internal/controller/prautomation_controller.go index 89630a2ab2..bfdcd29888 100644 --- a/go/controller/internal/controller/prautomation_controller.go +++ b/go/controller/internal/controller/prautomation_controller.go @@ -3,6 +3,8 @@ package controller import ( "context" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" ctrl "sigs.k8s.io/controller-runtime" @@ -87,7 +89,7 @@ func (in *PrAutomationReconciler) Reconcile(ctx context.Context, req reconcile.R apiPrAutomation, err := in.sync(ctx, prAutomation, changed) if err != nil { if errors.IsNotFound(err) { - logger.Error(err, "unable to find referenced object") + utils.MarkCondition(prAutomation.SetCondition, v1alpha1.SynchronizedConditionType, metav1.ConditionFalse, v1alpha1.SynchronizedConditionReasonError, notFoundOrReadyError) return requeue, nil } logger.Error(err, "unable to create or update prAutomation") From cda5a380f62a0040e096170b3c2fa585d025ad38 Mon Sep 17 00:00:00 2001 From: michaeljguarino Date: Wed, 25 Sep 2024 09:46:45 -0400 Subject: [PATCH 2/7] Implement Urgent Notification delivery (#1412) --- assets/src/generated/graphql-plural.ts | 13 +++++++- assets/src/generated/graphql.ts | 10 +++++++ ...ployments.plural.sh_notificationsinks.yaml | 16 ++++++++++ config/test.exs | 2 ++ go/client/models_gen.go | 15 ++++++++-- .../api/v1alpha1/notificationsink_types.go | 14 +++++++++ .../api/v1alpha1/zz_generated.deepcopy.go | 25 ++++++++++++++++ ...ployments.plural.sh_notificationsinks.yaml | 16 ++++++++++ go/controller/docs/api.md | 18 +++++++++++ .../controller/notificationsink_controller.go | 8 +++++ lib/console/deployments/events.ex | 2 ++ lib/console/deployments/notifications.ex | 19 ++++++++---- .../deployments/pubsub/protocols/emailable.ex | 9 ++++++ lib/console/email/builder/notification.ex | 23 ++++++++++++++ .../graphql/deployments/notification.ex | 13 ++++++-- lib/console/schema/app_notification.ex | 3 +- lib/console/schema/notification_sink.ex | 7 +++++ .../templates/email/notification.html.eex | 11 +++++++ .../templates/email/notification.text.eex | 3 ++ lib/console_web/views/email_view.ex | 24 +++++++++++++++ mix.exs | 1 + mix.lock | 4 +++ ...ployments.plural.sh_notificationsinks.yaml | 16 ++++++++++ ...0924230544_add_app_notificaiton_urgent.exs | 9 ++++++ schema/schema.graphql | 11 +++++++ .../deployments/notifications_test.exs | 30 +++++++++++++++++++ .../console/deployments/pubsub/email_test.exs | 20 +++++++++++++ 27 files changed, 329 insertions(+), 13 deletions(-) create mode 100644 lib/console/email/builder/notification.ex create mode 100644 lib/console_web/templates/email/notification.html.eex create mode 100644 lib/console_web/templates/email/notification.text.eex create mode 100644 priv/repo/migrations/20240924230544_add_app_notificaiton_urgent.exs diff --git a/assets/src/generated/graphql-plural.ts b/assets/src/generated/graphql-plural.ts index 2cda37dd0d..d90438890a 100644 --- a/assets/src/generated/graphql-plural.ts +++ b/assets/src/generated/graphql-plural.ts @@ -584,6 +584,8 @@ export type ConsoleInstance = { status: ConsoleInstanceStatus; /** the subdomain this instance lives under */ subdomain: Scalars['String']['output']; + /** whether this is a shared or dedicated console */ + type: ConsoleInstanceType; updatedAt?: Maybe; /** full console url of this instance */ url: Scalars['String']['output']; @@ -598,6 +600,8 @@ export type ConsoleInstanceAttributes = { region: Scalars['String']['input']; /** a heuristic size of this instance */ size: ConsoleSize; + /** the type of console instance */ + type: ConsoleInstanceType; }; export type ConsoleInstanceConnection = { @@ -618,7 +622,14 @@ export enum ConsoleInstanceStatus { DeploymentCreated = 'DEPLOYMENT_CREATED', DeploymentDeleted = 'DEPLOYMENT_DELETED', Pending = 'PENDING', - Provisioned = 'PROVISIONED' + Provisioned = 'PROVISIONED', + StackCreated = 'STACK_CREATED', + StackDeleted = 'STACK_DELETED' +} + +export enum ConsoleInstanceType { + Dedicated = 'DEDICATED', + Shared = 'SHARED' } export type ConsoleInstanceUpdateAttributes = { diff --git a/assets/src/generated/graphql.ts b/assets/src/generated/graphql.ts index 75e4b824f6..4a4210ab87 100644 --- a/assets/src/generated/graphql.ts +++ b/assets/src/generated/graphql.ts @@ -3782,6 +3782,15 @@ export type PluralServiceDeployment = { export type PluralSinkAttributes = { priority: NotificationPriority; + /** whether to immediately deliver the derived notification via SMTP */ + urgent?: InputMaybe; +}; + +export type PluralSinkConfiguration = { + __typename?: 'PluralSinkConfiguration'; + priority: NotificationPriority; + /** whether to immediately deliver the derived notification via SMTP */ + urgent?: Maybe; }; export type PluralSubscription = { @@ -7547,6 +7556,7 @@ export type SharedSecretAttributes = { export type SinkConfiguration = { __typename?: 'SinkConfiguration'; id: Scalars['ID']['output']; + plural?: Maybe; slack?: Maybe; teams?: Maybe; }; diff --git a/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml b/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml index 2811dc5f5a..312a1efb4a 100644 --- a/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml +++ b/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml @@ -60,6 +60,22 @@ spec: configuration: description: Configuration for the specific type properties: + plural: + description: Plural sink configuration knobs + properties: + priority: + description: The priority to label any delivered notification + as + enum: + - LOW + - MEDIUM + - HIGH + type: string + urgent: + description: Whether to immediately deliver the notification + via SMTP + type: boolean + type: object slack: description: Slack url properties: diff --git a/config/test.exs b/config/test.exs index 88d767dee8..350e45286a 100644 --- a/config/test.exs +++ b/config/test.exs @@ -78,3 +78,5 @@ config :console, Console.Mailer, config :console, Console.Deployments.Metrics.Provider.NewRelic, plug: {Req.Test, Console.Deployments.Metrics.Provider.NewRelic} + +config :bamboo, :refute_timeout, 10 diff --git a/go/client/models_gen.go b/go/client/models_gen.go index 678e2c3a28..3d2e321045 100644 --- a/go/client/models_gen.go +++ b/go/client/models_gen.go @@ -3139,6 +3139,14 @@ type PluralServiceDeployment struct { type PluralSinkAttributes struct { Priority NotificationPriority `json:"priority"` + // whether to immediately deliver the derived notification via SMTP + Urgent *bool `json:"urgent,omitempty"` +} + +type PluralSinkConfiguration struct { + Priority NotificationPriority `json:"priority"` + // whether to immediately deliver the derived notification via SMTP + Urgent *bool `json:"urgent,omitempty"` } type PluralSubscription struct { @@ -4464,9 +4472,10 @@ type SharedSecretAttributes struct { } type SinkConfiguration struct { - ID string `json:"id"` - Slack *URLSinkConfiguration `json:"slack,omitempty"` - Teams *URLSinkConfiguration `json:"teams,omitempty"` + ID string `json:"id"` + Slack *URLSinkConfiguration `json:"slack,omitempty"` + Teams *URLSinkConfiguration `json:"teams,omitempty"` + Plural *PluralSinkConfiguration `json:"plural,omitempty"` } type SinkConfigurationAttributes struct { diff --git a/go/controller/api/v1alpha1/notificationsink_types.go b/go/controller/api/v1alpha1/notificationsink_types.go index 7d2cf83491..4ab9c05c2d 100644 --- a/go/controller/api/v1alpha1/notificationsink_types.go +++ b/go/controller/api/v1alpha1/notificationsink_types.go @@ -49,12 +49,26 @@ type SinkConfiguration struct { // Teams url // +kubebuilder:validation:Optional Teams *SinkURL `json:"teams,omitempty"` + + // Plural sink configuration knobs + // +kubebuilder:validation:Optional + Plural *PluralSinkConfiguration `json:"plural,omitempty"` } type SinkURL struct { URL string `json:"url"` } +type PluralSinkConfiguration struct { + // The priority to label any delivered notification as + // +kubebuilder:validation:Enum=LOW;MEDIUM;HIGH + Priority console.NotificationPriority `json:"priority,omitempty"` + + // Whether to immediately deliver the notification via SMTP + // +kubebuilder:validation:Optional + Urgent *bool `json:"urgent,omitempty"` +} + //+kubebuilder:object:root=true //+kubebuilder:subresource:status diff --git a/go/controller/api/v1alpha1/zz_generated.deepcopy.go b/go/controller/api/v1alpha1/zz_generated.deepcopy.go index 93647decb6..96e658f154 100644 --- a/go/controller/api/v1alpha1/zz_generated.deepcopy.go +++ b/go/controller/api/v1alpha1/zz_generated.deepcopy.go @@ -2985,6 +2985,26 @@ func (in *PipelineStageServicePromotionCriteria) DeepCopy() *PipelineStageServic return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PluralSinkConfiguration) DeepCopyInto(out *PluralSinkConfiguration) { + *out = *in + if in.Urgent != nil { + in, out := &in.Urgent, &out.Urgent + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluralSinkConfiguration. +func (in *PluralSinkConfiguration) DeepCopy() *PluralSinkConfiguration { + if in == nil { + return nil + } + out := new(PluralSinkConfiguration) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PrAutomation) DeepCopyInto(out *PrAutomation) { *out = *in @@ -4315,6 +4335,11 @@ func (in *SinkConfiguration) DeepCopyInto(out *SinkConfiguration) { *out = new(SinkURL) **out = **in } + if in.Plural != nil { + in, out := &in.Plural, &out.Plural + *out = new(PluralSinkConfiguration) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SinkConfiguration. diff --git a/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml b/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml index 2811dc5f5a..312a1efb4a 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml @@ -60,6 +60,22 @@ spec: configuration: description: Configuration for the specific type properties: + plural: + description: Plural sink configuration knobs + properties: + priority: + description: The priority to label any delivered notification + as + enum: + - LOW + - MEDIUM + - HIGH + type: string + urgent: + description: Whether to immediately deliver the notification + via SMTP + type: boolean + type: object slack: description: Slack url properties: diff --git a/go/controller/docs/api.md b/go/controller/docs/api.md index 49a98507ad..2f382a2165 100644 --- a/go/controller/docs/api.md +++ b/go/controller/docs/api.md @@ -1577,6 +1577,23 @@ _Appears in:_ +#### PluralSinkConfiguration + + + + + + + +_Appears in:_ +- [SinkConfiguration](#sinkconfiguration) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `priority` _[NotificationPriority](#notificationpriority)_ | The priority to label any delivered notification as | | Enum: [LOW MEDIUM HIGH]
| +| `urgent` _boolean_ | Whether to immediately deliver the notification via SMTP | | Optional: {}
| + + #### PrAutomation @@ -2214,6 +2231,7 @@ _Appears in:_ | --- | --- | --- | --- | | `slack` _[SinkURL](#sinkurl)_ | Slack url | | Optional: {}
| | `teams` _[SinkURL](#sinkurl)_ | Teams url | | Optional: {}
| +| `plural` _[PluralSinkConfiguration](#pluralsinkconfiguration)_ | Plural sink configuration knobs | | Optional: {}
| #### SinkURL diff --git a/go/controller/internal/controller/notificationsink_controller.go b/go/controller/internal/controller/notificationsink_controller.go index 952df2aa76..52063af08a 100644 --- a/go/controller/internal/controller/notificationsink_controller.go +++ b/go/controller/internal/controller/notificationsink_controller.go @@ -285,6 +285,14 @@ func genNotificationSinkAttr(notificationSink *v1alpha1.NotificationSink) consol URL: notificationSink.Spec.Configuration.Teams.URL, } } + + if plrl := notificationSink.Spec.Configuration.Plural; plrl != nil { + attr.Configuration.Plural = &console.PluralSinkAttributes{ + Priority: plrl.Priority, + Urgent: plrl.Urgent, + } + } + if notificationSink.Spec.Type == console.SinkTypePlural { attr.NotificationBindings = policyBindings(notificationSink.Spec.Bindings) } diff --git a/lib/console/deployments/events.ex b/lib/console/deployments/events.ex index eebb42ea7c..c1afb890cf 100644 --- a/lib/console/deployments/events.ex +++ b/lib/console/deployments/events.ex @@ -67,3 +67,5 @@ defmodule Console.PubSub.StackRunCompleted, do: use Piazza.PubSub.Event defmodule Console.PubSub.RunLogsCreated, do: use Piazza.PubSub.Event defmodule Console.PubSub.SharedSecretCreated, do: use Piazza.PubSub.Event + +defmodule Console.PubSub.AppNotificationCreated, do: use Piazza.PubSub.Event diff --git a/lib/console/deployments/notifications.ex b/lib/console/deployments/notifications.ex index a05763e371..d1ee9aa0af 100644 --- a/lib/console/deployments/notifications.ex +++ b/lib/console/deployments/notifications.ex @@ -39,7 +39,8 @@ defmodule Console.Deployments.Notifications do @spec create_notifications([map]) :: {:ok, [AppNotification.t]} | error def create_notifications(notifs) do notifs = Enum.map(notifs, ×tamped/1) - Repo.insert_all(AppNotification, notifs, returning: true) + AppNotification + |> Repo.insert_all(notifs, returning: true) |> elem(1) |> ok() end @@ -155,8 +156,9 @@ defmodule Console.Deployments.Notifications do defp deliver(body, %NotificationSink{type: :plural} = sink) do %{notification_bindings: bindings} = Repo.preload(sink, [notification_bindings: [group: :members]]) splat_userids(bindings) - |> Enum.map(& %{text: body, user_id: &1, priority: priority(sink)}) + |> Enum.map(&Map.merge(%{text: body, user_id: &1}, attrs(sink))) |> create_notifications() + |> send_events() end defp url_deliver(url, body) do @@ -185,10 +187,17 @@ defmodule Console.Deployments.Notifications do end) end - defp priority(%NotificationSink{configuration: %{plural: %{priority: priority}}}) when not is_nil(priority), - do: priority - defp priority(_), do: :low + defp attrs(%NotificationSink{configuration: %{plural: %{} = plural}}) do + %{priority: Map.get(plural, :priority) || :low, urgent: !!Map.get(plural, :urgent)} + end + defp attrs(_), do: %{priority: :low} + + defp send_events({:ok, [_ | _] = notifs}) do + Enum.each(notifs, &handle_notify(PubSub.AppNotificationCreated, &1)) + {:ok, notifs} + end + defp send_events(pass), do: pass defp notify({:ok, %SharedSecret{} = share}, :create, user), do: handle_notify(PubSub.SharedSecretCreated, share, actor: user) diff --git a/lib/console/deployments/pubsub/protocols/emailable.ex b/lib/console/deployments/pubsub/protocols/emailable.ex index 8a24eaeacd..4b5de80bee 100644 --- a/lib/console/deployments/pubsub/protocols/emailable.ex +++ b/lib/console/deployments/pubsub/protocols/emailable.ex @@ -18,3 +18,12 @@ defimpl Console.Deployments.PubSub.Emailable, for: Console.PubSub.SharedSecretCr Secret.email(share, actor) end end + +defimpl Console.Deployments.PubSub.Emailable, for: Console.PubSub.AppNotificationCreated do + alias Console.Schema.AppNotification + alias Console.Email.Builder.Notification + + def email(%{item: %AppNotification{urgent: true} = notif}), + do: Notification.email(notif) + def email(_), do: :ok +end diff --git a/lib/console/email/builder/notification.ex b/lib/console/email/builder/notification.ex new file mode 100644 index 0000000000..6af0138d1c --- /dev/null +++ b/lib/console/email/builder/notification.ex @@ -0,0 +1,23 @@ +defmodule Console.Email.Builder.Notification do + use Console.Email.Base + alias Console.Schema.AppNotification + + def email(notif) do + %{user: user} = notif = + Repo.preload(notif, [:user]) + + base_email() + |> to(user) + |> subject(grab_title(notif)) + |> assign(:notification, notif) + |> assign(:user, user) + |> render(:notification) + end + + defp grab_title(%AppNotification{text: text}) do + case String.split(text, "\n") do + [first, _ | _] -> first + _ -> "You have a new activity in Plural!" + end + end +end diff --git a/lib/console/graphql/deployments/notification.ex b/lib/console/graphql/deployments/notification.ex index b8976cbd26..faa43abf97 100644 --- a/lib/console/graphql/deployments/notification.ex +++ b/lib/console/graphql/deployments/notification.ex @@ -27,6 +27,7 @@ defmodule Console.GraphQl.Deployments.Notification do input_object :plural_sink_attributes do field :priority, non_null(:notification_priority) + field :urgent, :boolean, description: "whether to immediately deliver the derived notification via SMTP" end input_object :notification_router_attributes do @@ -104,9 +105,15 @@ defmodule Console.GraphQl.Deployments.Notification do end object :sink_configuration do - field :id, non_null(:id) - field :slack, :url_sink_configuration - field :teams, :url_sink_configuration + field :id, non_null(:id) + field :slack, :url_sink_configuration + field :teams, :url_sink_configuration + field :plural, :plural_sink_configuration + end + + object :plural_sink_configuration do + field :priority, non_null(:notification_priority) + field :urgent, :boolean, description: "whether to immediately deliver the derived notification via SMTP" end @desc "A notification sink based off slack incoming webhook urls" diff --git a/lib/console/schema/app_notification.ex b/lib/console/schema/app_notification.ex index 2b0433b249..3e2d8e53dc 100644 --- a/lib/console/schema/app_notification.ex +++ b/lib/console/schema/app_notification.ex @@ -11,6 +11,7 @@ defmodule Console.Schema.AppNotification do field :priority, Priority, default: :low field :text, :string field :read_at, :utc_datetime_usec + field :urgent, :boolean belongs_to :user, User @@ -58,7 +59,7 @@ defmodule Console.Schema.AppNotification do def changeset(model, attrs \\ %{}) do model - |> cast(attrs, ~w(user_id text priority)a) + |> cast(attrs, ~w(user_id text priority urgent)a) |> foreign_key_constraint(:user_id) |> validate_required(~w(user_id text)a) end diff --git a/lib/console/schema/notification_sink.ex b/lib/console/schema/notification_sink.ex index 034b93cc9d..feee4531ec 100644 --- a/lib/console/schema/notification_sink.ex +++ b/lib/console/schema/notification_sink.ex @@ -19,6 +19,7 @@ defmodule Console.Schema.NotificationSink do embeds_one :plural, PluralConfiguration, on_replace: :update do field :priority, AppNotification.Priority + field :urgent, :boolean end end @@ -57,6 +58,7 @@ defmodule Console.Schema.NotificationSink do |> cast(attrs, []) |> cast_embed(:slack, with: &url_changeset/2) |> cast_embed(:teams, with: &url_changeset/2) + |> cast_embed(:plural, with: &plural_changeset/2) end defp url_changeset(model, attrs) do @@ -64,4 +66,9 @@ defmodule Console.Schema.NotificationSink do |> cast(attrs, [:url]) |> validate_required([:url]) end + + defp plural_changeset(model, attrs) do + model + |> cast(attrs, ~w(priority urgent)a) + end end diff --git a/lib/console_web/templates/email/notification.html.eex b/lib/console_web/templates/email/notification.html.eex new file mode 100644 index 0000000000..36f3622610 --- /dev/null +++ b/lib/console_web/templates/email/notification.html.eex @@ -0,0 +1,11 @@ +
+ You have a new activity in Plural +
+ +
+ <%= markdown(@notification.text) %> +
+ +"> + Login to the Plural Console to see more + diff --git a/lib/console_web/templates/email/notification.text.eex b/lib/console_web/templates/email/notification.text.eex new file mode 100644 index 0000000000..b93e57f69b --- /dev/null +++ b/lib/console_web/templates/email/notification.text.eex @@ -0,0 +1,3 @@ +You have a new activity in Plural! Details below: + +<%= @notification.text %> diff --git a/lib/console_web/views/email_view.ex b/lib/console_web/views/email_view.ex index 17270ef215..d1c3cb5875 100644 --- a/lib/console_web/views/email_view.ex +++ b/lib/console_web/views/email_view.ex @@ -31,4 +31,28 @@ defmodule ConsoleWeb.EmailView do ConsoleWeb.SharedView.render(template, assigns) end + + def markdown(text) do + MDEx.to_html( + text, + extension: [ + strikethrough: true, + tagfilter: true, + table: true, + autolink: true, + tasklist: true, + footnotes: true, + shortcodes: true, + ], + parse: [ + smart: true, + relaxed_tasklist_matching: true, + relaxed_autolinks: true + ], + render: [ + github_pre_lang: true, + escape: true + ] + ) + end end diff --git a/mix.exs b/mix.exs index 6eacad9a3a..5da030dd60 100644 --- a/mix.exs +++ b/mix.exs @@ -85,6 +85,7 @@ defmodule Console.MixProject do {:ecto_sql, "~> 3.9.0"}, {:yajwt, "~> 1.4"}, {:joken, "~> 2.6"}, + {:mdex, "~> 0.1"}, {:piazza_core, "~> 0.3.9", git: "https://github.com/michaeljguarino/piazza_core", branch: "master", override: true}, {:flow, "~> 0.15.0"}, {:bourne, "~> 1.1"}, diff --git a/mix.lock b/mix.lock index 6dd6f66d0b..f29be829eb 100644 --- a/mix.lock +++ b/mix.lock @@ -75,6 +75,7 @@ "kazan": {:git, "https://github.com/michaeljguarino/kazan.git", "ef2050c547ab74c283ef02397925d48637bd67a1", [ref: "ef2050c547ab74c283ef02397925d48637bd67a1"]}, "libcluster": {:hex, :libcluster, "3.2.1", "b2cd5b447cde25d5897749bee6f7aaeb6c96ac379481024e9b6ba495dabeb97d", [:mix], [{:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "89f225612d135edce9def56f43bf18d575d88ac4680e3f6161283f2e55cadca4"}, "libring": {:hex, :libring, "1.6.0", "d5dca4bcb1765f862ab59f175b403e356dec493f565670e0bacc4b35e109ce0d", [:mix], [], "hexpm", "5e91ece396af4bce99953d49ee0b02f698cd38326d93cd068361038167484319"}, + "mdex": {:hex, :mdex, "0.1.18", "20c5b12633e485f9a6eaf06e8d992fa186c5798be98d1405ee6a8bb6b465f59e", [:mix], [{:rustler, "~> 0.32", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.7", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "726b1aee2cc197c08f5b004d73a64d268d28837f79f8eaba74478237ddc9930f"}, "merkle_map": {:hex, :merkle_map, "0.2.1", "01a88c87a6b9fb594c67c17ebaf047ee55ffa34e74297aa583ed87148006c4c8", [:mix], [], "hexpm", "fed4d143a5c8166eee4fa2b49564f3c4eace9cb252f0a82c1613bba905b2d04d"}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, "mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"}, @@ -120,6 +121,8 @@ "remote_ip": {:hex, :remote_ip, "0.2.1", "cd27cd8ea54ecaaf3532776ff4c5e353b3804e710302e88c01eadeaaf42e7e24", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:inet_cidr, "~> 1.0", [hex: :inet_cidr, repo: "hexpm", optional: false]}, {:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "2e7ab1a461cc3cd5719f37e116a08f45c8b8493923063631b164315d6b7ee8e0"}, "req": {:hex, :req, "0.4.14", "103de133a076a31044e5458e0f850d5681eef23dfabf3ea34af63212e3b902e2", [:mix], [{:aws_signature, "~> 0.3.2", [hex: :aws_signature, repo: "hexpm", optional: true]}, {:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:nimble_ownership, "~> 0.2.0 or ~> 0.3.0", [hex: :nimble_ownership, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "2ddd3d33f9ab714ced8d3c15fd03db40c14dbf129003c4a3eb80fac2cc0b1b08"}, "reverse_proxy_plug": {:hex, :reverse_proxy_plug, "1.2.2", "e0dadc76d7f48372484972ee1feee563901ac43421257edf7b611ee5a15612fb", [:mix], [{:cowboy, "~> 2.4", [hex: :cowboy, repo: "hexpm", optional: false]}, {:httpoison, "~> 1.2", [hex: :httpoison, repo: "hexpm", optional: false]}, {:plug, "~> 1.6", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "efd42720cb9038ad6d1a4f2f01355df3fcd93e9d50b5a3e522eb4cc1142368ae"}, + "rustler": {:hex, :rustler, "0.34.0", "e9a73ee419fc296a10e49b415a2eb87a88c9217aa0275ec9f383d37eed290c1c", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:req, "~> 0.5", [hex: :req, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "1d0c7449482b459513003230c0e2422b0252245776fe6fd6e41cb2b11bd8e628"}, + "rustler_precompiled": {:hex, :rustler_precompiled, "0.8.1", "8afe0b6f3a9a677ada046cdd23e3f4c6399618b91a6122289324774961281e1e", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "90b8c2297bf7959cfa1c927b2881faad7bb0707183124955369991b76177a166"}, "shards": {:hex, :shards, "1.1.1", "8b42323457d185b26b15d05187784ce6c5d1e181b35c46fca36c45f661defe02", [:make, :rebar3], [], "hexpm", "169a045dae6668cda15fbf86d31bf433d0dbbaec42c8c23ca4f8f2d405ea8eda"}, "slipstream": {:hex, :slipstream, "1.1.1", "7e56f62f1a9ee81351e3c36f57b9b187e00dc2f470e70ba46ea7ad16e80b061f", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mint_web_socket, "~> 0.2 or ~> 1.0", [hex: :mint_web_socket, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.1 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c20e420cde1654329d38ec3aa1c0e4debbd4c91ca421491e7984ad4644e638a6"}, "sobelow": {:hex, :sobelow, "0.13.0", "218afe9075904793f5c64b8837cc356e493d88fddde126a463839351870b8d1e", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "cd6e9026b85fc35d7529da14f95e85a078d9dd1907a9097b3ba6ac7ebbe34a0d"}, @@ -133,6 +136,7 @@ "tentacat": {:hex, :tentacat, "2.3.0", "2d252bf7526292d461fd799739f6b62587d46bf3ee53243d3e538199f285a9fc", [:mix], [{:httpoison, "~> 2.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0570a962fd4b0d13a77e6b7002efd6d6c3c33b7277444c61904528b3c3956f96"}, "thousand_island": {:hex, :thousand_island, "1.3.5", "6022b6338f1635b3d32406ff98d68b843ba73b3aa95cfc27154223244f3a6ca5", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2be6954916fdfe4756af3239fb6b6d75d0b8063b5df03ba76fd8a4c87849e180"}, "timex": {:hex, :timex, "3.7.11", "bb95cb4eb1d06e27346325de506bcc6c30f9c6dea40d1ebe390b262fad1862d1", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.20", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.1", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "8b9024f7efbabaf9bd7aa04f65cf8dcd7c9818ca5737677c7b76acbc6a94d1aa"}, + "toml": {:hex, :toml, "0.7.0", "fbcd773caa937d0c7a02c301a1feea25612720ac3fa1ccb8bfd9d30d822911de", [:mix], [], "hexpm", "0690246a2478c1defd100b0c9b89b4ea280a22be9a7b313a8a058a2408a2fa70"}, "tzdata": {:hex, :tzdata, "1.1.1", "20c8043476dfda8504952d00adac41c6eda23912278add38edc140ae0c5bcc46", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "a69cec8352eafcd2e198dea28a34113b60fdc6cb57eb5ad65c10292a6ba89787"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, "uniq": {:hex, :uniq, "0.6.1", "369660ecbc19051be526df3aa85dc393af5f61f45209bce2fa6d7adb051ae03c", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm", "6426c34d677054b3056947125b22e0daafd10367b85f349e24ac60f44effb916"}, diff --git a/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml b/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml index 2811dc5f5a..312a1efb4a 100644 --- a/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml @@ -60,6 +60,22 @@ spec: configuration: description: Configuration for the specific type properties: + plural: + description: Plural sink configuration knobs + properties: + priority: + description: The priority to label any delivered notification + as + enum: + - LOW + - MEDIUM + - HIGH + type: string + urgent: + description: Whether to immediately deliver the notification + via SMTP + type: boolean + type: object slack: description: Slack url properties: diff --git a/priv/repo/migrations/20240924230544_add_app_notificaiton_urgent.exs b/priv/repo/migrations/20240924230544_add_app_notificaiton_urgent.exs new file mode 100644 index 0000000000..f5d5752f78 --- /dev/null +++ b/priv/repo/migrations/20240924230544_add_app_notificaiton_urgent.exs @@ -0,0 +1,9 @@ +defmodule Console.Repo.Migrations.AddAppNotificaitonUrgent do + use Ecto.Migration + + def change do + alter table(:app_notifications) do + add :urgent, :boolean, default: false + end + end +end diff --git a/schema/schema.graphql b/schema/schema.graphql index f068a22eab..fb07ea9921 100644 --- a/schema/schema.graphql +++ b/schema/schema.graphql @@ -2164,6 +2164,9 @@ input UrlSinkAttributes { input PluralSinkAttributes { priority: NotificationPriority! + + "whether to immediately deliver the derived notification via SMTP" + urgent: Boolean } input NotificationRouterAttributes { @@ -2276,6 +2279,14 @@ type SinkConfiguration { id: ID! slack: UrlSinkConfiguration teams: UrlSinkConfiguration + plural: PluralSinkConfiguration +} + +type PluralSinkConfiguration { + priority: NotificationPriority! + + "whether to immediately deliver the derived notification via SMTP" + urgent: Boolean } "A notification sink based off slack incoming webhook urls" diff --git a/test/console/deployments/notifications_test.exs b/test/console/deployments/notifications_test.exs index 978c116fa7..b07127a628 100644 --- a/test/console/deployments/notifications_test.exs +++ b/test/console/deployments/notifications_test.exs @@ -1,6 +1,7 @@ defmodule Console.Deployments.NotificationsTest do use Console.DataCase, async: true use Mimic + alias Console.PubSub alias Console.Deployments.Notifications describe "#upsert_sink/2" do @@ -144,6 +145,35 @@ defmodule Console.Deployments.NotificationsTest do assert Enum.find(res, & &1.user_id == user.id) assert Enum.find(res, & &1.user_id == user2.id) + assert Enum.all?(res, & &1.priority == :low) + + for e <- res, + do: assert_receive {:event, %PubSub.AppNotificationCreated{item: ^e}} + end + + test "if a plural notification sink is configured as urgent, it will mark notifications as urgent" do + user = insert(:user) + %{group: group} = insert(:group_member) + service = insert(:service) + sink = insert(:notification_sink, + type: :plural, + configuration: %{plural: %{urgent: true}}, + notification_bindings: [ + %{user_id: user.id}, + %{group_id: group.id} + ] + ) + + {:ok, res} = Notifications.deliver( + "service.update", + %{service: service, source: %{url: service.repository.url, ref: "main"}}, + sink + ) + + assert Enum.all?(res, & &1.urgent) + + for e <- res, + do: assert_receive {:event, %PubSub.AppNotificationCreated{item: ^e}} end end diff --git a/test/console/deployments/pubsub/email_test.exs b/test/console/deployments/pubsub/email_test.exs index ed0bf6bd33..228bb8ac4d 100644 --- a/test/console/deployments/pubsub/email_test.exs +++ b/test/console/deployments/pubsub/email_test.exs @@ -28,4 +28,24 @@ defmodule Console.Deployments.PubSub.EmailTest do assert_delivered_email Builder.Secret.email(share, actor) end end + + describe "AppNotificationCreated" do + test "it will deliver if an app notification is urgent" do + notif = insert(:app_notification, urgent: true) + + event = %PubSub.AppNotificationCreated{item: notif} + Email.handle_event(event) + + assert_delivered_email Builder.Notification.email(notif) + end + + test "it will ignore if an app notification is not urgent" do + notif = insert(:app_notification, urgent: false) + + event = %PubSub.AppNotificationCreated{item: notif} + Email.handle_event(event) + + refute_delivered_email Builder.Notification.email(notif) + end + end end From 46118120c8718781d4708da38a7b08d2c2bde714 Mon Sep 17 00:00:00 2001 From: Lukasz Zajaczkowski Date: Wed, 25 Sep 2024 15:49:59 +0200 Subject: [PATCH 3/7] regenerate CRDS after kubebuilder update (#1415) --- ...deployments.plural.sh_clusterrestores.yaml | 22 +- ...ents.plural.sh_clusterrestoretriggers.yaml | 22 +- .../crds/deployments.plural.sh_clusters.yaml | 23 +- ...deployments.plural.sh_customstackruns.yaml | 22 +- ...loyments.plural.sh_deploymentsettings.yaml | 118 +--- ...deployments.plural.sh_gitrepositories.yaml | 22 +- .../deployments.plural.sh_globalservices.yaml | 68 +- ...eployments.plural.sh_helmrepositories.yaml | 21 +- ...yments.plural.sh_infrastructurestacks.yaml | 204 +----- ...ployments.plural.sh_managednamespaces.yaml | 66 +- ...yments.plural.sh_namespacecredentials.yaml | 22 +- ...oyments.plural.sh_notificationrouters.yaml | 45 +- ...ployments.plural.sh_notificationsinks.yaml | 21 +- ...ents.plural.sh_observabilityproviders.yaml | 21 +- .../crds/deployments.plural.sh_observers.yaml | 25 +- ...eployments.plural.sh_pipelinecontexts.yaml | 22 +- .../crds/deployments.plural.sh_pipelines.yaml | 140 +--- .../deployments.plural.sh_prautomations.yaml | 26 +- ...yments.plural.sh_prautomationtriggers.yaml | 24 +- .../crds/deployments.plural.sh_projects.yaml | 21 +- .../crds/deployments.plural.sh_providers.yaml | 21 +- .../deployments.plural.sh_scmconnections.yaml | 22 +- ...deployments.plural.sh_serviceaccounts.yaml | 21 +- ...loyments.plural.sh_servicedeployments.yaml | 88 +-- ...eployments.plural.sh_stackdefinitions.yaml | 22 +- ...deployments.plural.sh_clusterrestores.yaml | 22 +- ...ents.plural.sh_clusterrestoretriggers.yaml | 22 +- .../bases/deployments.plural.sh_clusters.yaml | 23 +- ...deployments.plural.sh_customstackruns.yaml | 22 +- ...loyments.plural.sh_deploymentsettings.yaml | 118 +--- ...deployments.plural.sh_gitrepositories.yaml | 22 +- .../deployments.plural.sh_globalservices.yaml | 68 +- ...eployments.plural.sh_helmrepositories.yaml | 21 +- ...yments.plural.sh_infrastructurestacks.yaml | 204 +----- ...ployments.plural.sh_managednamespaces.yaml | 66 +- ...yments.plural.sh_namespacecredentials.yaml | 22 +- ...oyments.plural.sh_notificationrouters.yaml | 45 +- ...ployments.plural.sh_notificationsinks.yaml | 21 +- ...ents.plural.sh_observabilityproviders.yaml | 21 +- .../deployments.plural.sh_observers.yaml | 25 +- ...eployments.plural.sh_pipelinecontexts.yaml | 22 +- .../deployments.plural.sh_pipelines.yaml | 140 +--- .../deployments.plural.sh_prautomations.yaml | 26 +- ...yments.plural.sh_prautomationtriggers.yaml | 24 +- .../bases/deployments.plural.sh_projects.yaml | 21 +- .../deployments.plural.sh_providers.yaml | 21 +- .../deployments.plural.sh_scmconnections.yaml | 22 +- ...deployments.plural.sh_serviceaccounts.yaml | 21 +- ...loyments.plural.sh_servicedeployments.yaml | 88 +-- ...eployments.plural.sh_stackdefinitions.yaml | 22 +- go/controller/config/rbac/role.yaml | 656 ++---------------- .../internal/test/mocks/ConsoleClient_mock.go | 2 +- ...deployments.plural.sh_clusterrestores.yaml | 22 +- ...ents.plural.sh_clusterrestoretriggers.yaml | 22 +- .../crds/deployments.plural.sh_clusters.yaml | 23 +- ...deployments.plural.sh_customstackruns.yaml | 22 +- ...loyments.plural.sh_deploymentsettings.yaml | 118 +--- ...deployments.plural.sh_gitrepositories.yaml | 22 +- .../deployments.plural.sh_globalservices.yaml | 68 +- ...eployments.plural.sh_helmrepositories.yaml | 21 +- ...yments.plural.sh_infrastructurestacks.yaml | 204 +----- ...ployments.plural.sh_managednamespaces.yaml | 66 +- ...yments.plural.sh_namespacecredentials.yaml | 22 +- ...oyments.plural.sh_notificationrouters.yaml | 45 +- ...ployments.plural.sh_notificationsinks.yaml | 21 +- ...ents.plural.sh_observabilityproviders.yaml | 21 +- .../crds/deployments.plural.sh_observers.yaml | 25 +- ...eployments.plural.sh_pipelinecontexts.yaml | 22 +- .../crds/deployments.plural.sh_pipelines.yaml | 140 +--- .../deployments.plural.sh_prautomations.yaml | 26 +- ...yments.plural.sh_prautomationtriggers.yaml | 24 +- .../crds/deployments.plural.sh_projects.yaml | 21 +- .../crds/deployments.plural.sh_providers.yaml | 21 +- .../deployments.plural.sh_scmconnections.yaml | 22 +- ...deployments.plural.sh_serviceaccounts.yaml | 21 +- ...loyments.plural.sh_servicedeployments.yaml | 88 +-- ...eployments.plural.sh_stackdefinitions.yaml | 22 +- 77 files changed, 526 insertions(+), 3519 deletions(-) diff --git a/charts/controller/crds/deployments.plural.sh_clusterrestores.yaml b/charts/controller/crds/deployments.plural.sh_clusterrestores.yaml index 3448266c3d..655f39fcc1 100644 --- a/charts/controller/crds/deployments.plural.sh_clusterrestores.yaml +++ b/charts/controller/crds/deployments.plural.sh_clusterrestores.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusterrestores.deployments.plural.sh spec: group: deployments.plural.sh @@ -57,7 +57,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -123,16 +122,8 @@ spec: description: Represents the observations of ClusterRestore current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -173,12 +164,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_clusterrestoretriggers.yaml b/charts/controller/crds/deployments.plural.sh_clusterrestoretriggers.yaml index 51d9be959e..f8dc5f2648 100644 --- a/charts/controller/crds/deployments.plural.sh_clusterrestoretriggers.yaml +++ b/charts/controller/crds/deployments.plural.sh_clusterrestoretriggers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusterrestoretriggers.deployments.plural.sh spec: group: deployments.plural.sh @@ -55,7 +55,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -91,16 +90,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -141,12 +132,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_clusters.yaml b/charts/controller/crds/deployments.plural.sh_clusters.yaml index d0ac64d550..3715bb65b1 100644 --- a/charts/controller/crds/deployments.plural.sh_clusters.yaml +++ b/charts/controller/crds/deployments.plural.sh_clusters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusters.deployments.plural.sh spec: group: deployments.plural.sh @@ -260,7 +260,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -309,7 +308,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -355,16 +353,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -405,12 +395,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_customstackruns.yaml b/charts/controller/crds/deployments.plural.sh_customstackruns.yaml index ec2244dc22..29dc505d7e 100644 --- a/charts/controller/crds/deployments.plural.sh_customstackruns.yaml +++ b/charts/controller/crds/deployments.plural.sh_customstackruns.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: customstackruns.deployments.plural.sh spec: group: deployments.plural.sh @@ -152,7 +152,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -163,16 +162,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -213,12 +204,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_deploymentsettings.yaml b/charts/controller/crds/deployments.plural.sh_deploymentsettings.yaml index 8155093631..d8afc6cec2 100644 --- a/charts/controller/crds/deployments.plural.sh_deploymentsettings.yaml +++ b/charts/controller/crds/deployments.plural.sh_deploymentsettings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: deploymentsettings.deployments.plural.sh spec: group: deployments.plural.sh @@ -135,7 +135,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -171,7 +170,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -205,7 +203,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -321,12 +318,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -338,7 +333,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -400,7 +394,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -421,7 +414,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -452,7 +444,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -522,7 +513,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1634,7 +1624,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -1705,7 +1694,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -1741,7 +1729,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1762,7 +1749,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -2061,11 +2047,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2281,11 +2267,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2439,11 +2425,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -2634,7 +2618,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2718,11 +2701,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3032,7 +3015,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3102,7 +3084,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -3173,7 +3154,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -3209,7 +3189,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3230,7 +3209,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3523,11 +3501,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3733,11 +3711,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3890,11 +3868,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -4073,7 +4049,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4151,11 +4126,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4297,7 +4272,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4474,7 +4448,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4564,7 +4537,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -4635,7 +4607,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -4671,7 +4642,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4692,7 +4662,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4991,11 +4960,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5211,11 +5180,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5369,11 +5338,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -5564,7 +5531,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5648,11 +5614,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5913,11 +5879,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6017,11 +5981,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6048,14 +6010,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6094,10 +6054,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is associated @@ -6126,12 +6084,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6218,7 +6174,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6446,7 +6401,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6486,7 +6440,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6496,7 +6449,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6507,7 +6459,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6519,7 +6470,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6588,7 +6538,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6712,7 +6661,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6751,7 +6699,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6821,7 +6768,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify whether @@ -6859,7 +6805,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7007,7 +6952,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7018,17 +6962,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7042,7 +6983,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7052,11 +6992,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7308,7 +7246,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target @@ -7373,7 +7310,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7409,7 +7345,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7490,9 +7425,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7531,7 +7463,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7573,7 +7504,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7706,14 +7636,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7848,7 +7775,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -8003,7 +7929,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional field @@ -8096,7 +8021,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8139,7 +8063,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8188,7 +8111,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8312,7 +8234,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8394,16 +8315,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -8444,12 +8357,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_gitrepositories.yaml b/charts/controller/crds/deployments.plural.sh_gitrepositories.yaml index 8ca923fdc4..90d491495d 100644 --- a/charts/controller/crds/deployments.plural.sh_gitrepositories.yaml +++ b/charts/controller/crds/deployments.plural.sh_gitrepositories.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: gitrepositories.deployments.plural.sh spec: group: deployments.plural.sh @@ -62,7 +62,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -119,16 +118,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -169,12 +160,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_globalservices.yaml b/charts/controller/crds/deployments.plural.sh_globalservices.yaml index 606187f45e..6115c1a8ed 100644 --- a/charts/controller/crds/deployments.plural.sh_globalservices.yaml +++ b/charts/controller/crds/deployments.plural.sh_globalservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: globalservices.deployments.plural.sh spec: group: deployments.plural.sh @@ -82,7 +82,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -126,7 +125,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -174,7 +172,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -235,24 +232,8 @@ spec: dependencies: description: Dependencies contain dependent services items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -266,7 +247,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -354,7 +334,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -399,7 +378,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key @@ -454,24 +432,8 @@ spec: services are also not drained on cluster deletion. type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -485,7 +447,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -541,16 +502,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -591,12 +544,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_helmrepositories.yaml b/charts/controller/crds/deployments.plural.sh_helmrepositories.yaml index 6954d7b348..ac7484a1ac 100644 --- a/charts/controller/crds/deployments.plural.sh_helmrepositories.yaml +++ b/charts/controller/crds/deployments.plural.sh_helmrepositories.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: helmrepositories.deployments.plural.sh spec: group: deployments.plural.sh @@ -178,16 +178,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -228,12 +220,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_infrastructurestacks.yaml b/charts/controller/crds/deployments.plural.sh_infrastructurestacks.yaml index cdc2c28fe9..3215a803e6 100644 --- a/charts/controller/crds/deployments.plural.sh_infrastructurestacks.yaml +++ b/charts/controller/crds/deployments.plural.sh_infrastructurestacks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: infrastructurestacks.deployments.plural.sh spec: group: deployments.plural.sh @@ -91,24 +91,8 @@ spec: type: array type: object clusterRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -122,7 +106,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -221,7 +204,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must @@ -244,7 +226,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must @@ -276,7 +257,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -390,12 +370,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -407,7 +385,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -469,7 +446,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -490,7 +466,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -521,7 +496,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -591,7 +565,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1686,7 +1659,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1756,7 +1728,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1790,7 +1761,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -1810,7 +1780,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -2109,11 +2078,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2328,11 +2297,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2485,11 +2454,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -2680,7 +2647,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2764,11 +2730,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3075,7 +3041,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3144,7 +3109,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3214,7 +3178,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3248,7 +3211,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -3268,7 +3230,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -3561,11 +3522,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3770,11 +3731,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3926,11 +3887,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -4109,7 +4068,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4187,11 +4145,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4332,7 +4290,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4505,7 +4462,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4594,7 +4550,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4664,7 +4619,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4698,7 +4652,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -4718,7 +4671,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -5017,11 +4969,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5236,11 +5188,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5393,11 +5345,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -5588,7 +5538,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5672,11 +5621,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5934,11 +5883,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6038,11 +5985,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6069,14 +6014,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6115,10 +6058,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is associated to @@ -6147,12 +6088,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6239,7 +6178,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6463,7 +6401,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6503,7 +6440,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6513,7 +6449,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6524,7 +6459,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6536,7 +6470,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6605,7 +6538,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6726,7 +6658,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6765,7 +6696,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6834,7 +6764,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify whether the @@ -6870,7 +6799,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7016,7 +6944,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7027,17 +6954,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7051,7 +6975,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7061,11 +6984,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7312,7 +7233,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target @@ -7376,7 +7296,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7412,7 +7331,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7493,9 +7411,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7532,7 +7447,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7574,7 +7488,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7706,14 +7619,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7846,7 +7756,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -7995,7 +7904,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional field specify @@ -8086,7 +7994,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8129,7 +8036,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8178,7 +8084,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8300,7 +8205,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8388,24 +8292,8 @@ spec: identifier: type: string observabilityProviderRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8419,7 +8307,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8470,7 +8357,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8514,7 +8400,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8544,24 +8429,8 @@ spec: type: object x-kubernetes-map-type: atomic scmConnectionRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8575,7 +8444,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8605,24 +8473,8 @@ spec: type: object x-kubernetes-map-type: atomic stackDefinitionRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8636,7 +8488,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8700,16 +8551,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -8750,12 +8593,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_managednamespaces.yaml b/charts/controller/crds/deployments.plural.sh_managednamespaces.yaml index 4ca8c07871..647cb88c9f 100644 --- a/charts/controller/crds/deployments.plural.sh_managednamespaces.yaml +++ b/charts/controller/crds/deployments.plural.sh_managednamespaces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: managednamespaces.deployments.plural.sh spec: group: deployments.plural.sh @@ -91,7 +91,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -152,24 +151,8 @@ spec: dependencies: description: Dependencies contain dependent services items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -183,7 +166,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -271,7 +253,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -316,7 +297,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key @@ -371,24 +351,8 @@ spec: services are also not drained on cluster deletion. type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -402,7 +366,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -470,16 +433,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -520,12 +475,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_namespacecredentials.yaml b/charts/controller/crds/deployments.plural.sh_namespacecredentials.yaml index 18317f5c5d..f47b063a70 100644 --- a/charts/controller/crds/deployments.plural.sh_namespacecredentials.yaml +++ b/charts/controller/crds/deployments.plural.sh_namespacecredentials.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: namespacecredentials.deployments.plural.sh spec: group: deployments.plural.sh @@ -61,6 +61,7 @@ spec: x-kubernetes-map-type: atomic required: - namespaces + - secretRef type: object status: properties: @@ -68,16 +69,8 @@ spec: description: Conditions represent the observations of a NamespaceCredentials current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -118,12 +111,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_notificationrouters.yaml b/charts/controller/crds/deployments.plural.sh_notificationrouters.yaml index 3183259365..8b9bd8d521 100644 --- a/charts/controller/crds/deployments.plural.sh_notificationrouters.yaml +++ b/charts/controller/crds/deployments.plural.sh_notificationrouters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: notificationrouters.deployments.plural.sh spec: group: deployments.plural.sh @@ -65,7 +65,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -110,7 +109,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -158,7 +156,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -196,24 +193,8 @@ spec: sinks: description: Sinks notification sinks to deliver notifications to items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -227,7 +208,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -264,16 +244,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -314,12 +286,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml b/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml index 312a1efb4a..5fb2a2259e 100644 --- a/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml +++ b/charts/controller/crds/deployments.plural.sh_notificationsinks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: notificationsinks.deployments.plural.sh spec: group: deployments.plural.sh @@ -111,16 +111,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -161,12 +153,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_observabilityproviders.yaml b/charts/controller/crds/deployments.plural.sh_observabilityproviders.yaml index e30f57ff6a..108fbb0ca7 100644 --- a/charts/controller/crds/deployments.plural.sh_observabilityproviders.yaml +++ b/charts/controller/crds/deployments.plural.sh_observabilityproviders.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: observabilityproviders.deployments.plural.sh spec: group: deployments.plural.sh @@ -101,16 +101,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -151,12 +143,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_observers.yaml b/charts/controller/crds/deployments.plural.sh_observers.yaml index c0d0cf55e5..86d8959412 100644 --- a/charts/controller/crds/deployments.plural.sh_observers.yaml +++ b/charts/controller/crds/deployments.plural.sh_observers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: observers.deployments.plural.sh spec: group: deployments.plural.sh @@ -69,7 +69,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -127,7 +126,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -195,7 +193,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -245,7 +242,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -573,16 +569,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -623,12 +611,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_pipelinecontexts.yaml b/charts/controller/crds/deployments.plural.sh_pipelinecontexts.yaml index 258632fbe2..730892ea72 100644 --- a/charts/controller/crds/deployments.plural.sh_pipelinecontexts.yaml +++ b/charts/controller/crds/deployments.plural.sh_pipelinecontexts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: pipelinecontexts.deployments.plural.sh spec: group: deployments.plural.sh @@ -58,7 +58,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -94,16 +93,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -144,12 +135,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_pipelines.yaml b/charts/controller/crds/deployments.plural.sh_pipelines.yaml index 3c87cb31eb..5fcec3d834 100644 --- a/charts/controller/crds/deployments.plural.sh_pipelines.yaml +++ b/charts/controller/crds/deployments.plural.sh_pipelines.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: pipelines.deployments.plural.sh spec: group: deployments.plural.sh @@ -81,7 +81,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -204,12 +203,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -221,7 +218,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -283,7 +279,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -304,7 +299,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -335,7 +329,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -405,7 +398,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1597,7 +1589,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1682,7 +1673,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1721,7 +1711,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1744,7 +1733,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -2070,11 +2058,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2300,11 +2288,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2465,11 +2453,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -2672,7 +2658,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2759,11 +2744,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3087,7 +3072,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3161,7 +3145,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3246,7 +3229,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3285,7 +3267,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3308,7 +3289,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3628,11 +3608,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3848,11 +3828,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4012,11 +3992,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -4207,7 +4185,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4288,11 +4265,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4440,7 +4417,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4624,7 +4600,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4719,7 +4694,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4804,7 +4778,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4843,7 +4816,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4866,7 +4838,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -5192,11 +5163,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5422,11 +5393,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5587,11 +5558,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -5794,7 +5763,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5881,11 +5849,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -6159,11 +6127,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6264,11 +6230,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6295,14 +6259,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6341,10 +6303,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is @@ -6374,12 +6334,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6470,7 +6428,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6702,7 +6659,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6742,7 +6698,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6752,7 +6707,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6763,7 +6717,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6775,7 +6728,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6845,7 +6797,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6979,7 +6930,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7018,7 +6968,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7090,7 +7039,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -7129,7 +7077,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7295,7 +7242,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7306,17 +7252,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7330,7 +7273,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7340,11 +7282,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7612,7 +7552,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: @@ -7680,7 +7619,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7718,7 +7656,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7801,9 +7738,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7842,7 +7776,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7886,7 +7819,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8025,14 +7957,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -8182,7 +8111,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional @@ -8391,7 +8319,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional @@ -8489,7 +8416,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8532,7 +8458,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8584,7 +8509,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8713,7 +8637,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8832,7 +8755,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8896,7 +8818,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8951,7 +8872,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8982,24 +8902,8 @@ spec: x-kubernetes-map-type: atomic type: object serviceRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information + to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -9013,7 +8917,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -9055,16 +8958,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -9105,12 +9000,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_prautomations.yaml b/charts/controller/crds/deployments.plural.sh_prautomations.yaml index 1f1cddbae9..c5fec4db5f 100644 --- a/charts/controller/crds/deployments.plural.sh_prautomations.yaml +++ b/charts/controller/crds/deployments.plural.sh_prautomations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: prautomations.deployments.plural.sh spec: group: deployments.plural.sh @@ -104,7 +104,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -293,7 +292,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -337,7 +335,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -390,7 +387,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -434,7 +430,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -525,16 +520,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -575,12 +562,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_prautomationtriggers.yaml b/charts/controller/crds/deployments.plural.sh_prautomationtriggers.yaml index 1ba8f96b68..85eff852e2 100644 --- a/charts/controller/crds/deployments.plural.sh_prautomationtriggers.yaml +++ b/charts/controller/crds/deployments.plural.sh_prautomationtriggers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: prautomationtriggers.deployments.plural.sh spec: group: deployments.plural.sh @@ -63,7 +63,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -92,6 +91,8 @@ spec: type: string type: object x-kubernetes-map-type: atomic + required: + - branch type: object status: properties: @@ -99,16 +100,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -149,12 +142,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_projects.yaml b/charts/controller/crds/deployments.plural.sh_projects.yaml index 6b12a59712..89842f1353 100644 --- a/charts/controller/crds/deployments.plural.sh_projects.yaml +++ b/charts/controller/crds/deployments.plural.sh_projects.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: projects.deployments.plural.sh spec: group: deployments.plural.sh @@ -103,16 +103,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -153,12 +145,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_providers.yaml b/charts/controller/crds/deployments.plural.sh_providers.yaml index 353e54ddad..ec795b8133 100644 --- a/charts/controller/crds/deployments.plural.sh_providers.yaml +++ b/charts/controller/crds/deployments.plural.sh_providers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: providers.deployments.plural.sh spec: group: deployments.plural.sh @@ -141,16 +141,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -191,12 +183,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_scmconnections.yaml b/charts/controller/crds/deployments.plural.sh_scmconnections.yaml index 8e74136409..f9e9b07a48 100644 --- a/charts/controller/crds/deployments.plural.sh_scmconnections.yaml +++ b/charts/controller/crds/deployments.plural.sh_scmconnections.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: scmconnections.deployments.plural.sh spec: group: deployments.plural.sh @@ -72,7 +72,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -125,16 +124,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -175,12 +166,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_serviceaccounts.yaml b/charts/controller/crds/deployments.plural.sh_serviceaccounts.yaml index 37bd0b0f18..494a730d97 100644 --- a/charts/controller/crds/deployments.plural.sh_serviceaccounts.yaml +++ b/charts/controller/crds/deployments.plural.sh_serviceaccounts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: serviceaccounts.deployments.plural.sh spec: group: deployments.plural.sh @@ -73,16 +73,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -123,12 +115,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/charts/controller/crds/deployments.plural.sh_servicedeployments.yaml b/charts/controller/crds/deployments.plural.sh_servicedeployments.yaml index 79c0766d78..0d6f7e367c 100644 --- a/charts/controller/crds/deployments.plural.sh_servicedeployments.yaml +++ b/charts/controller/crds/deployments.plural.sh_servicedeployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: servicedeployments.deployments.plural.sh spec: group: deployments.plural.sh @@ -81,24 +81,8 @@ spec: type: array type: object clusterRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -112,7 +96,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -236,7 +219,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -281,7 +263,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must @@ -319,24 +300,8 @@ spec: items: properties: stackRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -350,7 +315,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -404,24 +368,8 @@ spec: protect: type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -435,7 +383,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -525,16 +472,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -575,12 +514,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -614,6 +548,8 @@ spec: description: SHA of last applied configuration. type: string type: object + required: + - spec type: object served: true storage: true diff --git a/charts/controller/crds/deployments.plural.sh_stackdefinitions.yaml b/charts/controller/crds/deployments.plural.sh_stackdefinitions.yaml index 6044a500a0..dc1d62e6bd 100644 --- a/charts/controller/crds/deployments.plural.sh_stackdefinitions.yaml +++ b/charts/controller/crds/deployments.plural.sh_stackdefinitions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: stackdefinitions.deployments.plural.sh spec: group: deployments.plural.sh @@ -130,6 +130,7 @@ spec: - DESTROY type: string required: + - args - cmd - stage type: object @@ -141,16 +142,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -191,12 +184,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_clusterrestores.yaml b/go/controller/config/crd/bases/deployments.plural.sh_clusterrestores.yaml index 3448266c3d..655f39fcc1 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_clusterrestores.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_clusterrestores.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusterrestores.deployments.plural.sh spec: group: deployments.plural.sh @@ -57,7 +57,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -123,16 +122,8 @@ spec: description: Represents the observations of ClusterRestore current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -173,12 +164,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_clusterrestoretriggers.yaml b/go/controller/config/crd/bases/deployments.plural.sh_clusterrestoretriggers.yaml index 51d9be959e..f8dc5f2648 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_clusterrestoretriggers.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_clusterrestoretriggers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusterrestoretriggers.deployments.plural.sh spec: group: deployments.plural.sh @@ -55,7 +55,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -91,16 +90,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -141,12 +132,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_clusters.yaml b/go/controller/config/crd/bases/deployments.plural.sh_clusters.yaml index d0ac64d550..3715bb65b1 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_clusters.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_clusters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusters.deployments.plural.sh spec: group: deployments.plural.sh @@ -260,7 +260,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -309,7 +308,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -355,16 +353,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -405,12 +395,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_customstackruns.yaml b/go/controller/config/crd/bases/deployments.plural.sh_customstackruns.yaml index ec2244dc22..29dc505d7e 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_customstackruns.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_customstackruns.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: customstackruns.deployments.plural.sh spec: group: deployments.plural.sh @@ -152,7 +152,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -163,16 +162,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -213,12 +204,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_deploymentsettings.yaml b/go/controller/config/crd/bases/deployments.plural.sh_deploymentsettings.yaml index 8155093631..d8afc6cec2 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_deploymentsettings.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_deploymentsettings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: deploymentsettings.deployments.plural.sh spec: group: deployments.plural.sh @@ -135,7 +135,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -171,7 +170,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -205,7 +203,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -321,12 +318,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -338,7 +333,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -400,7 +394,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -421,7 +414,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -452,7 +444,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -522,7 +513,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1634,7 +1624,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -1705,7 +1694,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -1741,7 +1729,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1762,7 +1749,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -2061,11 +2047,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2281,11 +2267,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2439,11 +2425,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -2634,7 +2618,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2718,11 +2701,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3032,7 +3015,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3102,7 +3084,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -3173,7 +3154,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -3209,7 +3189,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3230,7 +3209,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3523,11 +3501,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3733,11 +3711,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3890,11 +3868,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -4073,7 +4049,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4151,11 +4126,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4297,7 +4272,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4474,7 +4448,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4564,7 +4537,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -4635,7 +4607,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -4671,7 +4642,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4692,7 +4662,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4991,11 +4960,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5211,11 +5180,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5369,11 +5338,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -5564,7 +5531,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5648,11 +5614,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5913,11 +5879,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6017,11 +5981,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6048,14 +6010,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6094,10 +6054,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is associated @@ -6126,12 +6084,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6218,7 +6174,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6446,7 +6401,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6486,7 +6440,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6496,7 +6449,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6507,7 +6459,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6519,7 +6470,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6588,7 +6538,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6712,7 +6661,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6751,7 +6699,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6821,7 +6768,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify whether @@ -6859,7 +6805,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7007,7 +6952,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7018,17 +6962,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7042,7 +6983,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7052,11 +6992,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7308,7 +7246,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target @@ -7373,7 +7310,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7409,7 +7345,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7490,9 +7425,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7531,7 +7463,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7573,7 +7504,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7706,14 +7636,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7848,7 +7775,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -8003,7 +7929,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional field @@ -8096,7 +8021,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8139,7 +8063,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8188,7 +8111,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8312,7 +8234,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8394,16 +8315,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -8444,12 +8357,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_gitrepositories.yaml b/go/controller/config/crd/bases/deployments.plural.sh_gitrepositories.yaml index 8ca923fdc4..90d491495d 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_gitrepositories.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_gitrepositories.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: gitrepositories.deployments.plural.sh spec: group: deployments.plural.sh @@ -62,7 +62,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -119,16 +118,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -169,12 +160,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_globalservices.yaml b/go/controller/config/crd/bases/deployments.plural.sh_globalservices.yaml index 606187f45e..6115c1a8ed 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_globalservices.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_globalservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: globalservices.deployments.plural.sh spec: group: deployments.plural.sh @@ -82,7 +82,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -126,7 +125,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -174,7 +172,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -235,24 +232,8 @@ spec: dependencies: description: Dependencies contain dependent services items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -266,7 +247,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -354,7 +334,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -399,7 +378,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key @@ -454,24 +432,8 @@ spec: services are also not drained on cluster deletion. type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -485,7 +447,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -541,16 +502,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -591,12 +544,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_helmrepositories.yaml b/go/controller/config/crd/bases/deployments.plural.sh_helmrepositories.yaml index 6954d7b348..ac7484a1ac 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_helmrepositories.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_helmrepositories.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: helmrepositories.deployments.plural.sh spec: group: deployments.plural.sh @@ -178,16 +178,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -228,12 +220,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_infrastructurestacks.yaml b/go/controller/config/crd/bases/deployments.plural.sh_infrastructurestacks.yaml index cdc2c28fe9..3215a803e6 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_infrastructurestacks.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_infrastructurestacks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: infrastructurestacks.deployments.plural.sh spec: group: deployments.plural.sh @@ -91,24 +91,8 @@ spec: type: array type: object clusterRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -122,7 +106,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -221,7 +204,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must @@ -244,7 +226,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must @@ -276,7 +257,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -390,12 +370,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -407,7 +385,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -469,7 +446,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -490,7 +466,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -521,7 +496,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -591,7 +565,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1686,7 +1659,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1756,7 +1728,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1790,7 +1761,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -1810,7 +1780,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -2109,11 +2078,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2328,11 +2297,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2485,11 +2454,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -2680,7 +2647,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2764,11 +2730,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3075,7 +3041,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3144,7 +3109,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3214,7 +3178,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3248,7 +3211,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -3268,7 +3230,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -3561,11 +3522,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3770,11 +3731,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3926,11 +3887,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -4109,7 +4068,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4187,11 +4145,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4332,7 +4290,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4505,7 +4462,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4594,7 +4550,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4664,7 +4619,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4698,7 +4652,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -4718,7 +4671,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -5017,11 +4969,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5236,11 +5188,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5393,11 +5345,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -5588,7 +5538,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5672,11 +5621,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5934,11 +5883,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6038,11 +5985,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6069,14 +6014,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6115,10 +6058,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is associated to @@ -6147,12 +6088,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6239,7 +6178,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6463,7 +6401,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6503,7 +6440,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6513,7 +6449,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6524,7 +6459,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6536,7 +6470,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6605,7 +6538,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6726,7 +6658,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6765,7 +6696,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6834,7 +6764,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify whether the @@ -6870,7 +6799,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7016,7 +6944,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7027,17 +6954,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7051,7 +6975,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7061,11 +6984,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7312,7 +7233,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target @@ -7376,7 +7296,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7412,7 +7331,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7493,9 +7411,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7532,7 +7447,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7574,7 +7488,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7706,14 +7619,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7846,7 +7756,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -7995,7 +7904,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional field specify @@ -8086,7 +7994,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8129,7 +8036,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8178,7 +8084,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8300,7 +8205,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8388,24 +8292,8 @@ spec: identifier: type: string observabilityProviderRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8419,7 +8307,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8470,7 +8357,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8514,7 +8400,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8544,24 +8429,8 @@ spec: type: object x-kubernetes-map-type: atomic scmConnectionRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8575,7 +8444,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8605,24 +8473,8 @@ spec: type: object x-kubernetes-map-type: atomic stackDefinitionRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8636,7 +8488,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8700,16 +8551,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -8750,12 +8593,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_managednamespaces.yaml b/go/controller/config/crd/bases/deployments.plural.sh_managednamespaces.yaml index 4ca8c07871..647cb88c9f 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_managednamespaces.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_managednamespaces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: managednamespaces.deployments.plural.sh spec: group: deployments.plural.sh @@ -91,7 +91,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -152,24 +151,8 @@ spec: dependencies: description: Dependencies contain dependent services items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -183,7 +166,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -271,7 +253,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -316,7 +297,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key @@ -371,24 +351,8 @@ spec: services are also not drained on cluster deletion. type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -402,7 +366,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -470,16 +433,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -520,12 +475,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_namespacecredentials.yaml b/go/controller/config/crd/bases/deployments.plural.sh_namespacecredentials.yaml index 18317f5c5d..f47b063a70 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_namespacecredentials.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_namespacecredentials.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: namespacecredentials.deployments.plural.sh spec: group: deployments.plural.sh @@ -61,6 +61,7 @@ spec: x-kubernetes-map-type: atomic required: - namespaces + - secretRef type: object status: properties: @@ -68,16 +69,8 @@ spec: description: Conditions represent the observations of a NamespaceCredentials current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -118,12 +111,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_notificationrouters.yaml b/go/controller/config/crd/bases/deployments.plural.sh_notificationrouters.yaml index 3183259365..8b9bd8d521 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_notificationrouters.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_notificationrouters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: notificationrouters.deployments.plural.sh spec: group: deployments.plural.sh @@ -65,7 +65,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -110,7 +109,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -158,7 +156,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -196,24 +193,8 @@ spec: sinks: description: Sinks notification sinks to deliver notifications to items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -227,7 +208,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -264,16 +244,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -314,12 +286,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml b/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml index 312a1efb4a..5fb2a2259e 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_notificationsinks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: notificationsinks.deployments.plural.sh spec: group: deployments.plural.sh @@ -111,16 +111,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -161,12 +153,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_observabilityproviders.yaml b/go/controller/config/crd/bases/deployments.plural.sh_observabilityproviders.yaml index e30f57ff6a..108fbb0ca7 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_observabilityproviders.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_observabilityproviders.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: observabilityproviders.deployments.plural.sh spec: group: deployments.plural.sh @@ -101,16 +101,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -151,12 +143,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_observers.yaml b/go/controller/config/crd/bases/deployments.plural.sh_observers.yaml index c0d0cf55e5..86d8959412 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_observers.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_observers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: observers.deployments.plural.sh spec: group: deployments.plural.sh @@ -69,7 +69,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -127,7 +126,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -195,7 +193,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -245,7 +242,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -573,16 +569,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -623,12 +611,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_pipelinecontexts.yaml b/go/controller/config/crd/bases/deployments.plural.sh_pipelinecontexts.yaml index 258632fbe2..730892ea72 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_pipelinecontexts.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_pipelinecontexts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: pipelinecontexts.deployments.plural.sh spec: group: deployments.plural.sh @@ -58,7 +58,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -94,16 +93,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -144,12 +135,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_pipelines.yaml b/go/controller/config/crd/bases/deployments.plural.sh_pipelines.yaml index 3c87cb31eb..5fcec3d834 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_pipelines.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_pipelines.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: pipelines.deployments.plural.sh spec: group: deployments.plural.sh @@ -81,7 +81,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -204,12 +203,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -221,7 +218,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -283,7 +279,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -304,7 +299,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -335,7 +329,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -405,7 +398,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1597,7 +1589,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1682,7 +1673,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1721,7 +1711,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1744,7 +1733,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -2070,11 +2058,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2300,11 +2288,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2465,11 +2453,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -2672,7 +2658,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2759,11 +2744,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3087,7 +3072,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3161,7 +3145,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3246,7 +3229,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3285,7 +3267,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3308,7 +3289,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3628,11 +3608,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3848,11 +3828,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4012,11 +3992,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -4207,7 +4185,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4288,11 +4265,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4440,7 +4417,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4624,7 +4600,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4719,7 +4694,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4804,7 +4778,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4843,7 +4816,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4866,7 +4838,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -5192,11 +5163,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5422,11 +5393,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5587,11 +5558,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -5794,7 +5763,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5881,11 +5849,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -6159,11 +6127,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6264,11 +6230,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6295,14 +6259,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6341,10 +6303,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is @@ -6374,12 +6334,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6470,7 +6428,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6702,7 +6659,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6742,7 +6698,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6752,7 +6707,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6763,7 +6717,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6775,7 +6728,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6845,7 +6797,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6979,7 +6930,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7018,7 +6968,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7090,7 +7039,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -7129,7 +7077,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7295,7 +7242,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7306,17 +7252,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7330,7 +7273,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7340,11 +7282,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7612,7 +7552,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: @@ -7680,7 +7619,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7718,7 +7656,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7801,9 +7738,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7842,7 +7776,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7886,7 +7819,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8025,14 +7957,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -8182,7 +8111,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional @@ -8391,7 +8319,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional @@ -8489,7 +8416,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8532,7 +8458,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8584,7 +8509,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8713,7 +8637,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8832,7 +8755,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8896,7 +8818,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8951,7 +8872,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8982,24 +8902,8 @@ spec: x-kubernetes-map-type: atomic type: object serviceRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information + to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -9013,7 +8917,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -9055,16 +8958,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -9105,12 +9000,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_prautomations.yaml b/go/controller/config/crd/bases/deployments.plural.sh_prautomations.yaml index 1f1cddbae9..c5fec4db5f 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_prautomations.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_prautomations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: prautomations.deployments.plural.sh spec: group: deployments.plural.sh @@ -104,7 +104,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -293,7 +292,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -337,7 +335,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -390,7 +387,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -434,7 +430,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -525,16 +520,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -575,12 +562,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_prautomationtriggers.yaml b/go/controller/config/crd/bases/deployments.plural.sh_prautomationtriggers.yaml index 1ba8f96b68..85eff852e2 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_prautomationtriggers.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_prautomationtriggers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: prautomationtriggers.deployments.plural.sh spec: group: deployments.plural.sh @@ -63,7 +63,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -92,6 +91,8 @@ spec: type: string type: object x-kubernetes-map-type: atomic + required: + - branch type: object status: properties: @@ -99,16 +100,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -149,12 +142,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_projects.yaml b/go/controller/config/crd/bases/deployments.plural.sh_projects.yaml index 6b12a59712..89842f1353 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_projects.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_projects.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: projects.deployments.plural.sh spec: group: deployments.plural.sh @@ -103,16 +103,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -153,12 +145,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_providers.yaml b/go/controller/config/crd/bases/deployments.plural.sh_providers.yaml index 353e54ddad..ec795b8133 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_providers.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_providers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: providers.deployments.plural.sh spec: group: deployments.plural.sh @@ -141,16 +141,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -191,12 +183,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_scmconnections.yaml b/go/controller/config/crd/bases/deployments.plural.sh_scmconnections.yaml index 8e74136409..f9e9b07a48 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_scmconnections.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_scmconnections.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: scmconnections.deployments.plural.sh spec: group: deployments.plural.sh @@ -72,7 +72,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -125,16 +124,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -175,12 +166,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_serviceaccounts.yaml b/go/controller/config/crd/bases/deployments.plural.sh_serviceaccounts.yaml index 37bd0b0f18..494a730d97 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_serviceaccounts.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_serviceaccounts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: serviceaccounts.deployments.plural.sh spec: group: deployments.plural.sh @@ -73,16 +73,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -123,12 +115,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/crd/bases/deployments.plural.sh_servicedeployments.yaml b/go/controller/config/crd/bases/deployments.plural.sh_servicedeployments.yaml index 79c0766d78..0d6f7e367c 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_servicedeployments.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_servicedeployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: servicedeployments.deployments.plural.sh spec: group: deployments.plural.sh @@ -81,24 +81,8 @@ spec: type: array type: object clusterRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -112,7 +96,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -236,7 +219,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -281,7 +263,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must @@ -319,24 +300,8 @@ spec: items: properties: stackRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -350,7 +315,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -404,24 +368,8 @@ spec: protect: type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -435,7 +383,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -525,16 +472,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -575,12 +514,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -614,6 +548,8 @@ spec: description: SHA of last applied configuration. type: string type: object + required: + - spec type: object served: true storage: true diff --git a/go/controller/config/crd/bases/deployments.plural.sh_stackdefinitions.yaml b/go/controller/config/crd/bases/deployments.plural.sh_stackdefinitions.yaml index 6044a500a0..dc1d62e6bd 100644 --- a/go/controller/config/crd/bases/deployments.plural.sh_stackdefinitions.yaml +++ b/go/controller/config/crd/bases/deployments.plural.sh_stackdefinitions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: stackdefinitions.deployments.plural.sh spec: group: deployments.plural.sh @@ -130,6 +130,7 @@ spec: - DESTROY type: string required: + - args - cmd - stage type: object @@ -141,16 +142,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -191,12 +184,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/go/controller/config/rbac/role.yaml b/go/controller/config/rbac/role.yaml index ff5ea6eca3..ae6c114109 100644 --- a/go/controller/config/rbac/role.yaml +++ b/go/controller/config/rbac/role.yaml @@ -8,14 +8,6 @@ rules: - "" resources: - configmaps - verbs: - - get - - list - - patch - - watch -- apiGroups: - - "" - resources: - secrets verbs: - get @@ -26,214 +18,30 @@ rules: - deployments.plural.sh resources: - clusterrestores - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - clusterrestores/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - clusterrestores/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - clusterrestoretriggers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - clusterrestoretriggers/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - clusterrestoretriggers/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - clusters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - clusters/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - clusters/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - customstackruns - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - customstackruns/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - customstackruns/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - deploymentsettings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - deploymentsettings/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - deploymentsettings/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - gitrepositories - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - gitrepositories/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - gitrepositories/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - globalservices - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - globalservices/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - globalservices/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - helmrepositories - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - helmrepositories/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - - helmrepositories/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - infrastructurestacks + - managednamespaces + - namespacecredentialss + - notificationrouters + - notificationsinks + - observabilityproviders + - observers + - pipelinecontexts + - pipelines + - prautomations + - prautomationtriggers + - projects + - providers + - scmconnections + - serviceaccounts + - servicedeployments + - stackdefinitions verbs: - create - delete @@ -245,428 +53,60 @@ rules: - apiGroups: - deployments.plural.sh resources: + - clusterrestores/finalizers + - clusterrestoretriggers/finalizers + - clusters/finalizers + - customstackruns/finalizers + - deploymentsettings/finalizers + - gitrepositories/finalizers + - globalservices/finalizers + - helmrepositories/finalizers - infrastructurestacks/finalizers + - managednamespaces/finalizers + - namespacecredentialss/finalizers + - notificationrouters/finalizers + - notificationsinks/finalizers + - observabilityproviders/finalizers + - observers/finalizers + - pipelinecontexts/finalizers + - pipelines/finalizers + - prautomations/finalizers + - prautomationtriggers/finalizers + - projects/finalizers + - providers/finalizers + - scmconnections/finalizers + - serviceaccounts/finalizers + - servicedeployments/finalizers + - stackdefinitions/finalizers verbs: - update - apiGroups: - deployments.plural.sh resources: + - clusterrestores/status + - clusterrestoretriggers/status + - clusters/status + - customstackruns/status + - deploymentsettings/status + - gitrepositories/status + - globalservices/status + - helmrepositories/status - infrastructurestacks/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - managednamespaces - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - managednamespaces/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - managednamespaces/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - namespacecredentialss - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - namespacecredentialss/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - namespacecredentialss/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - notificationrouters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - notificationrouters/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - notificationrouters/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - notificationsinks - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - notificationsinks/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - notificationsinks/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - observabilityproviders - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - observabilityproviders/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - observabilityproviders/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - observers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - observers/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - observers/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - pipelinecontexts - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - pipelinecontexts/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - pipelinecontexts/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - pipelines - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - pipelines/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - pipelines/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - prautomations - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - prautomations/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - prautomations/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - prautomationtriggers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - prautomationtriggers/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - prautomationtriggers/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - projects - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - projects/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - projects/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - providers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - providers/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - providers/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - scmconnections - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - scmconnections/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - scmconnections/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - serviceaccounts - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - serviceaccounts/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - serviceaccounts/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - servicedeployments - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - servicedeployments/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - servicedeployments/status - verbs: - - get - - patch - - update -- apiGroups: - - deployments.plural.sh - resources: - - stackdefinitions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - deployments.plural.sh - resources: - - stackdefinitions/finalizers - verbs: - - update -- apiGroups: - - deployments.plural.sh - resources: - stackdefinitions/status verbs: - get diff --git a/go/controller/internal/test/mocks/ConsoleClient_mock.go b/go/controller/internal/test/mocks/ConsoleClient_mock.go index 9ffad6c82f..a2b1e6396c 100644 --- a/go/controller/internal/test/mocks/ConsoleClient_mock.go +++ b/go/controller/internal/test/mocks/ConsoleClient_mock.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.45.1. DO NOT EDIT. package mocks diff --git a/plural/helm/console/crds/deployments.plural.sh_clusterrestores.yaml b/plural/helm/console/crds/deployments.plural.sh_clusterrestores.yaml index 3448266c3d..655f39fcc1 100644 --- a/plural/helm/console/crds/deployments.plural.sh_clusterrestores.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_clusterrestores.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusterrestores.deployments.plural.sh spec: group: deployments.plural.sh @@ -57,7 +57,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -123,16 +122,8 @@ spec: description: Represents the observations of ClusterRestore current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -173,12 +164,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_clusterrestoretriggers.yaml b/plural/helm/console/crds/deployments.plural.sh_clusterrestoretriggers.yaml index 51d9be959e..f8dc5f2648 100644 --- a/plural/helm/console/crds/deployments.plural.sh_clusterrestoretriggers.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_clusterrestoretriggers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusterrestoretriggers.deployments.plural.sh spec: group: deployments.plural.sh @@ -55,7 +55,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -91,16 +90,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -141,12 +132,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_clusters.yaml b/plural/helm/console/crds/deployments.plural.sh_clusters.yaml index d0ac64d550..3715bb65b1 100644 --- a/plural/helm/console/crds/deployments.plural.sh_clusters.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_clusters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: clusters.deployments.plural.sh spec: group: deployments.plural.sh @@ -260,7 +260,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -309,7 +308,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -355,16 +353,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -405,12 +395,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_customstackruns.yaml b/plural/helm/console/crds/deployments.plural.sh_customstackruns.yaml index ec2244dc22..29dc505d7e 100644 --- a/plural/helm/console/crds/deployments.plural.sh_customstackruns.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_customstackruns.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: customstackruns.deployments.plural.sh spec: group: deployments.plural.sh @@ -152,7 +152,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -163,16 +162,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -213,12 +204,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_deploymentsettings.yaml b/plural/helm/console/crds/deployments.plural.sh_deploymentsettings.yaml index 8155093631..d8afc6cec2 100644 --- a/plural/helm/console/crds/deployments.plural.sh_deploymentsettings.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_deploymentsettings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: deploymentsettings.deployments.plural.sh spec: group: deployments.plural.sh @@ -135,7 +135,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -171,7 +170,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -205,7 +203,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -321,12 +318,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -338,7 +333,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -400,7 +394,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -421,7 +414,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -452,7 +444,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -522,7 +513,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1634,7 +1624,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -1705,7 +1694,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -1741,7 +1729,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1762,7 +1749,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -2061,11 +2047,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2281,11 +2267,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2439,11 +2425,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -2634,7 +2618,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2718,11 +2701,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3032,7 +3015,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3102,7 +3084,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -3173,7 +3154,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -3209,7 +3189,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3230,7 +3209,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3523,11 +3501,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3733,11 +3711,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3890,11 +3868,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -4073,7 +4049,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4151,11 +4126,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4297,7 +4272,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4474,7 +4448,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4564,7 +4537,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -4635,7 +4607,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether @@ -4671,7 +4642,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4692,7 +4662,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4991,11 +4960,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5211,11 +5180,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5369,11 +5338,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -5564,7 +5531,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5648,11 +5614,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5913,11 +5879,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6017,11 +5981,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6048,14 +6010,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6094,10 +6054,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is associated @@ -6126,12 +6084,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6218,7 +6174,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6446,7 +6401,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6486,7 +6440,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6496,7 +6449,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6507,7 +6459,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6519,7 +6470,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6588,7 +6538,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6712,7 +6661,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6751,7 +6699,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6821,7 +6768,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify whether @@ -6859,7 +6805,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7007,7 +6952,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7018,17 +6962,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7042,7 +6983,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7052,11 +6992,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7308,7 +7246,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target @@ -7373,7 +7310,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7409,7 +7345,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7490,9 +7425,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7531,7 +7463,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7573,7 +7504,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7706,14 +7636,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7848,7 +7775,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -8003,7 +7929,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional field @@ -8096,7 +8021,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8139,7 +8063,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8188,7 +8111,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8312,7 +8234,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8394,16 +8315,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -8444,12 +8357,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_gitrepositories.yaml b/plural/helm/console/crds/deployments.plural.sh_gitrepositories.yaml index 8ca923fdc4..90d491495d 100644 --- a/plural/helm/console/crds/deployments.plural.sh_gitrepositories.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_gitrepositories.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: gitrepositories.deployments.plural.sh spec: group: deployments.plural.sh @@ -62,7 +62,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -119,16 +118,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -169,12 +160,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_globalservices.yaml b/plural/helm/console/crds/deployments.plural.sh_globalservices.yaml index 606187f45e..6115c1a8ed 100644 --- a/plural/helm/console/crds/deployments.plural.sh_globalservices.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_globalservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: globalservices.deployments.plural.sh spec: group: deployments.plural.sh @@ -82,7 +82,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -126,7 +125,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -174,7 +172,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -235,24 +232,8 @@ spec: dependencies: description: Dependencies contain dependent services items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -266,7 +247,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -354,7 +334,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -399,7 +378,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key @@ -454,24 +432,8 @@ spec: services are also not drained on cluster deletion. type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -485,7 +447,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -541,16 +502,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -591,12 +544,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_helmrepositories.yaml b/plural/helm/console/crds/deployments.plural.sh_helmrepositories.yaml index 6954d7b348..ac7484a1ac 100644 --- a/plural/helm/console/crds/deployments.plural.sh_helmrepositories.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_helmrepositories.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: helmrepositories.deployments.plural.sh spec: group: deployments.plural.sh @@ -178,16 +178,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -228,12 +220,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_infrastructurestacks.yaml b/plural/helm/console/crds/deployments.plural.sh_infrastructurestacks.yaml index cdc2c28fe9..3215a803e6 100644 --- a/plural/helm/console/crds/deployments.plural.sh_infrastructurestacks.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_infrastructurestacks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: infrastructurestacks.deployments.plural.sh spec: group: deployments.plural.sh @@ -91,24 +91,8 @@ spec: type: array type: object clusterRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -122,7 +106,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -221,7 +204,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must @@ -244,7 +226,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must @@ -276,7 +257,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -390,12 +370,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -407,7 +385,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -469,7 +446,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -490,7 +466,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -521,7 +496,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -591,7 +565,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1686,7 +1659,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1756,7 +1728,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -1790,7 +1761,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -1810,7 +1780,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -2109,11 +2078,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2328,11 +2297,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2485,11 +2454,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -2680,7 +2647,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2764,11 +2730,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3075,7 +3041,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3144,7 +3109,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3214,7 +3178,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -3248,7 +3211,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -3268,7 +3230,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -3561,11 +3522,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3770,11 +3731,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3926,11 +3887,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -4109,7 +4068,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4187,11 +4145,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4332,7 +4290,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4505,7 +4462,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4594,7 +4550,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4664,7 +4619,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the @@ -4698,7 +4652,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -4718,7 +4671,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -5017,11 +4969,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5236,11 +5188,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5393,11 +5345,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references @@ -5588,7 +5538,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5672,11 +5621,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5934,11 +5883,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6038,11 +5985,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6069,14 +6014,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6115,10 +6058,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is associated to @@ -6147,12 +6088,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6239,7 +6178,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6463,7 +6401,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6503,7 +6440,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6513,7 +6449,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6524,7 +6459,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6536,7 +6470,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6605,7 +6538,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6726,7 +6658,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6765,7 +6696,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -6834,7 +6764,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify whether the @@ -6870,7 +6799,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7016,7 +6944,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7027,17 +6954,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7051,7 +6975,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7061,11 +6984,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7312,7 +7233,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target @@ -7376,7 +7296,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7412,7 +7331,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7493,9 +7411,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7532,7 +7447,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7574,7 +7488,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7706,14 +7619,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7846,7 +7756,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -7995,7 +7904,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional field specify @@ -8086,7 +7994,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8129,7 +8036,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8178,7 +8084,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8300,7 +8205,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8388,24 +8292,8 @@ spec: identifier: type: string observabilityProviderRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8419,7 +8307,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8470,7 +8357,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8514,7 +8400,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8544,24 +8429,8 @@ spec: type: object x-kubernetes-map-type: atomic scmConnectionRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8575,7 +8444,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8605,24 +8473,8 @@ spec: type: object x-kubernetes-map-type: atomic stackDefinitionRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -8636,7 +8488,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8700,16 +8551,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -8750,12 +8593,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_managednamespaces.yaml b/plural/helm/console/crds/deployments.plural.sh_managednamespaces.yaml index 4ca8c07871..647cb88c9f 100644 --- a/plural/helm/console/crds/deployments.plural.sh_managednamespaces.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_managednamespaces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: managednamespaces.deployments.plural.sh spec: group: deployments.plural.sh @@ -91,7 +91,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -152,24 +151,8 @@ spec: dependencies: description: Dependencies contain dependent services items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -183,7 +166,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -271,7 +253,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -316,7 +297,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key @@ -371,24 +351,8 @@ spec: services are also not drained on cluster deletion. type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -402,7 +366,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -470,16 +433,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -520,12 +475,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_namespacecredentials.yaml b/plural/helm/console/crds/deployments.plural.sh_namespacecredentials.yaml index 18317f5c5d..f47b063a70 100644 --- a/plural/helm/console/crds/deployments.plural.sh_namespacecredentials.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_namespacecredentials.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: namespacecredentials.deployments.plural.sh spec: group: deployments.plural.sh @@ -61,6 +61,7 @@ spec: x-kubernetes-map-type: atomic required: - namespaces + - secretRef type: object status: properties: @@ -68,16 +69,8 @@ spec: description: Conditions represent the observations of a NamespaceCredentials current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -118,12 +111,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_notificationrouters.yaml b/plural/helm/console/crds/deployments.plural.sh_notificationrouters.yaml index 3183259365..8b9bd8d521 100644 --- a/plural/helm/console/crds/deployments.plural.sh_notificationrouters.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_notificationrouters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: notificationrouters.deployments.plural.sh spec: group: deployments.plural.sh @@ -65,7 +65,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -110,7 +109,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -158,7 +156,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -196,24 +193,8 @@ spec: sinks: description: Sinks notification sinks to deliver notifications to items: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let + you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -227,7 +208,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -264,16 +244,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -314,12 +286,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml b/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml index 312a1efb4a..5fb2a2259e 100644 --- a/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_notificationsinks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: notificationsinks.deployments.plural.sh spec: group: deployments.plural.sh @@ -111,16 +111,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -161,12 +153,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_observabilityproviders.yaml b/plural/helm/console/crds/deployments.plural.sh_observabilityproviders.yaml index e30f57ff6a..108fbb0ca7 100644 --- a/plural/helm/console/crds/deployments.plural.sh_observabilityproviders.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_observabilityproviders.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: observabilityproviders.deployments.plural.sh spec: group: deployments.plural.sh @@ -101,16 +101,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -151,12 +143,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_observers.yaml b/plural/helm/console/crds/deployments.plural.sh_observers.yaml index c0d0cf55e5..86d8959412 100644 --- a/plural/helm/console/crds/deployments.plural.sh_observers.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_observers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: observers.deployments.plural.sh spec: group: deployments.plural.sh @@ -69,7 +69,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -127,7 +126,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -195,7 +193,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -245,7 +242,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -573,16 +569,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -623,12 +611,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_pipelinecontexts.yaml b/plural/helm/console/crds/deployments.plural.sh_pipelinecontexts.yaml index 258632fbe2..730892ea72 100644 --- a/plural/helm/console/crds/deployments.plural.sh_pipelinecontexts.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_pipelinecontexts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: pipelinecontexts.deployments.plural.sh spec: group: deployments.plural.sh @@ -58,7 +58,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -94,16 +93,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -144,12 +135,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_pipelines.yaml b/plural/helm/console/crds/deployments.plural.sh_pipelines.yaml index 3c87cb31eb..5fcec3d834 100644 --- a/plural/helm/console/crds/deployments.plural.sh_pipelines.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_pipelines.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: pipelines.deployments.plural.sh spec: group: deployments.plural.sh @@ -81,7 +81,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -204,12 +203,10 @@ spec: completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. - `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. - `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. @@ -221,7 +218,6 @@ spec: `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. - More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller @@ -283,7 +279,6 @@ spec: checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. - This field is beta-level. It can be used when the `JobPodFailurePolicy` feature gate is enabled (enabled by default). properties: @@ -304,7 +299,6 @@ spec: Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - - FailJob: indicates that the pod's job is marked as Failed and all running pods are terminated. - FailIndex: indicates that the pod's index is marked as Failed and will @@ -335,7 +329,6 @@ spec: specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - - In: the requirement is satisfied if at least one container exit code (might be multiple if there are multiple containers not restricted by the 'containerName' field) is in the set of specified values. @@ -405,7 +398,6 @@ spec: - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. - When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. @@ -1597,7 +1589,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1682,7 +1673,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1721,7 +1711,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -1744,7 +1733,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -2070,11 +2058,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2300,11 +2288,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -2465,11 +2453,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -2672,7 +2658,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2759,11 +2744,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3087,7 +3072,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. properties: @@ -3161,7 +3145,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3246,7 +3229,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3285,7 +3267,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3308,7 +3289,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -3628,11 +3608,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -3848,11 +3828,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4012,11 +3992,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -4207,7 +4185,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4288,11 +4265,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -4440,7 +4417,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4624,7 +4600,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -4719,7 +4694,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4804,7 +4778,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4843,7 +4816,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -4866,7 +4838,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify @@ -5192,11 +5163,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5422,11 +5393,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -5587,11 +5558,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim @@ -5794,7 +5763,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5881,11 +5849,11 @@ spec: format: int32 type: integer service: + default: "" description: |- Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string required: @@ -6159,11 +6127,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6264,11 +6230,9 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. items: description: |- @@ -6295,14 +6259,12 @@ spec: ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. - This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. @@ -6341,10 +6303,8 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. - This is a beta feature enabled by the PodSchedulingReadiness feature gate. items: description: PodSchedulingGate is @@ -6374,12 +6334,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. format: int64 @@ -6470,7 +6428,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -6702,7 +6659,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). items: type: string @@ -6742,7 +6698,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6752,7 +6707,6 @@ spec: because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). format: int32 type: integer @@ -6763,7 +6717,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6775,7 +6728,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6845,7 +6797,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6979,7 +6930,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7018,7 +6968,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7090,7 +7039,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional specify @@ -7129,7 +7077,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7295,7 +7242,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7306,17 +7252,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. properties: @@ -7330,7 +7273,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7340,11 +7282,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. properties: metadata: @@ -7612,7 +7552,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: @@ -7680,7 +7619,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -7718,7 +7656,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7801,9 +7738,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. properties: path: description: |- @@ -7842,7 +7776,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7886,7 +7819,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8025,14 +7957,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -8182,7 +8111,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional @@ -8391,7 +8319,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: optional @@ -8489,7 +8416,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8532,7 +8458,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8584,7 +8509,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8713,7 +8637,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -8832,7 +8755,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8896,7 +8818,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8951,7 +8872,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -8982,24 +8902,8 @@ spec: x-kubernetes-map-type: atomic type: object serviceRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information + to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -9013,7 +8917,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -9055,16 +8958,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -9105,12 +9000,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_prautomations.yaml b/plural/helm/console/crds/deployments.plural.sh_prautomations.yaml index 1f1cddbae9..c5fec4db5f 100644 --- a/plural/helm/console/crds/deployments.plural.sh_prautomations.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_prautomations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: prautomations.deployments.plural.sh spec: group: deployments.plural.sh @@ -104,7 +104,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -293,7 +292,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -337,7 +335,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -390,7 +387,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -434,7 +430,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -525,16 +520,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -575,12 +562,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_prautomationtriggers.yaml b/plural/helm/console/crds/deployments.plural.sh_prautomationtriggers.yaml index 1ba8f96b68..85eff852e2 100644 --- a/plural/helm/console/crds/deployments.plural.sh_prautomationtriggers.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_prautomationtriggers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: prautomationtriggers.deployments.plural.sh spec: group: deployments.plural.sh @@ -63,7 +63,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -92,6 +91,8 @@ spec: type: string type: object x-kubernetes-map-type: atomic + required: + - branch type: object status: properties: @@ -99,16 +100,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -149,12 +142,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_projects.yaml b/plural/helm/console/crds/deployments.plural.sh_projects.yaml index 6b12a59712..89842f1353 100644 --- a/plural/helm/console/crds/deployments.plural.sh_projects.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_projects.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: projects.deployments.plural.sh spec: group: deployments.plural.sh @@ -103,16 +103,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -153,12 +145,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_providers.yaml b/plural/helm/console/crds/deployments.plural.sh_providers.yaml index 353e54ddad..ec795b8133 100644 --- a/plural/helm/console/crds/deployments.plural.sh_providers.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_providers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: providers.deployments.plural.sh spec: group: deployments.plural.sh @@ -141,16 +141,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -191,12 +183,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_scmconnections.yaml b/plural/helm/console/crds/deployments.plural.sh_scmconnections.yaml index 8e74136409..f9e9b07a48 100644 --- a/plural/helm/console/crds/deployments.plural.sh_scmconnections.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_scmconnections.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: scmconnections.deployments.plural.sh spec: group: deployments.plural.sh @@ -72,7 +72,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or its key must be @@ -125,16 +124,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -175,12 +166,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_serviceaccounts.yaml b/plural/helm/console/crds/deployments.plural.sh_serviceaccounts.yaml index 37bd0b0f18..494a730d97 100644 --- a/plural/helm/console/crds/deployments.plural.sh_serviceaccounts.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_serviceaccounts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: serviceaccounts.deployments.plural.sh spec: group: deployments.plural.sh @@ -73,16 +73,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -123,12 +115,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/plural/helm/console/crds/deployments.plural.sh_servicedeployments.yaml b/plural/helm/console/crds/deployments.plural.sh_servicedeployments.yaml index 79c0766d78..0d6f7e367c 100644 --- a/plural/helm/console/crds/deployments.plural.sh_servicedeployments.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_servicedeployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: servicedeployments.deployments.plural.sh spec: group: deployments.plural.sh @@ -81,24 +81,8 @@ spec: type: array type: object clusterRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -112,7 +96,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -236,7 +219,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -281,7 +263,6 @@ spec: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap or its key must @@ -319,24 +300,8 @@ spec: items: properties: stackRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to + let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -350,7 +315,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -404,24 +368,8 @@ spec: protect: type: boolean repositoryRef: - description: |- - ObjectReference contains enough information to let you inspect or modify the referred object. - --- - New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. - 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. - 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular - restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". - Those cannot be well described when embedded. - 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. - 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity - during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple - and the version of the actual struct is irrelevant. - 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type - will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. - - - Instead of using this type, create a locally provided and used type that is well-focused on your reference. - For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . + description: ObjectReference contains enough information to let you + inspect or modify the referred object. properties: apiVersion: description: API version of the referent. @@ -435,7 +383,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -525,16 +472,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -575,12 +514,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -614,6 +548,8 @@ spec: description: SHA of last applied configuration. type: string type: object + required: + - spec type: object served: true storage: true diff --git a/plural/helm/console/crds/deployments.plural.sh_stackdefinitions.yaml b/plural/helm/console/crds/deployments.plural.sh_stackdefinitions.yaml index 6044a500a0..dc1d62e6bd 100644 --- a/plural/helm/console/crds/deployments.plural.sh_stackdefinitions.yaml +++ b/plural/helm/console/crds/deployments.plural.sh_stackdefinitions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.3 name: stackdefinitions.deployments.plural.sh spec: group: deployments.plural.sh @@ -130,6 +130,7 @@ spec: - DESTROY type: string required: + - args - cmd - stage type: object @@ -141,16 +142,8 @@ spec: description: Represents the observations of a PrAutomation's current state. items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -191,12 +184,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string From eb8d62d5e0d89d9b91c122aa8fe2ef2751d879a2 Mon Sep 17 00:00:00 2001 From: Marcin Maciaszczyk Date: Thu, 26 Sep 2024 10:16:40 +0200 Subject: [PATCH 4/7] fix: General pagination fixes and improvements (#1413) --- assets/src/components/apps/Apps.tsx | 5 +- .../app/runbooks/runbook/RunbookAlerts.tsx | 4 +- .../backups/cluster/backups/Backups.tsx | 27 ++---- .../backups/cluster/restores/Restores.tsx | 25 ++---- .../backups/clusters/ClusterColumns.tsx | 1 - .../components/backups/clusters/Clusters.tsx | 27 ++---- .../backups/objectstores/ObjectStores.tsx | 18 ++-- .../components/cd/ContinuousDeployment.tsx | 3 +- .../components/cd/cluster/ClusterAddOns.tsx | 1 + .../components/cd/cluster/ClusterMetadata.tsx | 5 +- .../src/components/cd/cluster/ClusterPRs.tsx | 12 ++- .../src/components/cd/cluster/ClusterPods.tsx | 23 ++++- .../components/cd/cluster/ClusterSettings.tsx | 2 +- .../cd/clusters/ClusterUpgradeFlyover.tsx | 2 +- .../src/components/cd/clusters/Clusters.tsx | 17 ++-- .../cd/globalServices/GlobalService.tsx | 30 +------ .../cd/globalServices/GlobalServicesTable.tsx | 14 ++- .../globalServices/details/GlobalService.tsx | 2 +- .../details/GlobalServiceInfo.tsx | 2 +- .../details/GlobalServiceServices.tsx | 18 ++-- .../components/cd/namespaces/Namespaces.tsx | 29 +------ .../cd/namespaces/NamespacesTable.tsx | 14 ++- .../namespaces/details/ManagedNamespace.tsx | 2 +- .../details/ManagedNamespaceServices.tsx | 18 ++-- .../src/components/cd/observers/Observers.tsx | 17 ++-- .../cd/pipelines/PipelineContexts.tsx | 8 +- .../cd/pipelines/PipelinePullRequests.tsx | 4 +- .../src/components/cd/pipelines/Pipelines.tsx | 12 ++- .../cd/pipelines/nodes/StageNode.tsx | 11 ++- .../cd/pipelines/utils/getNodesAndEdges.tsx | 48 ++++++----- .../cd/pipelines/utils/nodeLayouter.tsx | 6 +- .../cd/repos/FluxHelmRepositoriesColumns.tsx | 7 -- .../src/components/cd/services/Services.tsx | 18 +--- .../components/cd/services/ServicesTable.tsx | 16 ++-- .../service/ServiceDetailsSidecar.tsx | 1 + .../cd/services/service/ServicePRs.tsx | 12 ++- .../components/cd/utils/ClusterSelector.tsx | 49 ++++------- .../components/cluster/nodes/NodeEvents.tsx | 6 +- .../src/components/cluster/nodes/NodeRaw.tsx | 6 +- .../src/components/cluster/pods/PodsList.tsx | 2 +- .../src/components/commandpalette/commands.ts | 16 ++-- .../component/ComponentMetadata.tsx | 2 - .../src/components/component/ComponentRaw.tsx | 2 +- .../component/tree/ComponentTreeNode.tsx | 3 - .../components/contexts/DocPageContext.tsx | 1 - .../db-management/RestoreDatabaseModal.tsx | 4 +- .../db-management/TimezoneComboBox.tsx | 4 +- assets/src/components/help/Chatbot.tsx | 2 +- assets/src/components/home/Home.tsx | 2 +- .../clusteroverview/ClusterOverviewCard.tsx | 10 +-- .../clusteroverview/ClusterOverviewTable.tsx | 5 +- .../home/deployments/DeploymentsCard.tsx | 17 ++-- .../home/deployments/DeploymentsTable.tsx | 5 +- .../violations/ConstraintViolationsCard.tsx | 5 +- .../components/home/pullrequests/PrCard.tsx | 13 +-- .../components/home/pullrequests/PrTable.tsx | 5 +- assets/src/components/hooks/useNewKeyIf.tsx | 14 --- .../kubernetes/rbac/ClusterRole.tsx | 15 +--- .../components/kubernetes/workloads/utils.tsx | 2 +- assets/src/components/login/Login.tsx | 4 +- .../notifications/NotificationsPanel.tsx | 16 ++-- assets/src/components/policies/Policies.tsx | 15 +--- .../components/policies/PoliciesFilter.tsx | 39 ++++----- .../src/components/policies/PoliciesTable.tsx | 5 +- .../pr/automations/PrAutomations.tsx | 17 ++-- .../pr/automations/PrAutomationsColumns.tsx | 2 +- .../pr/automations/PrConfigurationInput.tsx | 2 +- assets/src/components/pr/queue/PrQueue.tsx | 24 ++---- .../components/pr/scm/PrScmConnections.tsx | 15 ++-- .../pr/scm/PrScmConnectionsColumns.tsx | 2 +- assets/src/components/pr/scm/ScmWebhooks.tsx | 14 ++- .../components/pr/scm/ScmWebhooksColumns.tsx | 6 +- .../observability/ObservabilityProviders.tsx | 17 ++-- .../NotificationRouterConfigurationInput.tsx | 2 +- .../routers/NotificationRouters.tsx | 17 ++-- .../notifications/sinks/NotificationSinks.tsx | 17 ++-- .../sinks/NotificationSinksColumns.tsx | 2 +- .../settings/projectsettings/ProjectsList.tsx | 7 +- .../usermanagement/groups/GroupsList.tsx | 9 +- .../personas/PersonaConfiguration.tsx | 86 +++++++++---------- .../usermanagement/personas/PersonasList.tsx | 11 ++- .../serviceaccounts/ServiceAccountsList.tsx | 7 +- .../usermanagement/users/UsersList.tsx | 7 +- .../components/stacks/StackSettingsModal.tsx | 2 +- assets/src/components/stacks/Stacks.tsx | 5 +- .../stacks/common/StackTypeIcon.tsx | 2 - .../StackCustomRunChooseTemplate.tsx | 2 +- assets/src/components/stacks/prs/StackPrs.tsx | 7 +- assets/src/components/utils/Link.tsx | 11 +-- .../src/components/utils/RadialBarChart.tsx | 2 +- .../src/components/utils/ShowAfterDelay.tsx | 2 +- .../src/components/utils/StopPropagation.tsx | 14 --- .../src/components/utils/TypeaheadEditor.jsx | 2 +- assets/src/components/utils/animations.ts | 21 ----- assets/src/components/utils/events.ts | 4 - assets/src/components/utils/hooks.ts | 18 ---- .../utils/layout/ResponsivePageFullWidth.tsx | 55 ++++++------ .../components/utils/table/ColWithIcon.tsx | 53 +----------- .../table/{TruncateStart.tsx => Truncate.tsx} | 0 .../table}/useFetchPaginatedData.tsx | 7 +- assets/src/components/vpn/columns/Actions.tsx | 6 +- assets/src/components/vpn/columns/Delete.tsx | 6 +- assets/src/generated/graphql.ts | 29 +++++-- assets/src/graph/cdClusters.graphql | 26 ++++-- assets/src/utils/hasDefined.ts | 10 --- assets/src/utils/hostname.ts | 12 --- assets/src/utils/kubernetes.ts | 2 +- assets/src/utils/time.ts | 2 - 108 files changed, 461 insertions(+), 833 deletions(-) delete mode 100644 assets/src/components/hooks/useNewKeyIf.tsx delete mode 100644 assets/src/components/utils/StopPropagation.tsx delete mode 100644 assets/src/components/utils/animations.ts delete mode 100644 assets/src/components/utils/events.ts delete mode 100644 assets/src/components/utils/hooks.ts rename assets/src/components/utils/table/{TruncateStart.tsx => Truncate.tsx} (100%) rename assets/src/components/{cd/utils => utils/table}/useFetchPaginatedData.tsx (93%) delete mode 100644 assets/src/utils/hasDefined.ts diff --git a/assets/src/components/apps/Apps.tsx b/assets/src/components/apps/Apps.tsx index b8cf5517e9..16c9185a93 100644 --- a/assets/src/components/apps/Apps.tsx +++ b/assets/src/components/apps/Apps.tsx @@ -182,11 +182,8 @@ export default function Apps() { const filteredByState = appsByState[filter] const fuse = new Fuse(filteredByState, searchOptions) - const filteredByQuery = query - ? fuse.search(query).map(({ item }) => item) - : filteredByState - return filteredByQuery + return query ? fuse.search(query).map(({ item }) => item) : filteredByState }, [appsByState, filter, query]) const noFilteredApps = filteredApps?.length < 1 diff --git a/assets/src/components/apps/app/runbooks/runbook/RunbookAlerts.tsx b/assets/src/components/apps/app/runbooks/runbook/RunbookAlerts.tsx index 22fa0d7942..37d66ad8c0 100644 --- a/assets/src/components/apps/app/runbooks/runbook/RunbookAlerts.tsx +++ b/assets/src/components/apps/app/runbooks/runbook/RunbookAlerts.tsx @@ -209,9 +209,7 @@ export default function RunbookAlert({ alert }: { alert: RunbookAlertStatus }) { )} - {true && ( - {fingerprint} - )} + {fingerprint} diff --git a/assets/src/components/backups/cluster/backups/Backups.tsx b/assets/src/components/backups/cluster/backups/Backups.tsx index 9be6a4d083..b52bd7c60b 100644 --- a/assets/src/components/backups/cluster/backups/Backups.tsx +++ b/assets/src/components/backups/cluster/backups/Backups.tsx @@ -5,11 +5,14 @@ import { useSetBreadcrumbs, } from '@pluralsh/design-system' import { useTheme } from 'styled-components' -import { ComponentProps, useMemo } from 'react' +import { useMemo } from 'react' import isEmpty from 'lodash/isEmpty' import { useParams } from 'react-router-dom' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { useClusterBackupsQuery, @@ -32,14 +35,6 @@ import { ColStatus, } from './BackupsColumns' -const QUERY_PAGE_SIZE = 100 - -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - const columns = [ColCluster, ColBackupId, ColBackupDate, ColStatus, ColActions] export default function Backups() { @@ -65,14 +60,8 @@ export default function Backups() { fetchNextPage, setVirtualSlice, } = useFetchPaginatedData( - { - queryHook: useClusterBackupsQuery, - pageSize: QUERY_PAGE_SIZE, - keyPath: ['clusterBackups'], - }, - { - clusterId, - } + { queryHook: useClusterBackupsQuery, keyPath: ['clusterBackups'] }, + { clusterId } ) useSetBreadcrumbs( @@ -117,7 +106,7 @@ export default function Backups() { loose columns={columns} reactTableOptions={{ meta: { refetch, cluster } }} - reactVirtualOptions={REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} data={data?.clusterBackups?.edges || []} virtualizeRows hasNextPage={pageInfo?.hasNextPage} diff --git a/assets/src/components/backups/cluster/restores/Restores.tsx b/assets/src/components/backups/cluster/restores/Restores.tsx index 3a364a1f6b..1a42a32b61 100644 --- a/assets/src/components/backups/cluster/restores/Restores.tsx +++ b/assets/src/components/backups/cluster/restores/Restores.tsx @@ -12,7 +12,10 @@ import isEmpty from 'lodash/isEmpty' import { useParams } from 'react-router-dom' import { capitalize } from 'lodash' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { ClusterBasicFragment, @@ -36,8 +39,6 @@ import { } from '../../../../routes/backupRoutesConsts' import { DateTimeCol } from '../../../utils/table/DateTimeCol' -const QUERY_PAGE_SIZE = 100 - const restoreStatusSeverity = { [RestoreStatus.Created]: 'info', [RestoreStatus.Pending]: 'info', @@ -48,12 +49,6 @@ const restoreStatusSeverity = { ComponentProps['severity'] > -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - const columnHelper = createColumnHelper>() const columns = [ @@ -152,14 +147,8 @@ export default function Restores() { fetchNextPage, setVirtualSlice, } = useFetchPaginatedData( - { - queryHook: useClusterRestoresQuery, - pageSize: QUERY_PAGE_SIZE, - keyPath: ['clusterRestores'], - }, - { - clusterId, - } + { queryHook: useClusterRestoresQuery, keyPath: ['clusterRestores'] }, + { clusterId } ) useSetBreadcrumbs( @@ -204,7 +193,7 @@ export default function Restores() { loose columns={columns} reactTableOptions={{ meta: { refetch, cluster } }} - reactVirtualOptions={REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} data={data?.clusterRestores?.edges || []} virtualizeRows hasNextPage={pageInfo?.hasNextPage} diff --git a/assets/src/components/backups/clusters/ClusterColumns.tsx b/assets/src/components/backups/clusters/ClusterColumns.tsx index 71a1adddbe..d70c9ad454 100644 --- a/assets/src/components/backups/clusters/ClusterColumns.tsx +++ b/assets/src/components/backups/clusters/ClusterColumns.tsx @@ -152,6 +152,5 @@ export const ColActions = columnHelper.accessor(({ node }) => node?.id, { }) enum MenuItemKey { - Navigate = 'navigate', Delete = 'delete', } diff --git a/assets/src/components/backups/clusters/Clusters.tsx b/assets/src/components/backups/clusters/Clusters.tsx index 6ef85ad04a..3f21c8624d 100644 --- a/assets/src/components/backups/clusters/Clusters.tsx +++ b/assets/src/components/backups/clusters/Clusters.tsx @@ -6,11 +6,14 @@ import { useSetBreadcrumbs, } from '@pluralsh/design-system' import { useTheme } from 'styled-components' -import { ComponentProps, useMemo } from 'react' +import { useMemo } from 'react' import isEmpty from 'lodash/isEmpty' import { useNavigate } from 'react-router-dom' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { BACKUPS_ABS_PATH, @@ -25,14 +28,6 @@ import { FullHeightTableWrap } from '../../utils/layout/FullHeightTableWrap' import ConfigureClusterBackups from './ConfigureClusterBackups' import { ColActions, ColCluster, ColName, ColProvider } from './ClusterColumns' -const QUERY_PAGE_SIZE = 100 - -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - export const BACKUPS_CLUSTERS_BASE_CRUMBS: Breadcrumb[] = [ { label: 'backups', url: BACKUPS_ABS_PATH }, { @@ -56,14 +51,8 @@ export default function Clusters() { fetchNextPage, setVirtualSlice, } = useFetchPaginatedData( - { - queryHook: useClustersObjectStoresQuery, - pageSize: QUERY_PAGE_SIZE, - keyPath: ['clusters'], - }, - { - backups: true, - } + { queryHook: useClustersObjectStoresQuery, keyPath: ['clusters'] }, + { backups: true } ) const clusters = data?.clusters @@ -98,7 +87,7 @@ export default function Clusters() { loose columns={columns} reactTableOptions={{ meta: { refetch } }} - reactVirtualOptions={REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} data={clusters?.edges || []} virtualizeRows hasNextPage={pageInfo?.hasNextPage} diff --git a/assets/src/components/backups/objectstores/ObjectStores.tsx b/assets/src/components/backups/objectstores/ObjectStores.tsx index 3c7859e020..19a8b1bada 100644 --- a/assets/src/components/backups/objectstores/ObjectStores.tsx +++ b/assets/src/components/backups/objectstores/ObjectStores.tsx @@ -1,4 +1,4 @@ -import { ComponentProps, useMemo } from 'react' +import { useMemo } from 'react' import { Breadcrumb, EmptyState, @@ -11,7 +11,10 @@ import isEmpty from 'lodash/isEmpty' import { useTheme } from 'styled-components' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { useSetPageHeaderContent } from '../../cd/ContinuousDeployment' import { @@ -26,14 +29,6 @@ import { GqlError } from '../../utils/Alert' import CreateObjectStore from './CreateObjectStore' import { ColActions, ColName, ColProvider } from './ObjectStoreColumns' -const QUERY_PAGE_SIZE = 100 - -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - const BACKUPS_OBJECT_STORES_BASE_CRUMBS: Breadcrumb[] = [ { label: 'backups', url: BACKUPS_ABS_PATH }, { @@ -57,7 +52,6 @@ export default function ObjectStores() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: useObjectStoresQuery, - pageSize: QUERY_PAGE_SIZE, keyPath: ['objectStores'], }) @@ -93,7 +87,7 @@ export default function ObjectStores() { loose columns={columns} reactTableOptions={{ meta: { refetch } }} - reactVirtualOptions={REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} data={objectStores?.edges || []} virtualizeRows hasNextPage={pageInfo?.hasNextPage} diff --git a/assets/src/components/cd/ContinuousDeployment.tsx b/assets/src/components/cd/ContinuousDeployment.tsx index 157f980942..e597eaab77 100644 --- a/assets/src/components/cd/ContinuousDeployment.tsx +++ b/assets/src/components/cd/ContinuousDeployment.tsx @@ -99,9 +99,8 @@ export const CD_BASE_CRUMBS = [ function useCurrentTab() { const pathMatch = useMatch(`${CD_ABS_PATH}/:tab/*`) - const tab = pathMatch?.params?.tab || '' - return tab + return pathMatch?.params?.tab || '' } export function useDefaultCDPath() { diff --git a/assets/src/components/cd/cluster/ClusterAddOns.tsx b/assets/src/components/cd/cluster/ClusterAddOns.tsx index 92ea7a8104..68cd92a3a9 100644 --- a/assets/src/components/cd/cluster/ClusterAddOns.tsx +++ b/assets/src/components/cd/cluster/ClusterAddOns.tsx @@ -169,6 +169,7 @@ export default function ClusterAddOns() { > {addOns.map((addon, i) => ( ) { return ( - + ) diff --git a/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx b/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx index e68ea87c3f..10fe749a1e 100644 --- a/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx +++ b/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx @@ -27,7 +27,7 @@ import { useUpdateClusterMutation, } from 'generated/graphql' import isEmpty from 'lodash/isEmpty' -import { useCallback, useEffect, useMemo, useState } from 'react' +import React, { useCallback, useEffect, useMemo, useState } from 'react' import { coerce } from 'semver' import styled, { useTheme } from 'styled-components' import { diff --git a/assets/src/components/cd/clusters/Clusters.tsx b/assets/src/components/cd/clusters/Clusters.tsx index f68f1fc225..b6a3b2692b 100644 --- a/assets/src/components/cd/clusters/Clusters.tsx +++ b/assets/src/components/cd/clusters/Clusters.tsx @@ -50,7 +50,10 @@ import { import { TagsFilter } from '../services/ClusterTagsFilter' -import { useFetchPaginatedData } from '../utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../utils/table/useFetchPaginatedData' import { useProjectId } from '../../contexts/ProjectsContext' @@ -64,8 +67,6 @@ export const CD_CLUSTERS_BASE_CRUMBS: Breadcrumb[] = [ { label: 'clusters', url: `${CD_REL_PATH}/${CLUSTERS_REL_PATH}` }, ] -export const CLUSTERS_QUERY_PAGE_SIZE = 100 - type TableWrapperSCProps = { $blurred: boolean } @@ -131,7 +132,6 @@ export default function Clusters() { } = useFetchPaginatedData( { queryHook: useClustersQuery, - pageSize: CLUSTERS_QUERY_PAGE_SIZE, keyPath: ['clusters'], }, { @@ -240,7 +240,7 @@ export default function Clusters() { hasNextPage={pageInfo?.hasNextPage} fetchNextPage={fetchNextPage} isFetchingNextPage={loading} - reactVirtualOptions={CLUSTERS_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} onVirtualSliceChange={setVirtualSlice} /> @@ -253,11 +253,6 @@ export default function Clusters() { ) } -export const CLUSTERS_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} export function ClustersTable({ refetch, @@ -275,7 +270,7 @@ export function ClustersTable({ return (
( - { - SSH: 'SSH', - BASIC: 'Basic', - }, - 'Unknown' -) - -export function AuthMethodChip({ - authMethod, -}: { - authMethod: AuthMethod | null | undefined -}) { - return {authMethodToLabel(authMethod)} -} - -export const GLOBAL_SERVICES_QUERY_PAGE_SIZE = 100 - -export const GLOBAL_SERVICES_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - export const columns = [ ColServiceName, ColDistribution, diff --git a/assets/src/components/cd/globalServices/GlobalServicesTable.tsx b/assets/src/components/cd/globalServices/GlobalServicesTable.tsx index 2c2286524b..c7e43acdc6 100644 --- a/assets/src/components/cd/globalServices/GlobalServicesTable.tsx +++ b/assets/src/components/cd/globalServices/GlobalServicesTable.tsx @@ -15,13 +15,12 @@ import { GqlError } from 'components/utils/Alert' import { useProjectId } from 'components/contexts/ProjectsContext' -import { useFetchPaginatedData } from '../utils/useFetchPaginatedData' - import { - GLOBAL_SERVICES_QUERY_PAGE_SIZE, - GLOBAL_SERVICES_REACT_VIRTUAL_OPTIONS, - columns, -} from './GlobalService' + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../utils/table/useFetchPaginatedData' + +import { columns } from './GlobalService' function GlobalServicesTableComponent({ setRefetch, @@ -43,7 +42,6 @@ function GlobalServicesTableComponent({ } = useFetchPaginatedData( { queryHook: useGlobalServicesQuery, - pageSize: GLOBAL_SERVICES_QUERY_PAGE_SIZE, keyPath: ['globalServices'], }, { projectId } @@ -105,7 +103,7 @@ function GlobalServicesTableComponent({ fetchNextPage={fetchNextPage} isFetchingNextPage={loading} reactTableOptions={reactTableOptions} - reactVirtualOptions={GLOBAL_SERVICES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} onVirtualSliceChange={setVirtualSlice} emptyStateProps={{ message: "Looks like you don't have any service deployments yet.", diff --git a/assets/src/components/cd/globalServices/details/GlobalService.tsx b/assets/src/components/cd/globalServices/details/GlobalService.tsx index aa0df02c20..6e1f790deb 100644 --- a/assets/src/components/cd/globalServices/details/GlobalService.tsx +++ b/assets/src/components/cd/globalServices/details/GlobalService.tsx @@ -48,7 +48,7 @@ import { LinkTabWrap } from '../../../utils/Tabs' import { PluralErrorBoundary } from '../../PluralErrorBoundary' import KickButton from '../../../utils/KickButton' import { GqlError } from '../../../utils/Alert' -import { useFetchPaginatedData } from '../../utils/useFetchPaginatedData' +import { useFetchPaginatedData } from '../../../utils/table/useFetchPaginatedData' import { useProjectId } from '../../../contexts/ProjectsContext' import { mapExistingNodes } from '../../../../utils/graphql' import { DistroProviderIcon } from '../../../utils/ClusterDistro' diff --git a/assets/src/components/cd/globalServices/details/GlobalServiceInfo.tsx b/assets/src/components/cd/globalServices/details/GlobalServiceInfo.tsx index 5348be4ace..dc9d770382 100644 --- a/assets/src/components/cd/globalServices/details/GlobalServiceInfo.tsx +++ b/assets/src/components/cd/globalServices/details/GlobalServiceInfo.tsx @@ -175,7 +175,7 @@ function TagsModalInner({ export function TagsModal(props: ComponentProps) { return ( - + ) diff --git a/assets/src/components/cd/globalServices/details/GlobalServiceServices.tsx b/assets/src/components/cd/globalServices/details/GlobalServiceServices.tsx index 10e4cb4266..ae4719ef8a 100644 --- a/assets/src/components/cd/globalServices/details/GlobalServiceServices.tsx +++ b/assets/src/components/cd/globalServices/details/GlobalServiceServices.tsx @@ -11,24 +11,19 @@ import { FullHeightTableWrap } from 'components/utils/layout/FullHeightTableWrap import LoadingIndicator from 'components/utils/LoadingIndicator' import { GqlError } from 'components/utils/Alert' import { useOutletContext } from 'react-router-dom' -import { ComponentProps, useMemo } from 'react' +import { useMemo } from 'react' import { columns } from 'components/cd/services/Services' -import { useFetchPaginatedData } from '../../utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../../utils/table/useFetchPaginatedData' import { useSetPageScrollable } from '../../ContinuousDeployment' import { GlobalServiceContextT, getBreadcrumbs } from './GlobalService' -const GLOBAL_SERVICES_QUERY_PAGE_SIZE = 100 - -const GLOBAL_SERVICES_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - export function GlobalServiceServices() { const navigate = useNavigate() const { globalServiceId, globalService } = @@ -57,7 +52,6 @@ export function GlobalServiceServices() { } = useFetchPaginatedData( { queryHook: useGetGlobalServiceServicesQuery, - pageSize: GLOBAL_SERVICES_QUERY_PAGE_SIZE, keyPath: ['globalService', 'services'], }, { serviceId: globalServiceId } @@ -95,7 +89,7 @@ export function GlobalServiceServices() { ) } reactTableOptions={{ meta: { refetch } }} - reactVirtualOptions={GLOBAL_SERVICES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} emptyStateProps={{ message: 'No services found.' }} /> diff --git a/assets/src/components/cd/namespaces/Namespaces.tsx b/assets/src/components/cd/namespaces/Namespaces.tsx index 3d6175944c..1ab7993942 100644 --- a/assets/src/components/cd/namespaces/Namespaces.tsx +++ b/assets/src/components/cd/namespaces/Namespaces.tsx @@ -1,9 +1,6 @@ -import { ComponentProps } from 'react' -import { Chip, Table, useSetBreadcrumbs } from '@pluralsh/design-system' +import { useSetBreadcrumbs } from '@pluralsh/design-system' -import { AuthMethod } from 'generated/graphql' import { CD_REL_PATH, NAMESPACES_REL_PATH } from 'routes/cdRoutesConsts' -import { createMapperWithFallback } from 'utils/mapping' import { CD_BASE_CRUMBS } from '../ContinuousDeployment' @@ -16,30 +13,6 @@ import { } from './NamespacesColumns' import { NamespacesTable } from './NamespacesTable' -const authMethodToLabel = createMapperWithFallback( - { - SSH: 'SSH', - BASIC: 'Basic', - }, - 'Unknown' -) - -export function AuthMethodChip({ - authMethod, -}: { - authMethod: AuthMethod | null | undefined -}) { - return {authMethodToLabel(authMethod)} -} - -export const NAMESPACES_QUERY_PAGE_SIZE = 100 - -export const NAMESPACES_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - export const columns = [ ColName, ColAnnotations, diff --git a/assets/src/components/cd/namespaces/NamespacesTable.tsx b/assets/src/components/cd/namespaces/NamespacesTable.tsx index 7ddb2c3d57..0fa6c244e9 100644 --- a/assets/src/components/cd/namespaces/NamespacesTable.tsx +++ b/assets/src/components/cd/namespaces/NamespacesTable.tsx @@ -12,13 +12,12 @@ import { GqlError } from 'components/utils/Alert' import { useProjectId } from 'components/contexts/ProjectsContext' -import { useFetchPaginatedData } from '../utils/useFetchPaginatedData' - import { - NAMESPACES_QUERY_PAGE_SIZE, - NAMESPACES_REACT_VIRTUAL_OPTIONS, - columns, -} from './Namespaces' + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../utils/table/useFetchPaginatedData' + +import { columns } from './Namespaces' export function NamespacesTable() { const theme = useTheme() @@ -36,7 +35,6 @@ export function NamespacesTable() { } = useFetchPaginatedData( { queryHook: useManagedNamespacesQuery, - pageSize: NAMESPACES_QUERY_PAGE_SIZE, keyPath: ['managedNamespaces'], }, { projectId } @@ -91,7 +89,7 @@ export function NamespacesTable() { fetchNextPage={fetchNextPage} isFetchingNextPage={loading} reactTableOptions={reactTableOptions} - reactVirtualOptions={NAMESPACES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} onVirtualSliceChange={setVirtualSlice} emptyStateProps={{ message: "Looks like you don't have any namespaces yet", diff --git a/assets/src/components/cd/namespaces/details/ManagedNamespace.tsx b/assets/src/components/cd/namespaces/details/ManagedNamespace.tsx index 323e69a857..4ae959feca 100644 --- a/assets/src/components/cd/namespaces/details/ManagedNamespace.tsx +++ b/assets/src/components/cd/namespaces/details/ManagedNamespace.tsx @@ -45,7 +45,7 @@ import { LinkTabWrap } from '../../../utils/Tabs' import { PluralErrorBoundary } from '../../PluralErrorBoundary' import { GqlError } from '../../../utils/Alert' -import { useFetchPaginatedData } from '../../utils/useFetchPaginatedData' +import { useFetchPaginatedData } from '../../../utils/table/useFetchPaginatedData' import { useProjectId } from '../../../contexts/ProjectsContext' import { mapExistingNodes } from '../../../../utils/graphql' import { TRUNCATE } from '../../../utils/truncate' diff --git a/assets/src/components/cd/namespaces/details/ManagedNamespaceServices.tsx b/assets/src/components/cd/namespaces/details/ManagedNamespaceServices.tsx index d32e985c0b..28a7545314 100644 --- a/assets/src/components/cd/namespaces/details/ManagedNamespaceServices.tsx +++ b/assets/src/components/cd/namespaces/details/ManagedNamespaceServices.tsx @@ -11,24 +11,19 @@ import { FullHeightTableWrap } from 'components/utils/layout/FullHeightTableWrap import LoadingIndicator from 'components/utils/LoadingIndicator' import { GqlError } from 'components/utils/Alert' import { useOutletContext } from 'react-router-dom' -import { ComponentProps, useMemo } from 'react' +import { useMemo } from 'react' import { columns } from 'components/cd/services/Services' -import { useFetchPaginatedData } from '../../utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../../utils/table/useFetchPaginatedData' import { useSetPageScrollable } from '../../ContinuousDeployment' import { ManagedNamespaceContextT, getBreadcrumbs } from './ManagedNamespace' -const MANAGED_NAMESPACES_QUERY_PAGE_SIZE = 100 - -const MANAGED_NAMESPACES_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - export function ManagedNamespaceServices() { const navigate = useNavigate() const { namespaceId, namespace } = @@ -54,7 +49,6 @@ export function ManagedNamespaceServices() { } = useFetchPaginatedData( { queryHook: useGetManagedNamespaceServicesQuery, - pageSize: MANAGED_NAMESPACES_QUERY_PAGE_SIZE, keyPath: ['managedNamespace', 'services'], }, { namespaceId } @@ -92,7 +86,7 @@ export function ManagedNamespaceServices() { ) } reactTableOptions={{ meta: { refetch } }} - reactVirtualOptions={MANAGED_NAMESPACES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} emptyStateProps={{ message: 'No services found.' }} /> diff --git a/assets/src/components/cd/observers/Observers.tsx b/assets/src/components/cd/observers/Observers.tsx index cdefc41c9c..4e6934f4f0 100644 --- a/assets/src/components/cd/observers/Observers.tsx +++ b/assets/src/components/cd/observers/Observers.tsx @@ -1,4 +1,4 @@ -import { ComponentProps, useState } from 'react' +import { useState } from 'react' import { IconFrame, LoopingLogo, @@ -24,7 +24,10 @@ import { Div } from 'honorable' import styled, { useTheme } from 'styled-components' import { CD_BASE_CRUMBS } from '../ContinuousDeployment' -import { useFetchPaginatedData } from '../utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../utils/table/useFetchPaginatedData' import { useProjectId } from '../../contexts/ProjectsContext' import { DateTimeCol } from '../../utils/table/DateTimeCol' import { @@ -43,12 +46,6 @@ export const breadcrumbs = [ { label: 'observers', url: OBSERVERS_ABS_PATH }, ] -const pageSize = 100 - -const virtualOptions: ComponentProps['reactVirtualOptions'] = { - overscan: 10, -} - const PropsContainer = styled.div(({ theme }) => ({ display: 'flex', flexDirection: 'column', @@ -277,7 +274,7 @@ export default function Observers() { const { data, loading, error, pageInfo, fetchNextPage } = useFetchPaginatedData( - { queryHook: useObserversQuery, pageSize, keyPath: ['observers'] }, + { queryHook: useObserversQuery, keyPath: ['observers'] }, { projectId } ) @@ -291,7 +288,7 @@ export default function Observers() {
export const columnHelper = createColumnHelper() -export const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} + const ColId = columnHelper.accessor((row) => row.node?.id, { id: 'id', header: 'Context ID', diff --git a/assets/src/components/cd/pipelines/PipelinePullRequests.tsx b/assets/src/components/cd/pipelines/PipelinePullRequests.tsx index eeec5d395d..9380534ed6 100644 --- a/assets/src/components/cd/pipelines/PipelinePullRequests.tsx +++ b/assets/src/components/cd/pipelines/PipelinePullRequests.tsx @@ -4,7 +4,7 @@ import { FullHeightTableWrap } from 'components/utils/layout/FullHeightTableWrap import { PullRequestFragment } from 'generated/graphql' import { ComponentProps, useMemo } from 'react' -import { REACT_VIRTUAL_OPTIONS } from './PipelineContexts' +import { DEFAULT_REACT_VIRTUAL_OPTIONS } from '../../utils/table/useFetchPaginatedData' export function PipelinePullRequestsModal({ pullRequests, @@ -40,7 +40,7 @@ export function PipelinePullRequestsTable({ return (
{servicePullRequests[serviceId]?.length && ( - +
{ + e.stopPropagation() + }} + > - +
)} diff --git a/assets/src/components/cd/pipelines/utils/getNodesAndEdges.tsx b/assets/src/components/cd/pipelines/utils/getNodesAndEdges.tsx index 10cfa4e0c6..573c982bea 100644 --- a/assets/src/components/cd/pipelines/utils/getNodesAndEdges.tsx +++ b/assets/src/components/cd/pipelines/utils/getNodesAndEdges.tsx @@ -39,7 +39,7 @@ const TYPE_SORT_VALS = Object.fromEntries( ) function createNodeEdges(nodeId: string, toId: string, fromId: string) { - const edges: Edge[] = [] + const edges: Edge[] = [] if (toId) { edges.push({ @@ -75,7 +75,7 @@ export function getNodesAndEdges(pipeline: PipelineFragment) { } function getGateNodes(pipeEdges: PipelineStageEdgeFragment[]) { - const allEdges: Edge[] = [] + const allEdges: Edge[] = [] const nodes = pipeEdges?.flatMap((e) => { let edge = e @@ -106,31 +106,33 @@ function getGateNodes(pipeEdges: PipelineStageEdgeFragment[]) { } }) as Record - const ret = (Object.entries(groupedGates) as Entries) - // Order of edges matters to Dagre layout, so sort by type ahead of time - .sort(([aType], [bType]) => TYPE_SORT_VALS[bType] - TYPE_SORT_VALS[aType]) - .flatMap(([type, gates]) => { - // Don't add unsupported gate types - if (type !== NodeType.Job && type !== NodeType.Approval) { - return [] - } - // Gate types that get their own node - if (type === NodeType.Job) { - const { edges, nodes } = getFlatGateNodesAndEdges(gates, edge, type) + return ( + (Object.entries(groupedGates) as Entries) + // Order of edges matters to Dagre layout, so sort by type ahead of time + .sort( + ([aType], [bType]) => TYPE_SORT_VALS[bType] - TYPE_SORT_VALS[aType] + ) + .flatMap(([type, gates]) => { + // Don't add unsupported gate types + if (type !== NodeType.Job && type !== NodeType.Approval) { + return [] + } + // Gate types that get their own node + if (type === NodeType.Job) { + const { edges, nodes } = getFlatGateNodesAndEdges(gates, edge, type) - allEdges.push(...edges) - - return nodes - } + allEdges.push(...edges) - const { edges, node } = getGroupedGateNodeAndEdges(edge, type, gates) + return nodes + } - allEdges.push(...edges) + const { edges, node } = getGroupedGateNodeAndEdges(edge, type, gates) - return node || [] - }) + allEdges.push(...edges) - return ret + return node || [] + }) + ) }) return { nodes, edges: allEdges } @@ -164,7 +166,7 @@ function getFlatGateNodesAndEdges( edge: PipelineStageEdgeFragment, type: NodeType ) { - const edges: Edge[] = [] + const edges: Edge[] = [] const nodes = gates?.flatMap((gate) => { const nodeId = gate.id diff --git a/assets/src/components/cd/pipelines/utils/nodeLayouter.tsx b/assets/src/components/cd/pipelines/utils/nodeLayouter.tsx index fd633f30df..8dfa367090 100644 --- a/assets/src/components/cd/pipelines/utils/nodeLayouter.tsx +++ b/assets/src/components/cd/pipelines/utils/nodeLayouter.tsx @@ -14,13 +14,11 @@ function measureNode(node: FlowNode, zoom) { const rect = domNode?.getBoundingClientRect() - const ret = { + return { ...node, width: (rect?.width || 200) / zoom, height: (rect?.height || 200) / zoom, } - - return ret } export type DagreDirection = 'LR' | 'RL' | 'TB' | 'BT' export const getLayoutedElements = ( @@ -41,7 +39,7 @@ export const getLayoutedElements = ( align: 'UL', marginx: margin, marginy: margin, - nodesep: gridGap * 1, + nodesep: gridGap, ranksep: gridGap * 4, }) diff --git a/assets/src/components/cd/repos/FluxHelmRepositoriesColumns.tsx b/assets/src/components/cd/repos/FluxHelmRepositoriesColumns.tsx index 9c880ce364..00bf564521 100644 --- a/assets/src/components/cd/repos/FluxHelmRepositoriesColumns.tsx +++ b/assets/src/components/cd/repos/FluxHelmRepositoriesColumns.tsx @@ -39,13 +39,6 @@ export const ColNamespace = columnHelper.accessor( } ) -export const ColAuthMethod = columnHelper.accessor((node) => node?.spec.type, { - id: 'type', - header: 'Type', - enableSorting: true, - cell: ({ getValue }) => getValue(), -}) - export const ColStatus = columnHelper.accessor( (repo) => (repo?.status?.ready ? GitHealth.Pullable : GitHealth.Failed), { diff --git a/assets/src/components/cd/services/Services.tsx b/assets/src/components/cd/services/Services.tsx index 2369bca76e..77731dc5ed 100644 --- a/assets/src/components/cd/services/Services.tsx +++ b/assets/src/components/cd/services/Services.tsx @@ -1,17 +1,9 @@ -import { - ComponentProps, - Dispatch, - SetStateAction, - useMemo, - useRef, - useState, -} from 'react' +import { Dispatch, SetStateAction, useMemo, useRef, useState } from 'react' import { ListIcon, NetworkInterfaceIcon, SubTab, TabList, - Table, useSetBreadcrumbs, } from '@pluralsh/design-system' import { useTheme } from 'styled-components' @@ -61,14 +53,6 @@ export const columns = [ ColActions, ] -export const SERVICES_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - -export const SERVICES_QUERY_PAGE_SIZE = 100 - export function getServiceStatuses( serviceStatuses?: Maybe[]> ): Record { diff --git a/assets/src/components/cd/services/ServicesTable.tsx b/assets/src/components/cd/services/ServicesTable.tsx index be05948a3a..90f3ed5300 100644 --- a/assets/src/components/cd/services/ServicesTable.tsx +++ b/assets/src/components/cd/services/ServicesTable.tsx @@ -16,18 +16,15 @@ import { GqlError } from 'components/utils/Alert' import { useOutletContext } from 'react-router-dom' -import { useFetchPaginatedData } from '../utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../utils/table/useFetchPaginatedData' import { useProjectId } from '../../contexts/ProjectsContext' import { ServicesFilters, StatusTabKey } from './ServicesFilters' -import { - SERVICES_QUERY_PAGE_SIZE, - SERVICES_REACT_VIRTUAL_OPTIONS, - ServicesContextT, - columns, - getServiceStatuses, -} from './Services' +import { ServicesContextT, columns, getServiceStatuses } from './Services' export default function ServicesTable() { const theme = useTheme() @@ -53,7 +50,6 @@ export default function ServicesTable() { } = useFetchPaginatedData( { queryHook: useServiceDeploymentsQuery, - pageSize: SERVICES_QUERY_PAGE_SIZE, keyPath: ['serviceDeployments'], }, { @@ -138,7 +134,7 @@ export default function ServicesTable() { fetchNextPage={fetchNextPage} isFetchingNextPage={loading} reactTableOptions={reactTableOptions} - reactVirtualOptions={SERVICES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} onVirtualSliceChange={setVirtualSlice} /> diff --git a/assets/src/components/cd/services/service/ServiceDetailsSidecar.tsx b/assets/src/components/cd/services/service/ServiceDetailsSidecar.tsx index 56dfc18e3e..b48651129d 100644 --- a/assets/src/components/cd/services/service/ServiceDetailsSidecar.tsx +++ b/assets/src/components/cd/services/service/ServiceDetailsSidecar.tsx @@ -81,6 +81,7 @@ export function ServiceDetailsSidecar({ message="Resync service" tooltipMessage="Use this to sync this service now instead of at the next poll interval" variables={{ id }} + width="100%" /> diff --git a/assets/src/components/cd/services/service/ServicePRs.tsx b/assets/src/components/cd/services/service/ServicePRs.tsx index ac881a9ad4..303d864889 100644 --- a/assets/src/components/cd/services/service/ServicePRs.tsx +++ b/assets/src/components/cd/services/service/ServicePRs.tsx @@ -28,13 +28,12 @@ import { ColStatus, ColTitle, } from '../../../pr/queue/PrQueueColumns' -import { - PRS_REACT_VIRTUAL_OPTIONS, - PR_QUERY_PAGE_SIZE, -} from '../../../pr/queue/PrQueue' import { GqlError } from '../../../utils/Alert' import { useThrottle } from '../../../hooks/useThrottle' -import { useFetchPaginatedData } from '../../utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../../utils/table/useFetchPaginatedData' import { getServiceDetailsBreadcrumbs, @@ -88,7 +87,6 @@ export default function ServicePRs() { } = useFetchPaginatedData( { queryHook: usePullRequestsQuery, - pageSize: PR_QUERY_PAGE_SIZE, keyPath: ['pullRequests'], }, { @@ -140,7 +138,7 @@ export default function ServicePRs() {
data?.clusters?.edges?.flatMap((e) => (e?.node ? e.node : [])) || [], [data?.clusters?.edges] ) - const pageInfo = data?.clusters?.pageInfo const findCluster = useCallback( (clusterId: Nullable) => { if (!clusterId) { return null } - if (currentData?.cluster && currentData?.cluster.id === clusterId) { - return currentData.cluster - } - if (previousData?.cluster && previousData?.cluster.id === clusterId) { - return previousData.cluster + if (data?.cluster && data?.cluster.id === clusterId) { + return data.cluster } return clusters?.find((cluster) => cluster?.id === clusterId) }, - [clusters, currentData?.cluster, previousData?.cluster] + [clusters, data?.cluster] ) + const selectedCluster = useMemo( () => findCluster(clusterId), [clusterId, findCluster] @@ -122,20 +114,13 @@ export default function ClusterSelector({ Loading ) : isEmpty(clusters) ? ( No results - ) : data?.clusters?.pageInfo.hasNextPage ? ( + ) : pageInfo?.hasNextPage ? ( Show more ) : undefined } onFooterClick={() => { - if (data?.clusters?.pageInfo.hasNextPage) { - if (!pageInfo) { - return - } - fetchMore({ - variables: { after: pageInfo.endCursor }, - updateQuery: (prev, { fetchMoreResult: { clusters } }) => - extendConnection(prev, clusters, 'clusters'), - }) + if (pageInfo?.hasNextPage) { + fetchNextPage() } else { setClusterSelectIsOpen(false) } diff --git a/assets/src/components/cluster/nodes/NodeEvents.tsx b/assets/src/components/cluster/nodes/NodeEvents.tsx index ff9fae1134..ac135e171c 100644 --- a/assets/src/components/cluster/nodes/NodeEvents.tsx +++ b/assets/src/components/cluster/nodes/NodeEvents.tsx @@ -10,10 +10,8 @@ import EventsTable from '../../utils/EventsTable' export default function NodeEvents() { const { name } = useParams() - const { data, refetch: _refetch } = useQuery<{ - node: { - events?: Event[] - } + const { data } = useQuery<{ + node: { events?: Event[] } }>(NODE_EVENTS_Q, { variables: { name }, fetchPolicy: 'cache-and-network', diff --git a/assets/src/components/cluster/nodes/NodeRaw.tsx b/assets/src/components/cluster/nodes/NodeRaw.tsx index 26c1c09c93..d31efa9cb2 100644 --- a/assets/src/components/cluster/nodes/NodeRaw.tsx +++ b/assets/src/components/cluster/nodes/NodeRaw.tsx @@ -10,11 +10,7 @@ import { RawPageCode } from '../RawPageCode' export default function NodeEvents() { const { name } = useParams() - const { data, refetch: _refetch } = useQuery<{ - node: { - raw: string - } - }>(NODE_RAW_Q, { + const { data } = useQuery<{ node: { raw: string } }>(NODE_RAW_Q, { variables: { name }, pollInterval: POLL_INTERVAL, fetchPolicy: 'cache-and-network', diff --git a/assets/src/components/cluster/pods/PodsList.tsx b/assets/src/components/cluster/pods/PodsList.tsx index f5cb2bddf8..e5ea01229f 100644 --- a/assets/src/components/cluster/pods/PodsList.tsx +++ b/assets/src/components/cluster/pods/PodsList.tsx @@ -23,7 +23,7 @@ import { ReadinessT } from 'utils/status' import { Confirm } from 'components/utils/Confirm' import { useMutation } from '@apollo/client' -import { TruncateStart } from 'components/utils/table/TruncateStart' +import { TruncateStart } from 'components/utils/table/Truncate' import { InlineLink } from 'components/utils/typography/InlineLink' diff --git a/assets/src/components/commandpalette/commands.ts b/assets/src/components/commandpalette/commands.ts index ddc9a96e16..14a44b0f40 100644 --- a/assets/src/components/commandpalette/commands.ts +++ b/assets/src/components/commandpalette/commands.ts @@ -117,18 +117,16 @@ export function useCommands(): CommandGroup[] { const { data } = useClustersTinyQuery({ pollInterval: 120_000, fetchPolicy: 'cache-and-network', - variables: { projectId }, + variables: { projectId, first: 100 }, }) - const clusters = useMemo( - () => mapExistingNodes(data?.clusters), - [data?.clusters] - ) + const cluster = useMemo(() => { + const clusters = mapExistingNodes(data?.clusters) - const cluster = useMemo( - () => (!isEmpty(clusters) ? clusters[0] : undefined), - [clusters] - ) + return !isEmpty(clusters) + ? clusters.find(({ self }) => !!self) ?? clusters[0] + : undefined + }, [data?.clusters]) return useMemo( () => [ diff --git a/assets/src/components/component/ComponentMetadata.tsx b/assets/src/components/component/ComponentMetadata.tsx index b07e34e49d..6dd7e2247a 100644 --- a/assets/src/components/component/ComponentMetadata.tsx +++ b/assets/src/components/component/ComponentMetadata.tsx @@ -7,8 +7,6 @@ import { ComponentStatusChip } from '../apps/app/components/misc' import { InfoSection } from './info/common' -export const componentsWithLogs: string[] = ['deployment', 'statefulset'] - export default function MetadataOutlet() { const { component, data } = useOutletContext() diff --git a/assets/src/components/component/ComponentRaw.tsx b/assets/src/components/component/ComponentRaw.tsx index 3bc8141cd3..5428f417d4 100644 --- a/assets/src/components/component/ComponentRaw.tsx +++ b/assets/src/components/component/ComponentRaw.tsx @@ -42,7 +42,7 @@ export function RawYaml({ raw }: { raw?: object | string | null | undefined }) { export function RawJson({ raw }: { raw?: object | string | null | undefined }) { const rawStr = useMemo(() => { - let json = '' + let json: string try { json = raw diff --git a/assets/src/components/component/tree/ComponentTreeNode.tsx b/assets/src/components/component/tree/ComponentTreeNode.tsx index 123c687e67..c3ee904dde 100644 --- a/assets/src/components/component/tree/ComponentTreeNode.tsx +++ b/assets/src/components/component/tree/ComponentTreeNode.tsx @@ -4,7 +4,6 @@ import { Modal, Tooltip, } from '@pluralsh/design-system' -import { PipelineStageEdgeFragment } from 'generated/graphql' import { ComponentProps, useState } from 'react' import { type NodeProps, Position } from 'reactflow' import { useTheme } from 'styled-components' @@ -175,5 +174,3 @@ function DetailsModal({ ) } - -export type EdgeNode = NodeProps diff --git a/assets/src/components/contexts/DocPageContext.tsx b/assets/src/components/contexts/DocPageContext.tsx index f4a9ca9e41..1bf0e0dca2 100644 --- a/assets/src/components/contexts/DocPageContext.tsx +++ b/assets/src/components/contexts/DocPageContext.tsx @@ -29,7 +29,6 @@ const reducer: ImmerReducer< draft.selectedHash = action.payload return draft - break case 'setHash': draft.selectedHash = action.payload diff --git a/assets/src/components/db-management/RestoreDatabaseModal.tsx b/assets/src/components/db-management/RestoreDatabaseModal.tsx index 8081ca08ae..04528a92e0 100644 --- a/assets/src/components/db-management/RestoreDatabaseModal.tsx +++ b/assets/src/components/db-management/RestoreDatabaseModal.tsx @@ -110,7 +110,7 @@ export function RestoreDatabaseModal({ } } - const modal = ( + return ( ) - - return modal } diff --git a/assets/src/components/db-management/TimezoneComboBox.tsx b/assets/src/components/db-management/TimezoneComboBox.tsx index 4d63ffd4a5..60f0bd6b49 100644 --- a/assets/src/components/db-management/TimezoneComboBox.tsx +++ b/assets/src/components/db-management/TimezoneComboBox.tsx @@ -92,7 +92,7 @@ export function TimezoneComboBox({ ? `${currentZone.friendlyName} (${currentZone.offset})` : 'Select a timezone' - const comboBox = ( + return ( ) - - return comboBox } diff --git a/assets/src/components/help/Chatbot.tsx b/assets/src/components/help/Chatbot.tsx index 2b714cef76..961d283620 100644 --- a/assets/src/components/help/Chatbot.tsx +++ b/assets/src/components/help/Chatbot.tsx @@ -221,7 +221,7 @@ function ChatbotFrame({ ComponentProps, { onClose: () => void; onMin: () => void } >) { - const [lazyQ, { called, loading, data, error: _error }] = useChatLazyQuery() + const [lazyQ, { called, loading, data }] = useChatLazyQuery() const hasMounted = useRef(false) const wasLoading = usePrevious(loading) const historyScrollRef = useRef(null) diff --git a/assets/src/components/home/Home.tsx b/assets/src/components/home/Home.tsx index ab88d02f68..84e3ef0a3d 100644 --- a/assets/src/components/home/Home.tsx +++ b/assets/src/components/home/Home.tsx @@ -21,7 +21,7 @@ export default function Home() { const isManager = useIsManager() return ( - + >) => navigate( diff --git a/assets/src/components/home/deployments/DeploymentsCard.tsx b/assets/src/components/home/deployments/DeploymentsCard.tsx index aec0560693..2f636bd221 100644 --- a/assets/src/components/home/deployments/DeploymentsCard.tsx +++ b/assets/src/components/home/deployments/DeploymentsCard.tsx @@ -1,13 +1,12 @@ -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { ServiceDeploymentStatus, useServiceDeploymentsQuery, } from 'generated/graphql' -import { - SERVICES_QUERY_PAGE_SIZE, - SERVICES_REACT_VIRTUAL_OPTIONS, -} from 'components/cd/services/Services' import { GqlError } from 'components/utils/Alert' import pluralize from 'pluralize' @@ -31,13 +30,9 @@ export function DeploymentsCard() { } = useFetchPaginatedData( { queryHook: useServiceDeploymentsQuery, - pageSize: SERVICES_QUERY_PAGE_SIZE, keyPath: ['serviceDeployments'], }, - { - status: ServiceDeploymentStatus.Failed, - projectId, - } + { status: ServiceDeploymentStatus.Failed, projectId } ) if (error) { @@ -60,7 +55,7 @@ export function DeploymentsCard() { hasNextPage={pageInfo?.hasNextPage} fetchNextPage={fetchNextPage} isFetchingNextPage={loading} - reactVirtualOptions={SERVICES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} onVirtualSliceChange={setVirtualSlice} css={{ maxHeight: HOME_CARD_MAX_HEIGHT }} /> diff --git a/assets/src/components/home/deployments/DeploymentsTable.tsx b/assets/src/components/home/deployments/DeploymentsTable.tsx index 734aeb8ba5..4647ec6829 100644 --- a/assets/src/components/home/deployments/DeploymentsTable.tsx +++ b/assets/src/components/home/deployments/DeploymentsTable.tsx @@ -4,7 +4,6 @@ import { ComponentProps } from 'react' import { useNavigate } from 'react-router-dom' import { Edge } from 'utils/graphql' import { Row } from '@tanstack/react-table' -import { SERVICES_REACT_VIRTUAL_OPTIONS } from 'components/cd/services/Services' import { getServiceDetailsPath } from 'routes/cdRoutesConsts' import { @@ -17,6 +16,8 @@ import { } from 'components/cd/services/ServicesColumns' import { TableSkeleton } from 'components/utils/SkeletonLoaders' +import { DEFAULT_REACT_VIRTUAL_OPTIONS } from '../../utils/table/useFetchPaginatedData' + export function DeploymentsTable({ refetch, data, @@ -39,7 +40,7 @@ export function DeploymentsTable({ loose data={data} columns={deploymentsColumns} - reactVirtualOptions={SERVICES_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} reactTableOptions={reactTableOptions} onRowClick={( _e, diff --git a/assets/src/components/home/managerview/violations/ConstraintViolationsCard.tsx b/assets/src/components/home/managerview/violations/ConstraintViolationsCard.tsx index 45befacd8e..8d604d3247 100644 --- a/assets/src/components/home/managerview/violations/ConstraintViolationsCard.tsx +++ b/assets/src/components/home/managerview/violations/ConstraintViolationsCard.tsx @@ -1,6 +1,6 @@ import { H1 } from 'honorable' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { useFetchPaginatedData } from 'components/utils/table/useFetchPaginatedData' import { GqlError } from 'components/utils/Alert' import { PolicyAggregate, @@ -11,8 +11,6 @@ import { useTheme } from 'styled-components' import { POLL_INTERVAL } from 'components/cd/ContinuousDeployment' -import { POLICIES_QUERY_PAGE_SIZE } from 'components/policies/Policies' - import { PoliciesTable } from 'components/policies/PoliciesTable' import { TableSkeleton } from 'components/utils/SkeletonLoaders' @@ -32,7 +30,6 @@ export function ConstraintViolationsCard() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: usePolicyConstraintsQuery, - pageSize: POLICIES_QUERY_PAGE_SIZE, keyPath: ['policyConstraints'], }) diff --git a/assets/src/components/home/pullrequests/PrCard.tsx b/assets/src/components/home/pullrequests/PrCard.tsx index 51e82a21a9..1f010b0d0f 100644 --- a/assets/src/components/home/pullrequests/PrCard.tsx +++ b/assets/src/components/home/pullrequests/PrCard.tsx @@ -1,7 +1,6 @@ -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { useFetchPaginatedData } from 'components/utils/table/useFetchPaginatedData' import { usePullRequestsQuery } from 'generated/graphql' -import { PR_QUERY_PAGE_SIZE } from 'components/pr/queue/PrQueue' import { GqlError } from 'components/utils/Alert' import { Title2H1 } from '../../utils/typography/Text' @@ -18,14 +17,8 @@ export function PrCard() { fetchNextPage, setVirtualSlice, } = useFetchPaginatedData( - { - queryHook: usePullRequestsQuery, - pageSize: PR_QUERY_PAGE_SIZE, - keyPath: ['pullRequests'], - }, - { - open: true, - } + { queryHook: usePullRequestsQuery, keyPath: ['pullRequests'] }, + { open: true } ) if (error) { diff --git a/assets/src/components/home/pullrequests/PrTable.tsx b/assets/src/components/home/pullrequests/PrTable.tsx index 56b4e3b306..f205698b30 100644 --- a/assets/src/components/home/pullrequests/PrTable.tsx +++ b/assets/src/components/home/pullrequests/PrTable.tsx @@ -1,9 +1,10 @@ import { Table } from '@pluralsh/design-system' import { ComponentProps } from 'react' import { prColumns } from 'components/pr/queue/PrQueueColumns' -import { PRS_REACT_VIRTUAL_OPTIONS } from 'components/pr/queue/PrQueue' import { TableSkeleton } from 'components/utils/SkeletonLoaders' +import { DEFAULT_REACT_VIRTUAL_OPTIONS } from '../../utils/table/useFetchPaginatedData' + export function PrTable({ refetch, data, @@ -25,7 +26,7 @@ export function PrTable({ loose data={data} columns={prColumns} - reactVirtualOptions={PRS_REACT_VIRTUAL_OPTIONS} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} reactTableOptions={reactTableOptions} {...props} /> diff --git a/assets/src/components/hooks/useNewKeyIf.tsx b/assets/src/components/hooks/useNewKeyIf.tsx deleted file mode 100644 index 0b27307e29..0000000000 --- a/assets/src/components/hooks/useNewKeyIf.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { useRef } from 'react' - -export function useNewKeyIf(condition: boolean) { - const key = useRef(Number.MIN_SAFE_INTEGER) - - if (condition) { - key.current = - key.current < Number.MAX_SAFE_INTEGER - ? key.current + 1 - : Number.MIN_SAFE_INTEGER - } - - return key.current -} diff --git a/assets/src/components/kubernetes/rbac/ClusterRole.tsx b/assets/src/components/kubernetes/rbac/ClusterRole.tsx index ee3707093a..679f6aedc8 100644 --- a/assets/src/components/kubernetes/rbac/ClusterRole.tsx +++ b/assets/src/components/kubernetes/rbac/ClusterRole.tsx @@ -1,19 +1,16 @@ import { ReactElement, useMemo } from 'react' -import { Outlet, useOutletContext, useParams } from 'react-router-dom' +import { Outlet, useParams } from 'react-router-dom' import { useSetBreadcrumbs } from '@pluralsh/design-system' import { KubernetesClient } from '../../../helpers/kubernetes.client' import { ClusterRoleQueryVariables, - Clusterrole_ClusterRoleDetail as ClusterRoleT, useClusterRoleQuery, } from '../../../generated/graphql-kubernetes' import { MetadataSidecar } from '../common/utils' import { getResourceDetailsAbsPath } from '../../../routes/kubernetesRoutesConsts' import LoadingIndicator from '../../utils/LoadingIndicator' import ResourceDetails, { TabEntry } from '../common/ResourceDetails' -import PolicyRules from '../common/PolicyRules' -import { FullHeightTableWrap } from '../../utils/layout/FullHeightTableWrap' import { useCluster } from '../Cluster' import { Kind } from '../common/types' @@ -63,13 +60,3 @@ export default function ClusterRole(): ReactElement { ) } - -export function RolePolicyRules(): ReactElement { - const cr = useOutletContext() as ClusterRoleT - - return ( - - - - ) -} diff --git a/assets/src/components/kubernetes/workloads/utils.tsx b/assets/src/components/kubernetes/workloads/utils.tsx index 05db5178db..7aeace8cb3 100644 --- a/assets/src/components/kubernetes/workloads/utils.tsx +++ b/assets/src/components/kubernetes/workloads/utils.tsx @@ -9,7 +9,7 @@ import { Common_PodInfo as PodInfoT, } from '../../../generated/graphql-kubernetes' import { Readiness, ReadinessT } from '../../../utils/status' -import { TruncateStart } from '../../utils/table/TruncateStart' +import { TruncateStart } from '../../utils/table/Truncate' const podStatusSeverity = { Running: 'success', diff --git a/assets/src/components/login/Login.tsx b/assets/src/components/login/Login.tsx index e27780c9a3..b30c6b243d 100644 --- a/assets/src/components/login/Login.tsx +++ b/assets/src/components/login/Login.tsx @@ -19,12 +19,14 @@ import { import { localized } from '../../helpers/hostname' import { LoginContextProvider } from '../contexts' import { ME_Q, SIGNIN } from '../graphql/users' -import { LoginPortal } from '../login/LoginPortal' + import { GqlError } from '../utils/Alert' import { LabelledInput } from '../utils/LabelledInput' import LoadingIndicator from '../utils/LoadingIndicator' import ShowAfterDelay from '../utils/ShowAfterDelay' +import { LoginPortal } from './LoginPortal' + // 30 seconds const POLL_INTERVAL = 30 * 1000 const LOGIN_INFO = gql` diff --git a/assets/src/components/notifications/NotificationsPanel.tsx b/assets/src/components/notifications/NotificationsPanel.tsx index d9195d438a..03b580635e 100644 --- a/assets/src/components/notifications/NotificationsPanel.tsx +++ b/assets/src/components/notifications/NotificationsPanel.tsx @@ -19,19 +19,14 @@ import { useAppNotificationsQuery, useReadAppNotificationsMutation, } from '../../generated/graphql' -import { useFetchPaginatedData } from '../cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../utils/table/useFetchPaginatedData' import { mapExistingNodes } from '../../utils/graphql' import Notification from './Notification' -const NOTIFICATIONS_QUERY_PAGE_SIZE = 100 - -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - const columnHelper = createColumnHelper() const columns = [ @@ -55,7 +50,6 @@ export function NotificationsPanel({ const { data, pageInfo, fetchNextPage, setVirtualSlice } = useFetchPaginatedData({ queryHook: useAppNotificationsQuery, - pageSize: NOTIFICATIONS_QUERY_PAGE_SIZE, keyPath: ['appNotifications'], }) @@ -133,7 +127,7 @@ export function NotificationsPanel({
['reactVirtualOptions'] = { - overscan: 10, -} - export function Policies() { useSetBreadcrumbs(breadcrumbs) // const [searchString, setSearchString] = useState('') @@ -53,7 +45,6 @@ export function Policies() { useFetchPaginatedData( { queryHook: usePolicyConstraintsQuery, - pageSize: POLICIES_QUERY_PAGE_SIZE, keyPath: ['policyConstraints'], }, policyQFilters diff --git a/assets/src/components/policies/PoliciesFilter.tsx b/assets/src/components/policies/PoliciesFilter.tsx index bb7fa62ce5..830cbbdb89 100644 --- a/assets/src/components/policies/PoliciesFilter.tsx +++ b/assets/src/components/policies/PoliciesFilter.tsx @@ -10,10 +10,11 @@ import { useViolationStatisticsQuery, } from 'generated/graphql' -import { Dispatch, SetStateAction } from 'react' +import { Dispatch, SetStateAction, useMemo } from 'react' import styled, { useTheme } from 'styled-components' import { useProjectId } from '../contexts/ProjectsContext' +import { mapExistingNodes } from '../../utils/graphql' function PoliciesFilter({ selectedKinds, @@ -63,7 +64,10 @@ function PoliciesFilter({ })) .filter(({ id }) => Boolean(id)) - const clusters = clustersData?.clusters?.edges + const clusters = useMemo( + () => mapExistingNodes(clustersData?.clusters), + [clustersData?.clusters] + ) const clusterLabel = 'Cluster' const kindLabel = 'Kind' @@ -104,24 +108,19 @@ function PoliciesFilter({ > No cluster - {clusters?.map((edge) => { - if (!edge?.node) return null - const { node } = edge - - return ( - { - handleCheckboxChange(setSelectedClusters, node.id, checked) - }} - > - {node.name} - - ) - })} + {clusters?.map((node) => ( + { + handleCheckboxChange(setSelectedClusters, node.id, checked) + }} + > + {node.name} + + ))} diff --git a/assets/src/components/pr/automations/PrAutomations.tsx b/assets/src/components/pr/automations/PrAutomations.tsx index e3351f58d9..516a7ee793 100644 --- a/assets/src/components/pr/automations/PrAutomations.tsx +++ b/assets/src/components/pr/automations/PrAutomations.tsx @@ -1,4 +1,4 @@ -import { ComponentProps, useMemo } from 'react' +import { useMemo } from 'react' import { ArrowTopRightIcon, Button, @@ -18,19 +18,15 @@ import { useSetPageHeaderContent } from 'components/cd/ContinuousDeployment' import { PR_BASE_CRUMBS, PR_QUEUE_ABS_PATH } from 'routes/prRoutesConsts' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { columns } from './PrAutomationsColumns' const DOCS_URL = 'https://docs.plural.sh/deployments/pr/crds' -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - -const QUERY_PAGE_SIZE = 100 const crumbs = [ ...PR_BASE_CRUMBS, { @@ -54,7 +50,6 @@ export default function AutomationPr() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: usePrAutomationsQuery, - pageSize: QUERY_PAGE_SIZE, keyPath: ['prAutomations'], }) @@ -96,7 +91,7 @@ export default function AutomationPr() {
{ setValue(isChecked.toString()) }} diff --git a/assets/src/components/pr/queue/PrQueue.tsx b/assets/src/components/pr/queue/PrQueue.tsx index 0a562771df..ab104fb89c 100644 --- a/assets/src/components/pr/queue/PrQueue.tsx +++ b/assets/src/components/pr/queue/PrQueue.tsx @@ -17,17 +17,13 @@ import { useThrottle } from 'components/hooks/useThrottle' import { GqlError } from 'components/utils/Alert' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { prColumns } from './PrQueueColumns' -export const PRS_REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - -export const PR_QUERY_PAGE_SIZE = 100 const PR_STATUS_TAB_KEYS = ['ALL', 'OPEN', 'CLOSED'] as const type PrStatusTabKey = (typeof PR_STATUS_TAB_KEYS)[number] @@ -60,14 +56,8 @@ export default function OutstandingPrs() { fetchNextPage, setVirtualSlice, } = useFetchPaginatedData( - { - queryHook: usePullRequestsQuery, - pageSize: PR_QUERY_PAGE_SIZE, - keyPath: ['pullRequests'], - }, - { - q: debouncedSearchString, - } + { queryHook: usePullRequestsQuery, keyPath: ['pullRequests'] }, + { q: debouncedSearchString } ) const reactTableOptions: ComponentProps['reactTableOptions'] = { @@ -103,7 +93,7 @@ export default function OutstandingPrs() {
['reactVirtualOptions'] = { - overscan: 10, -} - export const PR_QUERY_PAGE_SIZE = 100 const crumbs = [ @@ -47,7 +43,6 @@ export default function ScmConnections() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: useScmConnectionsQuery, - pageSize: PR_QUERY_PAGE_SIZE, keyPath: ['scmConnections'], }) @@ -83,7 +78,7 @@ export default function ScmConnections() {
['reactVirtualOptions'] = { - overscan: 10, -} - export const PR_QUERY_PAGE_SIZE = 100 const crumbs = [ @@ -85,7 +81,7 @@ export default function ScmWebhooks() {
node?.url, { gap: theme.spacing.small, }} > - - {url} - + {url} ) diff --git a/assets/src/components/settings/global/observability/ObservabilityProviders.tsx b/assets/src/components/settings/global/observability/ObservabilityProviders.tsx index 0f6438d0a3..efe60daa0c 100644 --- a/assets/src/components/settings/global/observability/ObservabilityProviders.tsx +++ b/assets/src/components/settings/global/observability/ObservabilityProviders.tsx @@ -3,24 +3,20 @@ import { FullHeightTableWrap } from 'components/utils/layout/FullHeightTableWrap import { useObservabilityProvidersQuery } from 'generated/graphql' -import { ComponentProps, useState } from 'react' +import { useState } from 'react' import { GqlError } from 'components/utils/Alert' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { SettingsPageHeader } from 'components/settings/Settings' import { EditObservabilityProviderModal } from './EditObservabilityProvider' import { columns } from './ObservabilityProvidersColumns' -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} -const OBSERVABILITY_PROVIDER_QUERY_PAGE_SIZE = 100 - const OBSERVABILITY_PROVIDERS_TABLE_HEIGHT = '224px' export default function ObservabilityProviders() { @@ -34,7 +30,6 @@ export default function ObservabilityProviders() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: useObservabilityProvidersQuery, - pageSize: OBSERVABILITY_PROVIDER_QUERY_PAGE_SIZE, keyPath: ['observabilityProviders'], }) @@ -61,7 +56,7 @@ export default function ObservabilityProviders() {
{ setValue(isChecked.toString()) }} diff --git a/assets/src/components/settings/notifications/routers/NotificationRouters.tsx b/assets/src/components/settings/notifications/routers/NotificationRouters.tsx index 40ecda6350..17e8be2ab6 100644 --- a/assets/src/components/settings/notifications/routers/NotificationRouters.tsx +++ b/assets/src/components/settings/notifications/routers/NotificationRouters.tsx @@ -1,4 +1,4 @@ -import { ComponentProps, useMemo, useState } from 'react' +import { useMemo, useState } from 'react' import { Button, LoopingLogo, @@ -20,18 +20,14 @@ import { NOTIFICATIONS_ROUTERS_ABS_PATH, } from 'routes/settingsRoutesConst' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { columns } from './NotificationRoutersColumns' import { CreateNotificationRouterModal } from './CreateNotificationRouterModal' -const REACT_VIRTUAL_OPTIONS: ComponentProps< - typeof Table ->['reactVirtualOptions'] = { - overscan: 10, -} - -const QUERY_PAGE_SIZE = 100 const crumbs = [ ...NOTIFICATIONS_BASE_CRUMBS, { @@ -74,7 +70,6 @@ export default function NotificationRouters() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: useNotificationRoutersQuery, - pageSize: QUERY_PAGE_SIZE, errorPolicy: 'all', keyPath: ['notificationRouters'], }) @@ -101,7 +96,7 @@ export default function NotificationRouters() {
['reactVirtualOptions'] = { - overscan: 10, -} - -const QUERY_PAGE_SIZE = 100 const crumbs = [ ...NOTIFICATIONS_BASE_CRUMBS, { @@ -55,7 +51,6 @@ export default function NotificationSinks() { setVirtualSlice, } = useFetchPaginatedData({ queryHook: useNotificationSinksQuery, - pageSize: QUERY_PAGE_SIZE, keyPath: ['notificationSinks'], }) @@ -81,7 +76,7 @@ export default function NotificationSinks() {
Enable all - {true && ( -
- {Object.entries(configTabs).map(([key, label]) => ( +
+ {Object.entries(configTabs).map(([key, label]) => ( +
+ + {label} +
- - {label} - -
- {configuration[key] && - Object.entries(configuration[key]).map( - ([subKey, checked]) => ( - - setConfiguration?.( - produce(configuration, (draft) => { - draft[key][subKey] = !draft[key][subKey] - }) - ) - } - > - {configKeyToLabel(subKey)} - - ) - )} -
+ {configuration[key] && + Object.entries(configuration[key]).map(([subKey, checked]) => ( + + setConfiguration?.( + produce(configuration, (draft) => { + draft[key][subKey] = !draft[key][subKey] + }) + ) + } + > + {configKeyToLabel(subKey)} + + ))}
- ))} -
- )} +
+ ))} +
) } diff --git a/assets/src/components/settings/usermanagement/personas/PersonasList.tsx b/assets/src/components/settings/usermanagement/personas/PersonasList.tsx index 6716e222c4..70bb789684 100644 --- a/assets/src/components/settings/usermanagement/personas/PersonasList.tsx +++ b/assets/src/components/settings/usermanagement/personas/PersonasList.tsx @@ -6,16 +6,16 @@ import { PersonaFragment, usePersonasQuery } from 'generated/graphql' import { createColumnHelper } from '@tanstack/react-table' import { GridTableWrapper } from '../../../utils/layout/ResponsiveGridLayouts' -import { useFetchPaginatedData } from '../../../cd/utils/useFetchPaginatedData' import { GqlError } from '../../../utils/Alert' - import { Info } from '../../../utils/Info' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from '../../../utils/table/useFetchPaginatedData' import PersonaActions from './PersonaActions' import PersonaCreate from './PersonaCreate' -export const pageSize = 100 - const columnHelper = createColumnHelper() const columns = [ columnHelper.accessor((persona) => persona, { @@ -45,7 +45,6 @@ export function PersonasList() { useFetchPaginatedData({ queryHook: usePersonasQuery, keyPath: ['personas'], - pageSize, }) const personas = useMemo( @@ -68,7 +67,7 @@ export function PersonasList() { fetchNextPage={fetchNextPage} isFetchingNextPage={loading} onVirtualSliceChange={setVirtualSlice} - reactVirtualOptions={{ overscan: 10 }} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} css={{ maxHeight: 'unset', height: '100%', diff --git a/assets/src/components/settings/usermanagement/serviceaccounts/ServiceAccountsList.tsx b/assets/src/components/settings/usermanagement/serviceaccounts/ServiceAccountsList.tsx index f8a3878fae..2673f02dd3 100644 --- a/assets/src/components/settings/usermanagement/serviceaccounts/ServiceAccountsList.tsx +++ b/assets/src/components/settings/usermanagement/serviceaccounts/ServiceAccountsList.tsx @@ -6,7 +6,10 @@ import { useServiceAccountsQuery } from 'generated/graphql' import LoadingIndicator from 'components/utils/LoadingIndicator' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { GqlError } from 'components/utils/Alert' @@ -71,7 +74,7 @@ export default function ServiceAccountsList({ fetchNextPage={fetchNextPage} isFetchingNextPage={loading} onVirtualSliceChange={setVirtualSlice} - reactVirtualOptions={{ overscan: 10 }} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} reactTableOptions={reactTableOptions} css={{ height: '100%', diff --git a/assets/src/components/settings/usermanagement/users/UsersList.tsx b/assets/src/components/settings/usermanagement/users/UsersList.tsx index e5392435d3..938c75e889 100644 --- a/assets/src/components/settings/usermanagement/users/UsersList.tsx +++ b/assets/src/components/settings/usermanagement/users/UsersList.tsx @@ -7,7 +7,10 @@ import { useUsersQuery } from 'generated/graphql' import { LoginContext } from 'components/contexts' import LoadingIndicator from 'components/utils/LoadingIndicator' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { GqlError } from 'components/utils/Alert' @@ -61,7 +64,7 @@ export default function UsersList() { fetchNextPage={fetchNextPage} isFetchingNextPage={loading} onVirtualSliceChange={setVirtualSlice} - reactVirtualOptions={{ overscan: 10 }} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} reactTableOptions={reactTableOptions} css={{ height: '100%', diff --git a/assets/src/components/stacks/StackSettingsModal.tsx b/assets/src/components/stacks/StackSettingsModal.tsx index 921c832934..ef42711774 100644 --- a/assets/src/components/stacks/StackSettingsModal.tsx +++ b/assets/src/components/stacks/StackSettingsModal.tsx @@ -17,7 +17,7 @@ export function StackSettingsModal( props: ComponentProps ) { return ( - + ) diff --git a/assets/src/components/stacks/Stacks.tsx b/assets/src/components/stacks/Stacks.tsx index 01e8c77326..db3297668f 100644 --- a/assets/src/components/stacks/Stacks.tsx +++ b/assets/src/components/stacks/Stacks.tsx @@ -52,7 +52,7 @@ import { getStacksAbsPath, } from '../../routes/stacksRoutesConsts' import { mapExistingNodes } from '../../utils/graphql' -import { useFetchPaginatedData } from '../cd/utils/useFetchPaginatedData' +import { useFetchPaginatedData } from '../utils/table/useFetchPaginatedData' import { GqlError } from '../utils/Alert' import KickButton from '../utils/KickButton' import { ResponsiveLayoutPage } from '../utils/layout/ResponsiveLayoutPage' @@ -95,8 +95,6 @@ enum MenuItemKey { Delete = 'delete', } -const QUERY_PAGE_SIZE = 100 - const pollInterval = 5 * 1000 const getDirectory = (type: Nullable) => [ @@ -147,7 +145,6 @@ export default function Stacks() { useFetchPaginatedData( { queryHook: useStacksQuery, - pageSize: QUERY_PAGE_SIZE, keyPath: ['infrastructureStacks'], }, { diff --git a/assets/src/components/stacks/common/StackTypeIcon.tsx b/assets/src/components/stacks/common/StackTypeIcon.tsx index 7a63916fe0..ee37a7b2ed 100644 --- a/assets/src/components/stacks/common/StackTypeIcon.tsx +++ b/assets/src/components/stacks/common/StackTypeIcon.tsx @@ -33,6 +33,4 @@ export function StackTypeIcon({ /> ) } - - return undefined } diff --git a/assets/src/components/stacks/customrun/StackCustomRunChooseTemplate.tsx b/assets/src/components/stacks/customrun/StackCustomRunChooseTemplate.tsx index 9a4be555e7..4ea523c1fe 100644 --- a/assets/src/components/stacks/customrun/StackCustomRunChooseTemplate.tsx +++ b/assets/src/components/stacks/customrun/StackCustomRunChooseTemplate.tsx @@ -4,7 +4,7 @@ import { } from 'generated/graphql' import { Row, createColumnHelper } from '@tanstack/react-table' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { useFetchPaginatedData } from 'components/utils/table/useFetchPaginatedData' import { GqlError } from 'components/utils/Alert' import LoadingIndicator from 'components/utils/LoadingIndicator' import { useMemo } from 'react' diff --git a/assets/src/components/stacks/prs/StackPrs.tsx b/assets/src/components/stacks/prs/StackPrs.tsx index 527cf800b3..e1267ba703 100644 --- a/assets/src/components/stacks/prs/StackPrs.tsx +++ b/assets/src/components/stacks/prs/StackPrs.tsx @@ -5,7 +5,10 @@ import { useOutletContext, useParams } from 'react-router-dom' import { FullHeightTableWrap } from 'components/utils/layout/FullHeightTableWrap' -import { useFetchPaginatedData } from 'components/cd/utils/useFetchPaginatedData' +import { + DEFAULT_REACT_VIRTUAL_OPTIONS, + useFetchPaginatedData, +} from 'components/utils/table/useFetchPaginatedData' import { GqlError } from 'components/utils/Alert' import LoadingIndicator from 'components/utils/LoadingIndicator' @@ -59,7 +62,7 @@ export function StackPrs() { isFetchingNextPage={loading} onVirtualSliceChange={setVirtualSlice} reactTableOptions={reactTableOptions} - reactVirtualOptions={{ overscan: 10 }} + reactVirtualOptions={DEFAULT_REACT_VIRTUAL_OPTIONS} css={{ height: '100%' }} emptyStateProps={{ message: 'No PRs found.', diff --git a/assets/src/components/utils/Link.tsx b/assets/src/components/utils/Link.tsx index 0f3b5f0fc9..6b5e974047 100644 --- a/assets/src/components/utils/Link.tsx +++ b/assets/src/components/utils/Link.tsx @@ -1,20 +1,11 @@ -import { ComponentProps } from 'react' import { Link } from 'react-router-dom' import styled from 'styled-components' -export function SafeLink({ children, ...props }: ComponentProps) { - return ( - e.stopPropagation()}> - {children} - - ) -} type UnstyledLinkProps = { $extendStyle?: object } + const unstyledStyles = ({ $extendStyle }: UnstyledLinkProps) => ({ textDecoration: 'none', ...$extendStyle, }) export const UnstyledLink = styled(Link)(unstyledStyles) - -export const UnstyledSafeLink = styled(SafeLink)(unstyledStyles) diff --git a/assets/src/components/utils/RadialBarChart.tsx b/assets/src/components/utils/RadialBarChart.tsx index 0a512b0d47..3659a041ae 100644 --- a/assets/src/components/utils/RadialBarChart.tsx +++ b/assets/src/components/utils/RadialBarChart.tsx @@ -121,7 +121,7 @@ function RadialBarChart({ } & Omit>, 'data'>) { const chartTheme = useChartTheme() const CenteredMetric = useMemo( - () => (true ? createCenteredMetric(centerVal, centerLabel) : () => null), + () => createCenteredMetric(centerVal, centerLabel), [centerLabel, centerVal] ) diff --git a/assets/src/components/utils/ShowAfterDelay.tsx b/assets/src/components/utils/ShowAfterDelay.tsx index 6711c8bcf7..c7c9604a6d 100644 --- a/assets/src/components/utils/ShowAfterDelay.tsx +++ b/assets/src/components/utils/ShowAfterDelay.tsx @@ -19,7 +19,7 @@ function ShowAfterDelayUnstyled({ }) { const [show, setShow] = useState(false) const [transitionIn, setTransitionIn] = useState(false) - const child: ReactElement = Children.only(children) as ReactElement + const child: ReactElement = Children.only(children) as ReactElement const clone = child ? cloneElement(child, { className: `${className}${transitionIn ? ' transitionIn' : ''}`, diff --git a/assets/src/components/utils/StopPropagation.tsx b/assets/src/components/utils/StopPropagation.tsx deleted file mode 100644 index 0341c6d53d..0000000000 --- a/assets/src/components/utils/StopPropagation.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { ReactNode } from 'react' - -export function StopPropagation({ children }: { children: ReactNode }) { - return ( -
{ - e.stopPropagation() - }} - > - {children} -
- ) -} diff --git a/assets/src/components/utils/TypeaheadEditor.jsx b/assets/src/components/utils/TypeaheadEditor.jsx index 1094a20eae..0d8e421209 100644 --- a/assets/src/components/utils/TypeaheadEditor.jsx +++ b/assets/src/components/utils/TypeaheadEditor.jsx @@ -45,7 +45,7 @@ export default function TypeaheadEditor({ break case 'Tab': case 'Enter': - if (target === null || suggestions.length === 0) break + if (suggestions.length === 0) break event.preventDefault() Transforms.select(editor, target) insertMention(editor, suggestions[index].value) diff --git a/assets/src/components/utils/animations.ts b/assets/src/components/utils/animations.ts deleted file mode 100644 index 4562a7d897..0000000000 --- a/assets/src/components/utils/animations.ts +++ /dev/null @@ -1,21 +0,0 @@ -import styled, { keyframes } from 'styled-components' - -const scale3d = (a, b, c) => `scale3d(${a}, ${b}, ${c})` - -const pulse = { - from: { - transform: scale3d(1, 1, 1), - }, - '50%': { - transform: scale3d(1.2, 1.2, 1.2), - }, - to: { - transform: scale3d(1, 1, 1), - }, -} - -const pulseAnimation = keyframes`${pulse}` - -export const PulsyDiv = styled.div` - animation: 2s ${pulseAnimation} infinite; -` diff --git a/assets/src/components/utils/events.ts b/assets/src/components/utils/events.ts deleted file mode 100644 index db9971f07e..0000000000 --- a/assets/src/components/utils/events.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const ignoreEvent = (e: Event) => { - e.stopPropagation() - e.preventDefault() -} diff --git a/assets/src/components/utils/hooks.ts b/assets/src/components/utils/hooks.ts deleted file mode 100644 index edc0f4dcc0..0000000000 --- a/assets/src/components/utils/hooks.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { useEffect } from 'react' - -// useful helper for debugging things like modals -// will label a component and log when it mounts and unmounts -export function useMountLogging(name?: string) { - const id = `${name ? `${name}-` : 'component-'}${Math.round( - Math.random() * 1000 - )}` - - useEffect(() => { - console.log(id, 'mounted') - - return () => { - console.log(id, 'unmounted') - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) -} diff --git a/assets/src/components/utils/layout/ResponsivePageFullWidth.tsx b/assets/src/components/utils/layout/ResponsivePageFullWidth.tsx index 5a4cb4a3d9..380794869d 100644 --- a/assets/src/components/utils/layout/ResponsivePageFullWidth.tsx +++ b/assets/src/components/utils/layout/ResponsivePageFullWidth.tsx @@ -1,34 +1,33 @@ -import { ComponentProps, Ref, forwardRef } from 'react' -import styled from 'styled-components' +import { CSSProperties, ComponentProps, Ref, forwardRef } from 'react' import { ResponsiveLayoutPage } from 'components/utils/layout/ResponsiveLayoutPage' import { ScrollablePage } from './ScrollablePage' -const ResponsivePageFullWidthSC = styled(ResponsiveLayoutPage)<{ - $scrollable: boolean -}>(({ $scrollable }) => ({ - flexDirection: 'column', - ...($scrollable - ? { - paddingRight: 0, - paddingBottom: 0, - } - : {}), -})) - -function ResponsivePageFullWidthRef( - { - scrollable = true, - children, - ...props - }: ComponentProps, - ref: Ref -) { - return ( - , + ref: Ref + ) => ( + {children} - + ) -} - -export const ResponsivePageFullWidth = forwardRef(ResponsivePageFullWidthRef) +) diff --git a/assets/src/components/utils/table/ColWithIcon.tsx b/assets/src/components/utils/table/ColWithIcon.tsx index 726cf4b3bb..7fac2670ef 100644 --- a/assets/src/components/utils/table/ColWithIcon.tsx +++ b/assets/src/components/utils/table/ColWithIcon.tsx @@ -1,6 +1,6 @@ -import { AppIcon, Tooltip, WrapWithIf } from '@pluralsh/design-system' +import { AppIcon, WrapWithIf } from '@pluralsh/design-system' import styled from 'styled-components' -import { ComponentProps, ReactNode } from 'react' +import { ComponentProps } from 'react' import classNames from 'classnames' import { Merge } from 'type-fest' @@ -27,55 +27,6 @@ const ColWithIconSC = styled.div(({ theme }) => ({ }, })) -export function ColWithOptionalIcon({ - icon, - iconTooltip, - children, - truncateLeft = false, - ...props -}: Merge< - ComponentProps, - { - icon?: string | ComponentProps['icon'] - truncateLeft?: boolean - iconTooltip?: ReactNode - } ->) { - let iconElt = !!icon && ( - - ) - - if (icon && iconTooltip) { - iconElt = ( - - {iconElt} - - ) - } - - return ( - - {iconElt &&
{iconElt}
} -
- } - > - {children} - -
-
- ) -} - export function ColWithIcon({ icon, iconSize, diff --git a/assets/src/components/utils/table/TruncateStart.tsx b/assets/src/components/utils/table/Truncate.tsx similarity index 100% rename from assets/src/components/utils/table/TruncateStart.tsx rename to assets/src/components/utils/table/Truncate.tsx diff --git a/assets/src/components/cd/utils/useFetchPaginatedData.tsx b/assets/src/components/utils/table/useFetchPaginatedData.tsx similarity index 93% rename from assets/src/components/cd/utils/useFetchPaginatedData.tsx rename to assets/src/components/utils/table/useFetchPaginatedData.tsx index c287d091e4..af61c92e2b 100644 --- a/assets/src/components/cd/utils/useFetchPaginatedData.tsx +++ b/assets/src/components/utils/table/useFetchPaginatedData.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo, useState } from 'react' +import { ComponentProps, useCallback, useMemo, useState } from 'react' import { VirtualItem } from '@tanstack/react-virtual' import { extendConnection, updateNestedConnection } from 'utils/graphql' import { @@ -12,6 +12,11 @@ import { QueryHookOptions, QueryResult, } from '@apollo/client' +import { Table } from '@pluralsh/design-system' + +export const DEFAULT_REACT_VIRTUAL_OPTIONS: ComponentProps< + typeof Table +>['reactVirtualOptions'] = { overscan: 10 } export const DEFAULT_PAGE_SIZE = 100 diff --git a/assets/src/components/vpn/columns/Actions.tsx b/assets/src/components/vpn/columns/Actions.tsx index 9e2b57ef64..84211a367e 100644 --- a/assets/src/components/vpn/columns/Actions.tsx +++ b/assets/src/components/vpn/columns/Actions.tsx @@ -25,7 +25,9 @@ const ColumnActions = (refetch) => }) function cell(refetch): ColumnDefTemplate> { - const context = (props: CellContext): JSX.Element => { + return function context( + props: CellContext + ): JSX.Element { const { isReady, name } = props.row.original return ( @@ -36,8 +38,6 @@ function cell(refetch): ColumnDefTemplate> { /> ) } - - return context } interface MenuItem { diff --git a/assets/src/components/vpn/columns/Delete.tsx b/assets/src/components/vpn/columns/Delete.tsx index 8cd22d4348..544f0c2333 100644 --- a/assets/src/components/vpn/columns/Delete.tsx +++ b/assets/src/components/vpn/columns/Delete.tsx @@ -22,7 +22,9 @@ const ColumnDelete = (refetch) => }) function cell(refetch): ColumnDefTemplate> { - const context = (props: CellContext): JSX.Element => { + return function context( + props: CellContext + ): JSX.Element { const { isReady, name } = props.row.original return ( @@ -33,8 +35,6 @@ function cell(refetch): ColumnDefTemplate> { /> ) } - - return context } interface DeleteActionsProps { diff --git a/assets/src/generated/graphql.ts b/assets/src/generated/graphql.ts index 4a4210ab87..6135153793 100644 --- a/assets/src/generated/graphql.ts +++ b/assets/src/generated/graphql.ts @@ -8788,6 +8788,7 @@ export type ClusterBasicFragment = { __typename?: 'Cluster', handle?: string | n export type ClustersTinyQueryVariables = Exact<{ projectId?: InputMaybe; + first?: InputMaybe; }>; @@ -8821,6 +8822,10 @@ export type ClusterBasicQuery = { __typename?: 'RootQueryType', cluster?: { __ty export type ClusterPodsQueryVariables = Exact<{ clusterId?: InputMaybe; namespace?: InputMaybe; + first?: InputMaybe; + after?: InputMaybe; + before?: InputMaybe; + last?: InputMaybe; }>; @@ -14305,7 +14310,7 @@ export type CreateBuildMutationHookResult = ReturnType; export type CreateBuildMutationOptions = Apollo.BaseMutationOptions; export const ClustersDocument = gql` - query Clusters($first: Int = 100, $after: String, $q: String, $healthy: Boolean, $tagQuery: TagQuery, $projectId: ID) { + query Clusters($first: Int, $after: String, $q: String, $healthy: Boolean, $tagQuery: TagQuery, $projectId: ID) { clusters( first: $first after: $after @@ -14370,8 +14375,8 @@ export type ClustersLazyQueryHookResult = ReturnType; export type ClustersQueryResult = Apollo.QueryResult; export const ClustersTinyDocument = gql` - query ClustersTiny($projectId: ID) { - clusters(first: 200, projectId: $projectId) { + query ClustersTiny($projectId: ID, $first: Int) { + clusters(first: $first, projectId: $projectId) { edges { node { ...ClusterTiny @@ -14394,6 +14399,7 @@ export const ClustersTinyDocument = gql` * const { data, loading, error } = useClustersTinyQuery({ * variables: { * projectId: // value for 'projectId' + * first: // value for 'first' * }, * }); */ @@ -14414,7 +14420,7 @@ export type ClustersTinyLazyQueryHookResult = ReturnType; export type ClustersTinyQueryResult = Apollo.QueryResult; export const ClusterSelectorDocument = gql` - query ClusterSelector($first: Int = 100, $after: String, $q: String, $currentClusterId: ID, $projectId: ID) { + query ClusterSelector($first: Int, $after: String, $q: String, $currentClusterId: ID, $projectId: ID) { clusters(first: $first, after: $after, q: $q, projectId: $projectId) { pageInfo { ...PageInfo @@ -14549,8 +14555,15 @@ export type ClusterBasicLazyQueryHookResult = ReturnType; export type ClusterBasicQueryResult = Apollo.QueryResult; export const ClusterPodsDocument = gql` - query ClusterPods($clusterId: ID, $namespace: String) { - pods(first: 100, clusterId: $clusterId, namespace: $namespace) { + query ClusterPods($clusterId: ID, $namespace: String, $first: Int, $after: String, $before: String, $last: Int) { + pods( + first: $first + after: $after + before: $before + last: $last + clusterId: $clusterId + namespace: $namespace + ) { pageInfo { ...PageInfo } @@ -14578,6 +14591,10 @@ ${PodFragmentDoc}`; * variables: { * clusterId: // value for 'clusterId' * namespace: // value for 'namespace' + * first: // value for 'first' + * after: // value for 'after' + * before: // value for 'before' + * last: // value for 'last' * }, * }); */ diff --git a/assets/src/graph/cdClusters.graphql b/assets/src/graph/cdClusters.graphql index 085fc0f342..d11fea65ce 100644 --- a/assets/src/graph/cdClusters.graphql +++ b/assets/src/graph/cdClusters.graphql @@ -246,7 +246,7 @@ fragment Cluster on Cluster { } query Clusters( - $first: Int = 100 + $first: Int $after: String $q: String $healthy: Boolean @@ -300,8 +300,8 @@ fragment ClusterBasic on Cluster { currentVersion } -query ClustersTiny($projectId: ID) { - clusters(first: 200, projectId: $projectId) { +query ClustersTiny($projectId: ID, $first: Int) { + clusters(first: $first, projectId: $projectId) { edges { node { ...ClusterTiny @@ -311,7 +311,7 @@ query ClustersTiny($projectId: ID) { } query ClusterSelector( - $first: Int = 100 + $first: Int $after: String $q: String $currentClusterId: ID @@ -344,8 +344,22 @@ query ClusterBasic($id: ID!) { } } -query ClusterPods($clusterId: ID, $namespace: String) { - pods(first: 100, clusterId: $clusterId, namespace: $namespace) { +query ClusterPods( + $clusterId: ID + $namespace: String + $first: Int + $after: String + $before: String + $last: Int +) { + pods( + first: $first + after: $after + before: $before + last: $last + clusterId: $clusterId + namespace: $namespace + ) { pageInfo { ...PageInfo } diff --git a/assets/src/utils/hasDefined.ts b/assets/src/utils/hasDefined.ts deleted file mode 100644 index c65da107cb..0000000000 --- a/assets/src/utils/hasDefined.ts +++ /dev/null @@ -1,10 +0,0 @@ -export function hasDefined( - argument: T | Defined, - keys: K[] -): argument is Defined { - return keys.every((key) => argument[key] != null) -} - -type Defined = { - [P in K]-?: Exclude -} diff --git a/assets/src/utils/hostname.ts b/assets/src/utils/hostname.ts index 1858c781fa..0ee9c3c1bb 100644 --- a/assets/src/utils/hostname.ts +++ b/assets/src/utils/hostname.ts @@ -1,15 +1,3 @@ -export function localized(path) { - const { hostname } = window.location - const proto = window.location.protocol - const { port } = window.location - - if (!port) { - return `${proto}//${hostname}${path}` - } - - return `${proto}//${hostname}:${port}${path}` -} - export function host() { const { hostname, protocol, port } = window.location const base = `${protocol}//${hostname}` diff --git a/assets/src/utils/kubernetes.ts b/assets/src/utils/kubernetes.ts index 502507d7cb..7396300d5a 100644 --- a/assets/src/utils/kubernetes.ts +++ b/assets/src/utils/kubernetes.ts @@ -16,7 +16,7 @@ export function isEqual({ metadata: first }, { metadata: second }) { } export function cpuParser(input?: string | null) { - if (!input || typeof input !== 'string') { + if (!input) { return undefined } const milliMatch = input.match(/^([0-9]+)([a-z])$/) diff --git a/assets/src/utils/time.ts b/assets/src/utils/time.ts index 6259fd0ba9..6a0eb6d51b 100644 --- a/assets/src/utils/time.ts +++ b/assets/src/utils/time.ts @@ -4,9 +4,7 @@ import moment, { Moment } from 'moment-timezone' export const MINUTE_TO_SECONDS = 60 export const HOUR_TO_SECONDS = MINUTE_TO_SECONDS * 60 export const DAY_TO_SECONDS = HOUR_TO_SECONDS * 24 - export const SECOND_TO_MILLISECONDS = 1000 -export const MINUTE_TO_MILLISECONDS = SECOND_TO_MILLISECONDS * 60 export const DURATIONS = [ { From f676ad2572fbb2b32deae79b8a13d6a17d4bc69e Mon Sep 17 00:00:00 2001 From: michaeljguarino Date: Thu, 26 Sep 2024 12:04:57 -0400 Subject: [PATCH 5/7] Log prometheus queries (#1417) --- lib/console/deployments/observability.ex | 4 ++-- lib/prometheus/client.ex | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/console/deployments/observability.ex b/lib/console/deployments/observability.ex index 12e13b657a..9081462403 100644 --- a/lib/console/deployments/observability.ex +++ b/lib/console/deployments/observability.ex @@ -76,9 +76,9 @@ defmodule Console.Deployments.Observability do end defp component_args(%ServiceComponent{group: "apps", version: "v1", kind: "Deployment", name: name, namespace: ns} = comp), - do: {:ok, %{name: name, namespace: ns, cluster: comp.service.cluster.handle, regex: "-[a-z0-9]+-[a-z0-9]+"}} + do: {:ok, [namespace: ns, name: name, cluster: comp.service.cluster.handle, regex: "-[a-z0-9]+-[a-z0-9]+"]} defp component_args(%ServiceComponent{group: "apps", version: "v1", kind: "StatefulSet", name: name, namespace: ns} = comp), - do: {:ok, %{name: name, namespace: ns, cluster: comp.service.cluster.handle, regex: "-[0-9]+"}} + do: {:ok, [namespace: ns, name: name, cluster: comp.service.cluster.handle, regex: "-[0-9]+"]} defp component_args(%ServiceComponent{group: g, kind: k}), do: {:error, "unsupported component kind #{g}/#{k}"} defp bulk_query(queries, ctx, start, stop, step) do diff --git a/lib/prometheus/client.ex b/lib/prometheus/client.ex index 8a89479ac0..579ae9c147 100644 --- a/lib/prometheus/client.ex +++ b/lib/prometheus/client.ex @@ -1,6 +1,7 @@ defmodule Prometheus.Client do alias Console.Schema.DeploymentSettings.Connection alias Prometheus.{Response, Data, Result} + require Logger @headers [{"content-type", "application/x-www-form-urlencoded"}] defstruct [:host, :user, :password] @@ -17,6 +18,7 @@ defmodule Prometheus.Client do def query(client \\ nil, query, start, end_t, step, variables) do query = variable_subst(query, variables) + Logger.info "Issuing prometheus query: #{query}" HTTPoison.post( Path.join(host(client), "/api/v1/query_range"), {:form, [ From 8b5a328710fdb5812659f4759490cad0c008761d Mon Sep 17 00:00:00 2001 From: Marcin Maciaszczyk Date: Fri, 27 Sep 2024 17:35:11 +0200 Subject: [PATCH 6/7] fix: Visual bug on add-ons compatibility table (#1420) --- assets/src/components/cd/cluster/Cluster.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/assets/src/components/cd/cluster/Cluster.tsx b/assets/src/components/cd/cluster/Cluster.tsx index 147c9ff079..791c7db1d1 100644 --- a/assets/src/components/cd/cluster/Cluster.tsx +++ b/assets/src/components/cd/cluster/Cluster.tsx @@ -151,6 +151,7 @@ export default function Cluster() { /> {headerContent} From 528db15de7f266aa2c9adcd47b894861c3835225 Mon Sep 17 00:00:00 2001 From: Marcin Maciaszczyk Date: Fri, 27 Sep 2024 18:04:49 +0200 Subject: [PATCH 7/7] feat: Add cloud upgrade insights to upgrade flyout (#1419) --- assets/package.json | 2 +- .../cd/clusters/ClusterUpgradeFlyover.tsx | 372 ++++++------------ .../cd/clusters/ClusterUpgradePR.tsx | 37 ++ .../cd/clusters/ClustersUpgradeNow.tsx | 92 +++++ .../cd/clusters/UpgradeInsights.tsx | 178 +++++++++ .../cd/clusters/clusterUpgradeColumns.tsx | 148 +++++++ assets/src/generated/graphql.ts | 38 +- assets/src/graph/cdClusters.graphql | 25 ++ assets/yarn.lock | 275 ++++++------- 9 files changed, 767 insertions(+), 400 deletions(-) create mode 100644 assets/src/components/cd/clusters/ClusterUpgradePR.tsx create mode 100644 assets/src/components/cd/clusters/ClustersUpgradeNow.tsx create mode 100644 assets/src/components/cd/clusters/UpgradeInsights.tsx create mode 100644 assets/src/components/cd/clusters/clusterUpgradeColumns.tsx diff --git a/assets/package.json b/assets/package.json index 0dc047a00b..b5729b6c07 100644 --- a/assets/package.json +++ b/assets/package.json @@ -46,7 +46,7 @@ "@nivo/pie": "0.87.0", "@nivo/radial-bar": "0.87.0", "@nivo/tooltip": "0.87.0", - "@pluralsh/design-system": "3.69.1", + "@pluralsh/design-system": "3.69.2", "@react-hooks-library/core": "0.6.0", "@saas-ui/use-hotkeys": "1.1.3", "@tanstack/react-virtual": "3.0.1", diff --git a/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx b/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx index 10fe749a1e..a785933c7e 100644 --- a/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx +++ b/assets/src/components/cd/clusters/ClusterUpgradeFlyover.tsx @@ -3,284 +3,64 @@ import { Accordion, AccordionItem, AppIcon, - Button, ChecklistIcon, - ClusterIcon, + Chip, ConfettiIcon, - Flex, Flyover, - IconFrame, - ListBoxItem, - Select, SuccessIcon, + Tab, + TabList, Table, - Tooltip, - WrapWithIf, + WarningIcon, } from '@pluralsh/design-system' -import { Confirm } from 'components/utils/Confirm' import { - ApiDeprecation, ClustersRowFragment, - RuntimeServicesQuery, - useCreatePullRequestMutation, + UpgradeInsight, useRuntimeServicesQuery, - useUpdateClusterMutation, } from 'generated/graphql' import isEmpty from 'lodash/isEmpty' -import React, { useCallback, useEffect, useMemo, useState } from 'react' -import { coerce } from 'semver' +import React, { useRef, useState } from 'react' import styled, { useTheme } from 'styled-components' -import { - isUpgrading, - nextSupportedVersion, - supportedUpgrades, - toNiceVersion, - toProviderSupportedVersion, -} from 'utils/semver' - -import { createColumnHelper } from '@tanstack/react-table' import { IconProps } from '@pluralsh/design-system/dist/components/icons/createIcon' -import { TabularNumbers } from '../../cluster/TableElements' +import { Row } from '@tanstack/react-table' + import { GqlError } from '../../utils/Alert' import { deprecationsColumns } from './deprecationsColumns' import RuntimeServices, { getClusterKubeVersion, } from './runtime/RuntimeServices' +import { clusterUpgradeColumns } from './clusterUpgradeColumns' +import { + UpgradeInsightExpansionPanel, + upgradeInsightsColumns, +} from './UpgradeInsights' -const supportedVersions = (cluster: ClustersRowFragment | null) => - cluster?.provider?.supportedVersions?.map((vsn) => coerce(vsn)?.raw) ?? [] - -const columnHelperUpgrade = createColumnHelper() - -function ClusterUpgradePr({ prs, setError }) { - const pr = prs[0] - const [mutation, { loading, error }] = useCreatePullRequestMutation({ - variables: { - id: pr.id, - branch: 'mjg/upgrade', - context: JSON.stringify({ version: '1.28' }), - }, - onCompleted: (data) => { - const url = data.createPullRequest?.url - - if (url) { - window.open(url, '_blank')?.focus() - } - }, - }) - - useEffect(() => { - setError(error) - }, [error, setError]) +const POLL_INTERVAL = 10 * 1000 - return ( - - ) +export enum DeprecationType { + GitOps = 'gitOps', + CloudProvider = 'cloudProvider', } -function ClustersUpgradeNow({ - cluster, - targetVersion, - apiDeprecations, - refetch, - setError, -}: { - cluster?: ClustersRowFragment | null - targetVersion: Nullable - apiDeprecations: ApiDeprecation[] - refetch: Nullable<() => void> - setError: Nullable<(error: Nullable) => void> -}) { - const [updateCluster, { loading, error }] = useUpdateClusterMutation({ - variables: { - id: cluster?.id ?? '', - attributes: { - version: toProviderSupportedVersion( - targetVersion, - cluster?.provider?.cloud - ), - }, - }, - onCompleted: () => { - refetch?.() - setError?.(undefined) - setConfirm(false) - }, - onError: (e: ApolloError) => setError?.(e), - }) - const [confirm, setConfirm] = useState(false) - const hasDeprecations = !isEmpty(apiDeprecations) - const onClick = useCallback( - () => (!hasDeprecations ? updateCluster() : setConfirm(true)), - [hasDeprecations, updateCluster] - ) - const upgrading = - !cluster?.self && isUpgrading(cluster?.version, cluster?.currentVersion) - - const tooltip = upgrading - ? 'Cluster is already upgrading' - : cluster?.deletedAt - ? 'Cluster is being deleted' - : null - +function DeprecationCountChip({ count }: { count: number }) { return ( - <> - } - > -
- -
-
- setConfirm(false)} - submit={updateCluster} - loading={loading} - error={error} - destructive - /> - + + {count} + ) } -const upgradeColumns = [ - columnHelperUpgrade.accessor(({ name }) => name, { - id: 'cluster', - header: 'Cluster', - cell: ({ getValue }) => ( - - } - /> - {getValue()} - - ), - }), - columnHelperUpgrade.accessor((cluster) => cluster?.currentVersion, { - id: 'version', - header: 'Current version', - cell: ({ getValue }) =>
{toNiceVersion(getValue())}
, - }), - columnHelperUpgrade.accessor((cluster) => cluster, { - id: 'actions', - header: '', - meta: { - gridTemplate: 'fit-content(500px)', - }, - cell: function Cell({ table, getValue, row: { original } }) { - const theme = useTheme() - const cluster = getValue() - const upgrades = useMemo( - () => supportedUpgrades(cluster.version, supportedVersions(cluster)), - [cluster] - ) - const upgradeVersion = nextSupportedVersion( - cluster?.version, - cluster?.provider?.supportedVersions - ) - const [targetVersion, setTargetVersion] = - useState>(upgradeVersion) - - const { refetch, setError, runtimeServiceData } = table.options.meta as { - refetch?: () => void - setError?: (error: Nullable) => void - runtimeServiceData?: RuntimeServicesQuery - } - - useEffect(() => { - if (!upgrades.some((upgrade) => upgrade === targetVersion)) { - setTargetVersion(undefined) - } - }, [targetVersion, upgrades]) - - if (!isEmpty(cluster.prAutomations)) { - return ( - - ) - } - - if (isEmpty(upgrades) || original.self) return null - - return ( -
-
- -
- -
- ) - }, - }), -] - -const POLL_INTERVAL = 10 * 1000 - function FlyoverContent({ open, cluster, refetch }) { - const [upgradeError, setError] = useState>(undefined) const theme = useTheme() + const tabStateRef = useRef(null) + const [deprecationType, setDeprecationType] = useState(DeprecationType.GitOps) + const [upgradeError, setError] = useState>(undefined) const kubeVersion = getClusterKubeVersion(cluster) const { data, error } = useRuntimeServicesQuery({ @@ -296,6 +76,7 @@ function FlyoverContent({ open, cluster, refetch }) { const runtimeServices = data?.cluster?.runtimeServices const apiDeprecations = data?.cluster?.apiDeprecations + const upgradeInsights = data?.cluster?.upgradeInsights return (
} > - {!isEmpty(apiDeprecations) ? ( -
+ - ) : ( - + > + + {!isEmpty(apiDeprecations) && ( + + )} +
Detected by GitOps
+ +
+ + {!isEmpty(upgradeInsights) && ( + + )} + Detected by Cloud Provider + + +
+ + {deprecationType === DeprecationType.GitOps && ( +
+ {!isEmpty(apiDeprecations) ? ( +
+ ) : ( + + )} + + )} + {deprecationType === DeprecationType.CloudProvider && ( +
+ {!isEmpty(upgradeInsights) ? ( +
) => + row.original.description || !isEmpty(row.original.details) + } + renderExpanded={UpgradeInsightExpansionPanel} + css={{ + maxHeight: 400, + height: '100%', + }} + /> + ) : ( + + )} + )} @@ -495,7 +348,6 @@ function ClusterUpgradeAccordionTrigger({ } const TriggerWrapperSC = styled.div(({ theme }) => ({ - padding: theme.spacing.xsmall, gap: theme.spacing.large, cursor: 'pointer', fontSize: '18px', diff --git a/assets/src/components/cd/clusters/ClusterUpgradePR.tsx b/assets/src/components/cd/clusters/ClusterUpgradePR.tsx new file mode 100644 index 0000000000..4decff768b --- /dev/null +++ b/assets/src/components/cd/clusters/ClusterUpgradePR.tsx @@ -0,0 +1,37 @@ +import React, { useEffect } from 'react' +import { Button } from '@pluralsh/design-system' + +import { useCreatePullRequestMutation } from '../../../generated/graphql' + +export function ClusterUpgradePR({ prs, setError }) { + const pr = prs[0] + const [mutation, { loading, error }] = useCreatePullRequestMutation({ + variables: { + id: pr.id, + branch: 'mjg/upgrade', + context: JSON.stringify({ version: '1.28' }), + }, + onCompleted: (data) => { + const url = data.createPullRequest?.url + + if (url) { + window.open(url, '_blank')?.focus() + } + }, + }) + + useEffect(() => { + setError(error) + }, [error, setError]) + + return ( + + ) +} diff --git a/assets/src/components/cd/clusters/ClustersUpgradeNow.tsx b/assets/src/components/cd/clusters/ClustersUpgradeNow.tsx new file mode 100644 index 0000000000..d0603862ad --- /dev/null +++ b/assets/src/components/cd/clusters/ClustersUpgradeNow.tsx @@ -0,0 +1,92 @@ +import { ApolloError } from '@apollo/client' + +import React, { useCallback, useState } from 'react' +import isEmpty from 'lodash/isEmpty' +import { Button, Tooltip, WrapWithIf } from '@pluralsh/design-system' + +import { isUpgrading, toProviderSupportedVersion } from '../../../utils/semver' +import { + ApiDeprecation, + ClustersRowFragment, + useUpdateClusterMutation, +} from '../../../generated/graphql' +import { Confirm } from '../../utils/Confirm' + +export function ClustersUpgradeNow({ + cluster, + targetVersion, + apiDeprecations, + refetch, + setError, +}: { + cluster?: ClustersRowFragment | null + targetVersion: Nullable + apiDeprecations: ApiDeprecation[] + refetch: Nullable<() => void> + setError: Nullable<(error: Nullable) => void> +}) { + const [updateCluster, { loading, error }] = useUpdateClusterMutation({ + variables: { + id: cluster?.id ?? '', + attributes: { + version: toProviderSupportedVersion( + targetVersion, + cluster?.provider?.cloud + ), + }, + }, + onCompleted: () => { + refetch?.() + setError?.(undefined) + setConfirm(false) + }, + onError: (e: ApolloError) => setError?.(e), + }) + const [confirm, setConfirm] = useState(false) + const hasDeprecations = !isEmpty(apiDeprecations) + const onClick = useCallback( + () => (!hasDeprecations ? updateCluster() : setConfirm(true)), + [hasDeprecations, updateCluster] + ) + const upgrading = + !cluster?.self && isUpgrading(cluster?.version, cluster?.currentVersion) + + const tooltip = upgrading + ? 'Cluster is already upgrading' + : cluster?.deletedAt + ? 'Cluster is being deleted' + : null + + return ( + <> + } + > +
+ +
+
+ setConfirm(false)} + submit={updateCluster} + loading={loading} + error={error} + destructive + /> + + ) +} diff --git a/assets/src/components/cd/clusters/UpgradeInsights.tsx b/assets/src/components/cd/clusters/UpgradeInsights.tsx new file mode 100644 index 0000000000..516ce33a1f --- /dev/null +++ b/assets/src/components/cd/clusters/UpgradeInsights.tsx @@ -0,0 +1,178 @@ +import { Row, createColumnHelper } from '@tanstack/react-table' +import { UpgradeInsight, UpgradeInsightStatus } from 'generated/graphql' +import { Chip, CollapseIcon } from '@pluralsh/design-system' +import capitalize from 'lodash/capitalize' +import React, { ComponentProps } from 'react' +import { useTheme } from 'styled-components' +import { ChipProps } from '@pluralsh/design-system/dist/components/Chip' + +import { DateTimeCol } from '../../utils/table/DateTimeCol' +import { OverlineH1 } from '../../utils/typography/Text' +import { isNonNullable } from '../../../utils/isNonNullable' + +const statusToSeverity = { + [UpgradeInsightStatus.Passing]: 'success', + [UpgradeInsightStatus.Failed]: 'danger', + [UpgradeInsightStatus.Unknown]: 'neutral', +} as const satisfies Record< + UpgradeInsightStatus, + ComponentProps['severity'] +> + +function UpgradeInsightStatusChip({ + status, + ...props +}: { status: Nullable } & ChipProps) { + const s = status ?? UpgradeInsightStatus.Unknown + + return ( + + {capitalize(s)} + + ) +} + +const columnHelperDeprecations = createColumnHelper() + +export const upgradeInsightsColumns = [ + { + id: 'expander', + header: () => {}, + cell: ({ row }: any) => + row.getCanExpand() && ( + + ), + }, + columnHelperDeprecations.accessor(({ name }) => name, { + id: 'name', + header: 'Name', + cell: ({ getValue }) =>
{getValue()}
, + }), + columnHelperDeprecations.accessor(({ status }) => status, { + id: 'status', + header: 'Insight status', + cell: ({ getValue }) => , + }), + columnHelperDeprecations.accessor(({ version }) => version, { + id: 'version', + header: 'Version', + cell: ({ getValue }) =>
{getValue()}
, + }), + columnHelperDeprecations.accessor(({ refreshedAt }) => refreshedAt, { + id: 'lastRefresh', + header: 'Last refresh', + cell: ({ getValue }) => , + }), + columnHelperDeprecations.accessor(({ transitionedAt }) => transitionedAt, { + id: 'lastTransition', + header: 'Last transition', + cell: ({ getValue }) => , + }), +] + +export function UpgradeInsightExpansionPanel({ + row, +}: { + row: Row +}) { + const theme = useTheme() + const { + original: { description, details }, + } = row + + return ( +
+ + Description + +

{description}

+ {details && ( +
+ {details + .filter(isNonNullable) + .map( + ( + { + used, + replacement, + replacedIn, + removedIn, + status = UpgradeInsightStatus.Unknown, + }, + i + ) => ( +
+
+
+ {used} +
+
+ {!!replacement && <>Replaced with: {replacement}} + {!!removedIn && <>Removed} +
+
+
+
+ +
+
+ {replacedIn && <>Replacement version: {replacedIn}} + {removedIn && <>Removal version: {removedIn}} +
+
+
+ ) + )} +
+ )} +
+ ) +} diff --git a/assets/src/components/cd/clusters/clusterUpgradeColumns.tsx b/assets/src/components/cd/clusters/clusterUpgradeColumns.tsx new file mode 100644 index 0000000000..33229816e3 --- /dev/null +++ b/assets/src/components/cd/clusters/clusterUpgradeColumns.tsx @@ -0,0 +1,148 @@ +import { createColumnHelper } from '@tanstack/react-table' + +import { + ClusterIcon, + Flex, + IconFrame, + ListBoxItem, + Select, +} from '@pluralsh/design-system' + +import { useTheme } from 'styled-components' +import React, { useEffect, useMemo, useState } from 'react' +import { ApolloError } from '@apollo/client' +import isEmpty from 'lodash/isEmpty' + +import { coerce } from 'semver' + +import { + nextSupportedVersion, + supportedUpgrades, + toNiceVersion, + toProviderSupportedVersion, +} from '../../../utils/semver' +import { + ApiDeprecation, + ClustersRowFragment, + RuntimeServicesQuery, +} from '../../../generated/graphql' + +import { TabularNumbers } from '../../cluster/TableElements' + +import { ClusterUpgradePR } from './ClusterUpgradePR' + +import { ClustersUpgradeNow } from './ClustersUpgradeNow' + +const supportedVersions = (cluster: ClustersRowFragment | null) => + cluster?.provider?.supportedVersions?.map((vsn) => coerce(vsn)?.raw) ?? [] + +const columnHelperUpgrade = createColumnHelper() + +export const clusterUpgradeColumns = [ + columnHelperUpgrade.accessor(({ name }) => name, { + id: 'cluster', + header: 'Cluster', + cell: ({ getValue }) => ( + + } + /> + {getValue()} + + ), + }), + columnHelperUpgrade.accessor((cluster) => cluster?.currentVersion, { + id: 'version', + header: 'Current version', + cell: ({ getValue }) =>
{toNiceVersion(getValue())}
, + }), + columnHelperUpgrade.accessor((cluster) => cluster, { + id: 'actions', + header: '', + meta: { + gridTemplate: 'fit-content(500px)', + }, + cell: function Cell({ table, getValue, row: { original } }) { + const theme = useTheme() + const cluster = getValue() + const upgrades = useMemo( + () => supportedUpgrades(cluster.version, supportedVersions(cluster)), + [cluster] + ) + const upgradeVersion = nextSupportedVersion( + cluster?.version, + cluster?.provider?.supportedVersions + ) + const [targetVersion, setTargetVersion] = + useState>(upgradeVersion) + + const { refetch, setError, runtimeServiceData } = table.options.meta as { + refetch?: () => void + setError?: (error: Nullable) => void + runtimeServiceData?: RuntimeServicesQuery + } + + useEffect(() => { + if (!upgrades.some((upgrade) => upgrade === targetVersion)) { + setTargetVersion(undefined) + } + }, [targetVersion, upgrades]) + + if (!isEmpty(cluster.prAutomations)) { + return ( + + ) + } + + if (isEmpty(upgrades) || original.self) return null + + return ( +
+
+ +
+ +
+ ) + }, + }), +] diff --git a/assets/src/generated/graphql.ts b/assets/src/generated/graphql.ts index 6135153793..fbbacac69d 100644 --- a/assets/src/generated/graphql.ts +++ b/assets/src/generated/graphql.ts @@ -8758,6 +8758,10 @@ export type NodePoolFragment = { __typename?: 'NodePool', id: string, name: stri export type ApiDeprecationFragment = { __typename?: 'ApiDeprecation', availableIn?: string | null, blocking?: boolean | null, deprecatedIn?: string | null, removedIn?: string | null, replacement?: string | null, component?: { __typename?: 'ServiceComponent', group?: string | null, version?: string | null, kind: string, name: string, namespace?: string | null, service?: { __typename?: 'ServiceDeployment', git?: { __typename?: 'GitRef', ref: string, folder: string } | null, repository?: { __typename?: 'GitRepository', httpsPath?: string | null, urlFormat?: string | null } | null } | null } | null }; +export type UpgradeInsightFragment = { __typename?: 'UpgradeInsight', id: string, name: string, description?: string | null, refreshedAt?: string | null, transitionedAt?: string | null, version?: string | null, status?: UpgradeInsightStatus | null, details?: Array<{ __typename?: 'UpgradeInsightDetail', id: string, removedIn?: string | null, replacedIn?: string | null, replacement?: string | null, status?: UpgradeInsightStatus | null, used?: string | null } | null> | null }; + +export type UpgradeInsightDetailFragment = { __typename?: 'UpgradeInsightDetail', id: string, removedIn?: string | null, replacedIn?: string | null, replacement?: string | null, status?: UpgradeInsightStatus | null, used?: string | null }; + export type RuntimeServiceFragment = { __typename?: 'RuntimeService', id: string, name: string, version: string, addon?: { __typename?: 'RuntimeAddon', icon?: string | null, versions?: Array<{ __typename?: 'AddonVersion', version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null> | null } | null, service?: { __typename?: 'ServiceDeployment', git?: { __typename?: 'GitRef', ref: string, folder: string } | null, repository?: { __typename?: 'GitRepository', httpsPath?: string | null, urlFormat?: string | null } | null, helm?: { __typename?: 'HelmSpec', version?: string | null } | null } | null, addonVersion?: { __typename?: 'AddonVersion', blocking?: boolean | null, version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null }; export type RuntimeServiceDetailsFragment = { __typename?: 'RuntimeService', id: string, name: string, version: string, addon?: { __typename?: 'RuntimeAddon', icon?: string | null, releaseUrl?: string | null, readme?: string | null, versions?: Array<{ __typename?: 'AddonVersion', version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null> | null } | null, addonVersion?: { __typename?: 'AddonVersion', blocking?: boolean | null, version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null }; @@ -8856,7 +8860,7 @@ export type RuntimeServicesQueryVariables = Exact<{ }>; -export type RuntimeServicesQuery = { __typename?: 'RootQueryType', cluster?: { __typename?: 'Cluster', id: string, name: string, currentVersion?: string | null, version?: string | null, runtimeServices?: Array<{ __typename?: 'RuntimeService', id: string, name: string, version: string, addon?: { __typename?: 'RuntimeAddon', icon?: string | null, versions?: Array<{ __typename?: 'AddonVersion', version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null> | null } | null, service?: { __typename?: 'ServiceDeployment', git?: { __typename?: 'GitRef', ref: string, folder: string } | null, repository?: { __typename?: 'GitRepository', httpsPath?: string | null, urlFormat?: string | null } | null, helm?: { __typename?: 'HelmSpec', version?: string | null } | null } | null, addonVersion?: { __typename?: 'AddonVersion', blocking?: boolean | null, version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null } | null> | null, apiDeprecations?: Array<{ __typename?: 'ApiDeprecation', availableIn?: string | null, blocking?: boolean | null, deprecatedIn?: string | null, removedIn?: string | null, replacement?: string | null, component?: { __typename?: 'ServiceComponent', group?: string | null, version?: string | null, kind: string, name: string, namespace?: string | null, service?: { __typename?: 'ServiceDeployment', git?: { __typename?: 'GitRef', ref: string, folder: string } | null, repository?: { __typename?: 'GitRepository', httpsPath?: string | null, urlFormat?: string | null } | null } | null } | null } | null> | null } | null }; +export type RuntimeServicesQuery = { __typename?: 'RootQueryType', cluster?: { __typename?: 'Cluster', id: string, name: string, currentVersion?: string | null, version?: string | null, runtimeServices?: Array<{ __typename?: 'RuntimeService', id: string, name: string, version: string, addon?: { __typename?: 'RuntimeAddon', icon?: string | null, versions?: Array<{ __typename?: 'AddonVersion', version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null> | null } | null, service?: { __typename?: 'ServiceDeployment', git?: { __typename?: 'GitRef', ref: string, folder: string } | null, repository?: { __typename?: 'GitRepository', httpsPath?: string | null, urlFormat?: string | null } | null, helm?: { __typename?: 'HelmSpec', version?: string | null } | null } | null, addonVersion?: { __typename?: 'AddonVersion', blocking?: boolean | null, version?: string | null, kube?: Array | null, chartVersion?: string | null, incompatibilities?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null, requirements?: Array<{ __typename?: 'VersionReference', version: string, name: string } | null> | null } | null } | null> | null, apiDeprecations?: Array<{ __typename?: 'ApiDeprecation', availableIn?: string | null, blocking?: boolean | null, deprecatedIn?: string | null, removedIn?: string | null, replacement?: string | null, component?: { __typename?: 'ServiceComponent', group?: string | null, version?: string | null, kind: string, name: string, namespace?: string | null, service?: { __typename?: 'ServiceDeployment', git?: { __typename?: 'GitRef', ref: string, folder: string } | null, repository?: { __typename?: 'GitRepository', httpsPath?: string | null, urlFormat?: string | null } | null } | null } | null } | null> | null, upgradeInsights?: Array<{ __typename?: 'UpgradeInsight', id: string, name: string, description?: string | null, refreshedAt?: string | null, transitionedAt?: string | null, version?: string | null, status?: UpgradeInsightStatus | null, details?: Array<{ __typename?: 'UpgradeInsightDetail', id: string, removedIn?: string | null, replacedIn?: string | null, replacement?: string | null, status?: UpgradeInsightStatus | null, used?: string | null } | null> | null } | null> | null } | null }; export type RuntimeServiceQueryVariables = Exact<{ id: Scalars['ID']['input']; @@ -10781,6 +10785,30 @@ export const PageInfoFragmentDoc = gql` startCursor } `; +export const UpgradeInsightDetailFragmentDoc = gql` + fragment UpgradeInsightDetail on UpgradeInsightDetail { + id + removedIn + replacedIn + replacement + status + used +} + `; +export const UpgradeInsightFragmentDoc = gql` + fragment UpgradeInsight on UpgradeInsight { + id + name + description + details { + ...UpgradeInsightDetail + } + refreshedAt + transitionedAt + version + status +} + ${UpgradeInsightDetailFragmentDoc}`; export const AddonVersionFragmentDoc = gql` fragment AddonVersion on AddonVersion { version @@ -14709,10 +14737,14 @@ export const RuntimeServicesDocument = gql` apiDeprecations { ...ApiDeprecation } + upgradeInsights { + ...UpgradeInsight + } } } ${RuntimeServiceFragmentDoc} -${ApiDeprecationFragmentDoc}`; +${ApiDeprecationFragmentDoc} +${UpgradeInsightFragmentDoc}`; /** * __useRuntimeServicesQuery__ @@ -22241,6 +22273,8 @@ export const namedOperations = { Taint: 'Taint', NodePool: 'NodePool', ApiDeprecation: 'ApiDeprecation', + UpgradeInsight: 'UpgradeInsight', + UpgradeInsightDetail: 'UpgradeInsightDetail', RuntimeService: 'RuntimeService', RuntimeServiceDetails: 'RuntimeServiceDetails', AddonVersion: 'AddonVersion', diff --git a/assets/src/graph/cdClusters.graphql b/assets/src/graph/cdClusters.graphql index d11fea65ce..a4b6aefda6 100644 --- a/assets/src/graph/cdClusters.graphql +++ b/assets/src/graph/cdClusters.graphql @@ -71,6 +71,28 @@ fragment ApiDeprecation on ApiDeprecation { replacement } +fragment UpgradeInsight on UpgradeInsight { + id + name + description + details { + ...UpgradeInsightDetail + } + refreshedAt + transitionedAt + version + status +} + +fragment UpgradeInsightDetail on UpgradeInsightDetail { + id + removedIn + replacedIn + replacement + status + used +} + fragment RuntimeService on RuntimeService { id name @@ -423,6 +445,9 @@ query RuntimeServices( apiDeprecations { ...ApiDeprecation } + upgradeInsights { + ...UpgradeInsight + } } } diff --git a/assets/yarn.lock b/assets/yarn.lock index a267302459..df5311c002 100644 --- a/assets/yarn.lock +++ b/assets/yarn.lock @@ -3719,7 +3719,7 @@ __metadata: languageName: node linkType: hard -"@internationalized/string@npm:^3.2.0, @internationalized/string@npm:^3.2.3": +"@internationalized/string@npm:^3.2.3": version: 3.2.3 resolution: "@internationalized/string@npm:3.2.3" dependencies: @@ -4274,9 +4274,9 @@ __metadata: languageName: node linkType: hard -"@pluralsh/design-system@npm:3.69.1": - version: 3.69.1 - resolution: "@pluralsh/design-system@npm:3.69.1" +"@pluralsh/design-system@npm:3.69.2": + version: 3.69.2 + resolution: "@pluralsh/design-system@npm:3.69.2" dependencies: "@floating-ui/react-dom-interactions": 0.13.3 "@loomhq/loom-embed": 1.5.0 @@ -4284,6 +4284,7 @@ __metadata: "@monaco-editor/react": 4.6.0 "@radix-ui/react-accordion": 1.2.0 "@radix-ui/react-dialog": 1.1.1 + "@radix-ui/react-focus-scope": 1.1.0 "@react-aria/utils": 3.23.0 "@react-hooks-library/core": 0.6.0 "@react-spring/web": 9.7.3 @@ -4303,11 +4304,11 @@ __metadata: lodash-es: 4.17.21 moment: 2.29.4 react-animate-height: 3.2.3 - react-aria: 3.31.1 + react-aria: 3.34.3 react-embed: 3.7.0 react-markdown: 9.0.1 react-merge-refs: 2.1.1 - react-stately: 3.29.1 + react-stately: 3.32.2 react-use-measure: 2.1.1 rehype-raw: 7.0.0 remark-gfm: 4.0.0 @@ -4325,7 +4326,7 @@ __metadata: react-dom: ">=18.3.1" react-transition-group: ">=4.4.5" styled-components: ">=5.3.11" - checksum: 37d79ffa82ca23d917b8c6cee590dbc3a6148e32376839643f6c242e66fad0c51f98dd8d4142c9fff055b844be4b99e51f8fc512aeefc97222fd4e2ffe8f9554 + checksum: db719512c94ca3c2b89b4ad5a7d707a7f2195fa4f33f1346e45e4c7ad8f7e1cbb4ac34404bfd1e2f271efcf09eeb0a87366d998ff348c061a0df6a0a3d22ec9e languageName: node linkType: hard @@ -5033,7 +5034,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/breadcrumbs@npm:^3.5.9": +"@react-aria/breadcrumbs@npm:^3.5.16": version: 3.5.16 resolution: "@react-aria/breadcrumbs@npm:3.5.16" dependencies: @@ -5049,7 +5050,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/button@npm:^3.9.1": +"@react-aria/button@npm:^3.9.8": version: 3.9.8 resolution: "@react-aria/button@npm:3.9.8" dependencies: @@ -5066,7 +5067,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/calendar@npm:^3.5.4": +"@react-aria/calendar@npm:^3.5.11": version: 3.5.11 resolution: "@react-aria/calendar@npm:3.5.11" dependencies: @@ -5087,7 +5088,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/checkbox@npm:^3.13.0": +"@react-aria/checkbox@npm:^3.14.6": version: 3.14.6 resolution: "@react-aria/checkbox@npm:3.14.6" dependencies: @@ -5108,7 +5109,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/combobox@npm:^3.8.2": +"@react-aria/combobox@npm:^3.10.3": version: 3.10.3 resolution: "@react-aria/combobox@npm:3.10.3" dependencies: @@ -5134,7 +5135,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/datepicker@npm:^3.9.1": +"@react-aria/datepicker@npm:^3.11.2": version: 3.11.2 resolution: "@react-aria/datepicker@npm:3.11.2" dependencies: @@ -5163,7 +5164,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/dialog@npm:^3.5.10": +"@react-aria/dialog@npm:^3.5.17": version: 3.5.17 resolution: "@react-aria/dialog@npm:3.5.17" dependencies: @@ -5180,7 +5181,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/dnd@npm:^3.5.1": +"@react-aria/dnd@npm:^3.7.2": version: 3.7.2 resolution: "@react-aria/dnd@npm:3.7.2" dependencies: @@ -5201,7 +5202,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/focus@npm:^3.16.0, @react-aria/focus@npm:^3.18.2": +"@react-aria/focus@npm:^3.18.2": version: 3.18.2 resolution: "@react-aria/focus@npm:3.18.2" dependencies: @@ -5255,7 +5256,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/gridlist@npm:^3.7.3, @react-aria/gridlist@npm:^3.9.3": +"@react-aria/gridlist@npm:^3.9.3": version: 3.9.3 resolution: "@react-aria/gridlist@npm:3.9.3" dependencies: @@ -5277,7 +5278,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/i18n@npm:^3.10.0, @react-aria/i18n@npm:^3.12.2": +"@react-aria/i18n@npm:^3.12.2": version: 3.12.2 resolution: "@react-aria/i18n@npm:3.12.2" dependencies: @@ -5295,7 +5296,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/interactions@npm:^3.20.1, @react-aria/interactions@npm:^3.22.2": +"@react-aria/interactions@npm:^3.22.2": version: 3.22.2 resolution: "@react-aria/interactions@npm:3.22.2" dependencies: @@ -5309,7 +5310,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/label@npm:^3.7.11, @react-aria/label@npm:^3.7.4": +"@react-aria/label@npm:^3.7.11": version: 3.7.11 resolution: "@react-aria/label@npm:3.7.11" dependencies: @@ -5322,7 +5323,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/link@npm:^3.6.3, @react-aria/link@npm:^3.7.4": +"@react-aria/link@npm:^3.7.4": version: 3.7.4 resolution: "@react-aria/link@npm:3.7.4" dependencies: @@ -5338,7 +5339,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/listbox@npm:^3.11.3, @react-aria/listbox@npm:^3.13.3": +"@react-aria/listbox@npm:^3.13.3": version: 3.13.3 resolution: "@react-aria/listbox@npm:3.13.3" dependencies: @@ -5367,7 +5368,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/menu@npm:^3.12.0, @react-aria/menu@npm:^3.15.3": +"@react-aria/menu@npm:^3.15.3": version: 3.15.3 resolution: "@react-aria/menu@npm:3.15.3" dependencies: @@ -5391,7 +5392,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/meter@npm:^3.4.9": +"@react-aria/meter@npm:^3.4.16": version: 3.4.16 resolution: "@react-aria/meter@npm:3.4.16" dependencies: @@ -5405,7 +5406,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/numberfield@npm:^3.10.2": +"@react-aria/numberfield@npm:^3.11.6": version: 3.11.6 resolution: "@react-aria/numberfield@npm:3.11.6" dependencies: @@ -5427,7 +5428,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/overlays@npm:^3.20.0, @react-aria/overlays@npm:^3.23.2": +"@react-aria/overlays@npm:^3.23.2": version: 3.23.2 resolution: "@react-aria/overlays@npm:3.23.2" dependencies: @@ -5449,7 +5450,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/progress@npm:^3.4.16, @react-aria/progress@npm:^3.4.9": +"@react-aria/progress@npm:^3.4.16": version: 3.4.16 resolution: "@react-aria/progress@npm:3.4.16" dependencies: @@ -5465,7 +5466,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/radio@npm:^3.10.0": +"@react-aria/radio@npm:^3.10.7": version: 3.10.7 resolution: "@react-aria/radio@npm:3.10.7" dependencies: @@ -5485,7 +5486,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/searchfield@npm:^3.7.1": +"@react-aria/searchfield@npm:^3.7.8": version: 3.7.8 resolution: "@react-aria/searchfield@npm:3.7.8" dependencies: @@ -5503,7 +5504,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/select@npm:^3.14.1": +"@react-aria/select@npm:^3.14.9": version: 3.14.9 resolution: "@react-aria/select@npm:3.14.9" dependencies: @@ -5528,7 +5529,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/selection@npm:^3.17.3, @react-aria/selection@npm:^3.19.3": +"@react-aria/selection@npm:^3.19.3": version: 3.19.3 resolution: "@react-aria/selection@npm:3.19.3" dependencies: @@ -5546,7 +5547,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/separator@npm:^3.3.9": +"@react-aria/separator@npm:^3.4.2": version: 3.4.2 resolution: "@react-aria/separator@npm:3.4.2" dependencies: @@ -5559,7 +5560,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/slider@npm:^3.7.4": +"@react-aria/slider@npm:^3.7.11": version: 3.7.11 resolution: "@react-aria/slider@npm:3.7.11" dependencies: @@ -5606,7 +5607,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/switch@npm:^3.6.0": +"@react-aria/switch@npm:^3.6.7": version: 3.6.7 resolution: "@react-aria/switch@npm:3.6.7" dependencies: @@ -5621,7 +5622,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/table@npm:^3.13.3": +"@react-aria/table@npm:^3.15.3": version: 3.15.3 resolution: "@react-aria/table@npm:3.15.3" dependencies: @@ -5647,7 +5648,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/tabs@npm:^3.8.3": +"@react-aria/tabs@npm:^3.9.5": version: 3.9.5 resolution: "@react-aria/tabs@npm:3.9.5" dependencies: @@ -5666,7 +5667,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/tag@npm:^3.3.1": +"@react-aria/tag@npm:^3.4.5": version: 3.4.5 resolution: "@react-aria/tag@npm:3.4.5" dependencies: @@ -5687,7 +5688,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/textfield@npm:^3.14.1, @react-aria/textfield@npm:^3.14.8": +"@react-aria/textfield@npm:^3.14.8": version: 3.14.8 resolution: "@react-aria/textfield@npm:3.14.8" dependencies: @@ -5723,7 +5724,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/tooltip@npm:^3.7.0": +"@react-aria/tooltip@npm:^3.7.7": version: 3.7.7 resolution: "@react-aria/tooltip@npm:3.7.7" dependencies: @@ -5755,7 +5756,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/utils@npm:^3.23.0, @react-aria/utils@npm:^3.25.2": +"@react-aria/utils@npm:^3.25.2": version: 3.25.2 resolution: "@react-aria/utils@npm:3.25.2" dependencies: @@ -5770,7 +5771,7 @@ __metadata: languageName: node linkType: hard -"@react-aria/visually-hidden@npm:^3.8.15, @react-aria/visually-hidden@npm:^3.8.8": +"@react-aria/visually-hidden@npm:^3.8.15": version: 3.8.15 resolution: "@react-aria/visually-hidden@npm:3.8.15" dependencies: @@ -5968,7 +5969,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/calendar@npm:^3.4.3, @react-stately/calendar@npm:^3.5.4": +"@react-stately/calendar@npm:^3.5.4": version: 3.5.4 resolution: "@react-stately/calendar@npm:3.5.4" dependencies: @@ -5983,7 +5984,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/checkbox@npm:^3.6.1, @react-stately/checkbox@npm:^3.6.8": +"@react-stately/checkbox@npm:^3.6.8": version: 3.6.8 resolution: "@react-stately/checkbox@npm:3.6.8" dependencies: @@ -5998,7 +5999,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/collections@npm:^3.10.4, @react-stately/collections@npm:^3.10.9": +"@react-stately/collections@npm:^3.10.9": version: 3.10.9 resolution: "@react-stately/collections@npm:3.10.9" dependencies: @@ -6010,7 +6011,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/combobox@npm:^3.8.1, @react-stately/combobox@npm:^3.9.2": +"@react-stately/combobox@npm:^3.9.2": version: 3.9.2 resolution: "@react-stately/combobox@npm:3.9.2" dependencies: @@ -6029,7 +6030,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/data@npm:^3.11.0": +"@react-stately/data@npm:^3.11.6": version: 3.11.6 resolution: "@react-stately/data@npm:3.11.6" dependencies: @@ -6041,7 +6042,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/datepicker@npm:^3.10.2, @react-stately/datepicker@npm:^3.9.1": +"@react-stately/datepicker@npm:^3.10.2": version: 3.10.2 resolution: "@react-stately/datepicker@npm:3.10.2" dependencies: @@ -6059,7 +6060,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/dnd@npm:^3.2.7, @react-stately/dnd@npm:^3.4.2": +"@react-stately/dnd@npm:^3.4.2": version: 3.4.2 resolution: "@react-stately/dnd@npm:3.4.2" dependencies: @@ -6081,7 +6082,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/form@npm:^3.0.0, @react-stately/form@npm:^3.0.5": +"@react-stately/form@npm:^3.0.5": version: 3.0.5 resolution: "@react-stately/form@npm:3.0.5" dependencies: @@ -6108,7 +6109,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/list@npm:^3.10.2, @react-stately/list@npm:^3.10.8": +"@react-stately/list@npm:^3.10.8": version: 3.10.8 resolution: "@react-stately/list@npm:3.10.8" dependencies: @@ -6123,7 +6124,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/menu@npm:^3.6.0, @react-stately/menu@npm:^3.8.2": +"@react-stately/menu@npm:^3.8.2": version: 3.8.2 resolution: "@react-stately/menu@npm:3.8.2" dependencies: @@ -6137,7 +6138,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/numberfield@npm:^3.8.0, @react-stately/numberfield@npm:^3.9.6": +"@react-stately/numberfield@npm:^3.9.6": version: 3.9.6 resolution: "@react-stately/numberfield@npm:3.9.6" dependencies: @@ -6152,7 +6153,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/overlays@npm:^3.6.10, @react-stately/overlays@npm:^3.6.4": +"@react-stately/overlays@npm:^3.6.10": version: 3.6.10 resolution: "@react-stately/overlays@npm:3.6.10" dependencies: @@ -6165,7 +6166,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/radio@npm:^3.10.1, @react-stately/radio@npm:^3.10.7": +"@react-stately/radio@npm:^3.10.7": version: 3.10.7 resolution: "@react-stately/radio@npm:3.10.7" dependencies: @@ -6180,7 +6181,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/searchfield@npm:^3.5.0, @react-stately/searchfield@npm:^3.5.6": +"@react-stately/searchfield@npm:^3.5.6": version: 3.5.6 resolution: "@react-stately/searchfield@npm:3.5.6" dependencies: @@ -6193,7 +6194,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/select@npm:^3.6.1, @react-stately/select@npm:^3.6.7": +"@react-stately/select@npm:^3.6.7": version: 3.6.7 resolution: "@react-stately/select@npm:3.6.7" dependencies: @@ -6209,7 +6210,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/selection@npm:^3.14.2, @react-stately/selection@npm:^3.16.2": +"@react-stately/selection@npm:^3.16.2": version: 3.16.2 resolution: "@react-stately/selection@npm:3.16.2" dependencies: @@ -6223,7 +6224,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/slider@npm:^3.5.0, @react-stately/slider@npm:^3.5.7": +"@react-stately/slider@npm:^3.5.7": version: 3.5.7 resolution: "@react-stately/slider@npm:3.5.7" dependencies: @@ -6237,7 +6238,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/table@npm:^3.11.4, @react-stately/table@npm:^3.12.2": +"@react-stately/table@npm:^3.12.2": version: 3.12.2 resolution: "@react-stately/table@npm:3.12.2" dependencies: @@ -6256,7 +6257,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/tabs@npm:^3.6.3, @react-stately/tabs@npm:^3.6.9": +"@react-stately/tabs@npm:^3.6.9": version: 3.6.9 resolution: "@react-stately/tabs@npm:3.6.9" dependencies: @@ -6270,7 +6271,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/toggle@npm:^3.7.0, @react-stately/toggle@npm:^3.7.7": +"@react-stately/toggle@npm:^3.7.7": version: 3.7.7 resolution: "@react-stately/toggle@npm:3.7.7" dependencies: @@ -6283,7 +6284,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/tooltip@npm:^3.4.12, @react-stately/tooltip@npm:^3.4.6": +"@react-stately/tooltip@npm:^3.4.12": version: 3.4.12 resolution: "@react-stately/tooltip@npm:3.4.12" dependencies: @@ -6296,7 +6297,7 @@ __metadata: languageName: node linkType: hard -"@react-stately/tree@npm:^3.7.5, @react-stately/tree@npm:^3.8.4": +"@react-stately/tree@npm:^3.8.4": version: 3.8.4 resolution: "@react-stately/tree@npm:3.8.4" dependencies: @@ -10113,7 +10114,7 @@ __metadata: "@nivo/pie": 0.87.0 "@nivo/radial-bar": 0.87.0 "@nivo/tooltip": 0.87.0 - "@pluralsh/design-system": 3.69.1 + "@pluralsh/design-system": 3.69.2 "@pluralsh/eslint-config-typescript": 2.5.150 "@pluralsh/stylelint-config": 2.0.10 "@react-hooks-library/core": 0.6.0 @@ -17665,51 +17666,51 @@ __metadata: languageName: node linkType: hard -"react-aria@npm:3.31.1": - version: 3.31.1 - resolution: "react-aria@npm:3.31.1" - dependencies: - "@internationalized/string": ^3.2.0 - "@react-aria/breadcrumbs": ^3.5.9 - "@react-aria/button": ^3.9.1 - "@react-aria/calendar": ^3.5.4 - "@react-aria/checkbox": ^3.13.0 - "@react-aria/combobox": ^3.8.2 - "@react-aria/datepicker": ^3.9.1 - "@react-aria/dialog": ^3.5.10 - "@react-aria/dnd": ^3.5.1 - "@react-aria/focus": ^3.16.0 - "@react-aria/gridlist": ^3.7.3 - "@react-aria/i18n": ^3.10.0 - "@react-aria/interactions": ^3.20.1 - "@react-aria/label": ^3.7.4 - "@react-aria/link": ^3.6.3 - "@react-aria/listbox": ^3.11.3 - "@react-aria/menu": ^3.12.0 - "@react-aria/meter": ^3.4.9 - "@react-aria/numberfield": ^3.10.2 - "@react-aria/overlays": ^3.20.0 - "@react-aria/progress": ^3.4.9 - "@react-aria/radio": ^3.10.0 - "@react-aria/searchfield": ^3.7.1 - "@react-aria/select": ^3.14.1 - "@react-aria/selection": ^3.17.3 - "@react-aria/separator": ^3.3.9 - "@react-aria/slider": ^3.7.4 - "@react-aria/ssr": ^3.9.1 - "@react-aria/switch": ^3.6.0 - "@react-aria/table": ^3.13.3 - "@react-aria/tabs": ^3.8.3 - "@react-aria/tag": ^3.3.1 - "@react-aria/textfield": ^3.14.1 - "@react-aria/tooltip": ^3.7.0 - "@react-aria/utils": ^3.23.0 - "@react-aria/visually-hidden": ^3.8.8 - "@react-types/shared": ^3.22.0 +"react-aria@npm:3.34.3": + version: 3.34.3 + resolution: "react-aria@npm:3.34.3" + dependencies: + "@internationalized/string": ^3.2.3 + "@react-aria/breadcrumbs": ^3.5.16 + "@react-aria/button": ^3.9.8 + "@react-aria/calendar": ^3.5.11 + "@react-aria/checkbox": ^3.14.6 + "@react-aria/combobox": ^3.10.3 + "@react-aria/datepicker": ^3.11.2 + "@react-aria/dialog": ^3.5.17 + "@react-aria/dnd": ^3.7.2 + "@react-aria/focus": ^3.18.2 + "@react-aria/gridlist": ^3.9.3 + "@react-aria/i18n": ^3.12.2 + "@react-aria/interactions": ^3.22.2 + "@react-aria/label": ^3.7.11 + "@react-aria/link": ^3.7.4 + "@react-aria/listbox": ^3.13.3 + "@react-aria/menu": ^3.15.3 + "@react-aria/meter": ^3.4.16 + "@react-aria/numberfield": ^3.11.6 + "@react-aria/overlays": ^3.23.2 + "@react-aria/progress": ^3.4.16 + "@react-aria/radio": ^3.10.7 + "@react-aria/searchfield": ^3.7.8 + "@react-aria/select": ^3.14.9 + "@react-aria/selection": ^3.19.3 + "@react-aria/separator": ^3.4.2 + "@react-aria/slider": ^3.7.11 + "@react-aria/ssr": ^3.9.5 + "@react-aria/switch": ^3.6.7 + "@react-aria/table": ^3.15.3 + "@react-aria/tabs": ^3.9.5 + "@react-aria/tag": ^3.4.5 + "@react-aria/textfield": ^3.14.8 + "@react-aria/tooltip": ^3.7.7 + "@react-aria/utils": ^3.25.2 + "@react-aria/visually-hidden": ^3.8.15 + "@react-types/shared": ^3.24.1 peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - checksum: cc884215ce26921382760f2e436289ecd13cf1716df29390d81a7e44bb80c8e45771806a264b31d7e4f7d58184ccac6d9777d028b669c519be96df7844a32324 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + checksum: 796769d4d5bd7070e3c603d434b3b959a5c7c7c724fff9c589cef1830521039eddb83e042eab14795be8c4a00c1ddcd2823cb8304496815d52bd3929fbb86172 languageName: node linkType: hard @@ -18133,36 +18134,36 @@ __metadata: languageName: node linkType: hard -"react-stately@npm:3.29.1": - version: 3.29.1 - resolution: "react-stately@npm:3.29.1" - dependencies: - "@react-stately/calendar": ^3.4.3 - "@react-stately/checkbox": ^3.6.1 - "@react-stately/collections": ^3.10.4 - "@react-stately/combobox": ^3.8.1 - "@react-stately/data": ^3.11.0 - "@react-stately/datepicker": ^3.9.1 - "@react-stately/dnd": ^3.2.7 - "@react-stately/form": ^3.0.0 - "@react-stately/list": ^3.10.2 - "@react-stately/menu": ^3.6.0 - "@react-stately/numberfield": ^3.8.0 - "@react-stately/overlays": ^3.6.4 - "@react-stately/radio": ^3.10.1 - "@react-stately/searchfield": ^3.5.0 - "@react-stately/select": ^3.6.1 - "@react-stately/selection": ^3.14.2 - "@react-stately/slider": ^3.5.0 - "@react-stately/table": ^3.11.4 - "@react-stately/tabs": ^3.6.3 - "@react-stately/toggle": ^3.7.0 - "@react-stately/tooltip": ^3.4.6 - "@react-stately/tree": ^3.7.5 - "@react-types/shared": ^3.22.0 +"react-stately@npm:3.32.2": + version: 3.32.2 + resolution: "react-stately@npm:3.32.2" + dependencies: + "@react-stately/calendar": ^3.5.4 + "@react-stately/checkbox": ^3.6.8 + "@react-stately/collections": ^3.10.9 + "@react-stately/combobox": ^3.9.2 + "@react-stately/data": ^3.11.6 + "@react-stately/datepicker": ^3.10.2 + "@react-stately/dnd": ^3.4.2 + "@react-stately/form": ^3.0.5 + "@react-stately/list": ^3.10.8 + "@react-stately/menu": ^3.8.2 + "@react-stately/numberfield": ^3.9.6 + "@react-stately/overlays": ^3.6.10 + "@react-stately/radio": ^3.10.7 + "@react-stately/searchfield": ^3.5.6 + "@react-stately/select": ^3.6.7 + "@react-stately/selection": ^3.16.2 + "@react-stately/slider": ^3.5.7 + "@react-stately/table": ^3.12.2 + "@react-stately/tabs": ^3.6.9 + "@react-stately/toggle": ^3.7.7 + "@react-stately/tooltip": ^3.4.12 + "@react-stately/tree": ^3.8.4 + "@react-types/shared": ^3.24.1 peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - checksum: 9dec21bb7a01c07bc3e1a10258b627f1e29ebc09719359c93f2bcb9f33f0e2ad0d3b7a99cedde5c9ed785fba1953e2ab44c92db7cddb1e67b714f80bcffec439 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + checksum: 60678fe543baa4c74f338317183c4ef6112353ed86c2d1f8c0f62df5fd3fa624af6cd8006d7e2f7f2c2ae60dfe86c7454f2ce6f5dff58cf8281abd64cd97bcea languageName: node linkType: hard