From 7c1ab964d047834a39f6e012bbd6dc7c956332e8 Mon Sep 17 00:00:00 2001 From: Artem Chernyshev Date: Thu, 23 Jan 2025 17:40:04 +0300 Subject: [PATCH] feat: display OMNI_ENDPOINT in the service account creation UI Fixes: https://github.com/siderolabs/omni/issues/858 Signed-off-by: Artem Chernyshev --- .conform.yaml | 4 +- .kres.yaml | 12 +- .license-header.go.txt | 2 +- client/api/omni/specs/virtual.pb.go | 74 ++++++-- client/api/omni/specs/virtual.proto | 4 + client/api/omni/specs/virtual_vtproto.pb.go | 173 ++++++++++++++++++ client/pkg/omni/resources/virtual/virtual.go | 1 + cmd/acompat/acompat.go | 2 +- cmd/integration-test/main.go | 2 +- .../pkg/clientconfig/clientconfig.go | 2 +- .../pkg/clientconfig/register_key_debug.go | 2 +- .../pkg/clientconfig/register_key_no_debug.go | 2 +- cmd/integration-test/pkg/root.go | 2 +- cmd/integration-test/pkg/tests/auth.go | 7 +- cmd/integration-test/pkg/tests/backup.go | 2 +- cmd/integration-test/pkg/tests/blocks.go | 2 +- cmd/integration-test/pkg/tests/cleanup.go | 2 +- cmd/integration-test/pkg/tests/cli.go | 2 +- cmd/integration-test/pkg/tests/cluster.go | 2 +- cmd/integration-test/pkg/tests/common.go | 2 +- .../pkg/tests/config_patch.go | 2 +- cmd/integration-test/pkg/tests/extensions.go | 2 +- cmd/integration-test/pkg/tests/image.go | 2 +- cmd/integration-test/pkg/tests/infra.go | 2 +- cmd/integration-test/pkg/tests/kubernetes.go | 2 +- .../pkg/tests/kubernetes_node_audit.go | 2 +- cmd/integration-test/pkg/tests/machines.go | 2 +- cmd/integration-test/pkg/tests/maintenance.go | 2 +- cmd/integration-test/pkg/tests/omniconfig.go | 2 +- .../pkg/tests/rolling_update.go | 2 +- cmd/integration-test/pkg/tests/siderolink.go | 2 +- cmd/integration-test/pkg/tests/stats.go | 2 +- cmd/integration-test/pkg/tests/talos.go | 2 +- cmd/integration-test/pkg/tests/template.go | 2 +- cmd/integration-test/pkg/tests/tests.go | 2 +- cmd/integration-test/pkg/tests/utils.go | 2 +- .../pkg/tests/workload_proxy.go | 2 +- cmd/omni/cmd/cmd.go | 2 +- cmd/omni/main.go | 2 +- cmd/omnictl/main.go | 2 +- frontend/eslint.config.js | 2 +- frontend/postcss.config.js | 2 +- frontend/src/App.vue | 2 +- frontend/src/AppUnavailable.vue | 2 +- frontend/src/api/grpc.ts | 2 +- frontend/src/api/omni/specs/virtual.pb.ts | 4 + frontend/src/api/options.ts | 2 +- frontend/src/api/resources.ts | 4 +- frontend/src/api/watch.ts | 2 +- frontend/src/components/SideBar/TSideBar.vue | 2 +- .../src/components/SideBar/TSideBarList.vue | 2 +- .../components/SideBar/TSideBarNodesLogs.vue | 2 +- frontend/src/components/TAlert.vue | 2 +- frontend/src/components/TBreadcrumbs.vue | 2 +- frontend/src/components/THeader/THeader.vue | 2 +- frontend/src/components/TModal.vue | 2 +- .../common/ActionsBox/TActionsBox.vue | 2 +- .../common/ActionsBox/TActionsBoxItem.vue | 4 +- .../common/Animation/TAnimation.vue | 2 +- .../common/Animation/TGroupAnimation.vue | 2 +- .../components/common/Button/IconButton.vue | 2 +- .../src/components/common/Button/TButton.vue | 2 +- .../components/common/Button/TButtonGroup.vue | 2 +- .../components/common/Charts/RadialBar.vue | 2 +- .../components/common/Checkbox/TCheckbox.vue | 2 +- .../common/CodeEditor/CodeEditor.vue | 2 +- .../components/common/Form/ArrayRenderer.vue | 2 +- .../common/Form/BooleanRenderer.vue | 2 +- .../components/common/Form/ContentWrapper.vue | 2 +- .../common/Form/DateControlRenderer.vue | 2 +- .../common/Form/DateTimeControlRenderer.vue | 2 +- .../common/Form/EnumOneOfRenderer.vue | 2 +- .../components/common/Form/EnumRenderer.vue | 2 +- .../common/Form/IntegerRenderer.vue | 2 +- .../src/components/common/Form/JsonForm.vue | 2 +- .../components/common/Form/NumberRenderer.vue | 2 +- .../components/common/Form/StringRenderer.vue | 2 +- .../common/Form/TimeControlRenderer.vue | 2 +- frontend/src/components/common/Icon/TIcon.vue | 2 +- .../common/InfoLabel/TInfoLabel.vue | 2 +- .../src/components/common/Labels/Code.vue | 59 ++++++ .../src/components/common/Labels/Labels.vue | 2 +- frontend/src/components/common/List/TList.vue | 2 +- .../src/components/common/List/TListItem.vue | 2 +- .../components/common/LogViewer/LogViewer.vue | 2 +- .../components/common/MenuItem/TMenuItem.vue | 2 +- .../common/Notification/TNotification.vue | 2 +- .../common/OngoingTasks/OngoingTasks.vue | 2 +- frontend/src/components/common/PageHeader.vue | 2 +- .../common/Pagination/TPagination.vue | 2 +- .../common/ProgressBar/ProgressBar.vue | 2 +- .../common/SelectList/TSelectList.vue | 2 +- .../src/components/common/Shell/TShell.vue | 2 +- .../SlideDownWrapper/TSlideDownWrapper.vue | 2 +- .../components/common/Spinner/TSpinner.vue | 4 +- .../src/components/common/Stats/StatsItem.vue | 2 +- .../src/components/common/Status/TStatus.vue | 2 +- .../common/Suspended/TSuspended.vue | 4 +- .../src/components/common/TInput/TInput.vue | 2 +- .../src/components/common/Tabs/TabButton.vue | 2 +- .../src/components/common/Tabs/TabList.vue | 4 +- .../src/components/common/Tabs/TabsHeader.vue | 4 +- frontend/src/components/common/Tag/Tag.vue | 2 +- .../src/components/common/Tooltip/Tooltip.vue | 2 +- .../components/common/UserInfo/UserInfo.vue | 2 +- .../src/components/common/Watch/Watch.vue | 2 +- frontend/src/components/icons/IconAWS.vue | 2 +- .../components/icons/IconActionHorizontal.vue | 2 +- .../components/icons/IconActionVertical.vue | 2 +- .../src/components/icons/IconArrowDown.vue | 2 +- .../src/components/icons/IconArrowLeft.vue | 2 +- .../src/components/icons/IconArrowRight.vue | 2 +- .../components/icons/IconArrowRightSquare.vue | 2 +- frontend/src/components/icons/IconArrowUp.vue | 2 +- .../src/components/icons/IconAttention.vue | 2 +- frontend/src/components/icons/IconBox.vue | 2 +- frontend/src/components/icons/IconChange.vue | 2 +- frontend/src/components/icons/IconCheck.vue | 2 +- .../components/icons/IconCheckInCircle.vue | 2 +- .../icons/IconCheckInCircleClassic.vue | 2 +- frontend/src/components/icons/IconClose.vue | 2 +- .../components/icons/IconCloudConnection.vue | 2 +- .../src/components/icons/IconClusters.vue | 2 +- .../src/components/icons/IconClustersBig.vue | 4 +- .../src/components/icons/IconComplete.vue | 4 +- frontend/src/components/icons/IconCopy.vue | 2 +- .../src/components/icons/IconDashboard.vue | 2 +- frontend/src/components/icons/IconDelete.vue | 2 +- frontend/src/components/icons/IconDot.vue | 2 +- .../src/components/icons/IconDropRight.vue | 2 +- frontend/src/components/icons/IconDropUp.vue | 2 +- .../src/components/icons/IconDropdown.vue | 2 +- frontend/src/components/icons/IconEdit.vue | 2 +- frontend/src/components/icons/IconError.vue | 2 +- .../src/components/icons/IconExtensions.vue | 2 +- .../components/icons/IconExtensionsToggle.vue | 2 +- .../src/components/icons/IconExternalLink.vue | 4 +- .../src/components/icons/IconFailAuth.vue | 4 +- frontend/src/components/icons/IconGCP.vue | 4 +- .../icons/IconHeaderDropdownLoading.vue | 2 +- .../src/components/icons/IconHeaderLogo.vue | 4 +- frontend/src/components/icons/IconHome.vue | 4 +- .../src/components/icons/IconInProgress.vue | 4 +- frontend/src/components/icons/IconInfo.vue | 2 +- frontend/src/components/icons/IconKey.vue | 4 +- .../src/components/icons/IconKubeConfig.vue | 2 +- .../src/components/icons/IconKubernetes.vue | 2 +- .../src/components/icons/IconLinkDown.vue | 4 +- frontend/src/components/icons/IconLoading.vue | 2 +- .../components/icons/IconLockClosedToggle.vue | 2 +- frontend/src/components/icons/IconLog.vue | 2 +- frontend/src/components/icons/IconLogo.vue | 4 +- .../components/icons/IconLongArrowDown.vue | 2 +- .../components/icons/IconLongArrowLeft.vue | 2 +- .../components/icons/IconLongArrowRight.vue | 2 +- .../src/components/icons/IconLongArrowTop.vue | 2 +- frontend/src/components/icons/IconMinus.vue | 2 +- .../src/components/icons/IconNoConnection.vue | 4 +- frontend/src/components/icons/IconNodes.vue | 2 +- .../src/components/icons/IconOngoingTasks.vue | 2 +- .../src/components/icons/IconOverview.vue | 2 +- frontend/src/components/icons/IconPin.vue | 2 +- frontend/src/components/icons/IconPlus.vue | 2 +- frontend/src/components/icons/IconPodes.vue | 2 +- .../src/components/icons/IconQuestion.vue | 4 +- frontend/src/components/icons/IconReboot.vue | 2 +- frontend/src/components/icons/IconRefresh.vue | 2 +- frontend/src/components/icons/IconReset.vue | 2 +- .../src/components/icons/IconRollback.vue | 4 +- frontend/src/components/icons/IconSearch.vue | 2 +- .../components/icons/IconServerNetwork.vue | 2 +- .../src/components/icons/IconSettings.vue | 2 +- .../components/icons/IconSettingsToggle.vue | 4 +- frontend/src/components/icons/IconSidero.vue | 4 +- .../components/icons/IconSideroMonochrome.vue | 4 +- .../src/components/icons/IconTalosConfig.vue | 2 +- frontend/src/components/icons/IconTask.vue | 2 +- .../src/components/icons/IconTerminal.vue | 4 +- frontend/src/components/icons/IconTime.vue | 2 +- frontend/src/components/icons/IconUnknown.vue | 4 +- frontend/src/components/icons/IconUnlink.vue | 2 +- .../icons/IconUpgradeEmptyState.vue | 4 +- frontend/src/components/icons/IconUpload.vue | 2 +- frontend/src/components/icons/IconWaiting.vue | 4 +- frontend/src/components/icons/IconWarning.vue | 2 +- .../src/components/icons/IconWarningClear.vue | 2 +- frontend/src/constants/index.ts | 2 +- frontend/src/context.ts | 2 +- frontend/src/fonts.css | 2 +- frontend/src/index.css | 2 +- frontend/src/main.ts | 2 +- frontend/src/methods/auth.ts | 2 +- frontend/src/methods/cluster.ts | 2 +- frontend/src/methods/features.ts | 2 +- frontend/src/methods/index.ts | 2 +- frontend/src/methods/key.ts | 2 +- frontend/src/methods/labels.ts | 2 +- frontend/src/methods/logs.ts | 2 +- frontend/src/methods/machine.ts | 2 +- frontend/src/methods/machineset.ts | 2 +- frontend/src/methods/node.ts | 2 +- frontend/src/methods/storage.ts | 2 +- frontend/src/methods/time.ts | 2 +- frontend/src/methods/title.ts | 2 +- frontend/src/methods/user.ts | 2 +- frontend/src/modal.ts | 2 +- frontend/src/notification.ts | 2 +- frontend/src/router/index.ts | 2 +- frontend/src/shims-vue.d.ts | 2 +- .../src/states/cluster-management/index.ts | 2 +- frontend/src/theme.ts | 2 +- frontend/src/vars/colors.ts | 2 +- .../src/views/cluster/Backups/Backups.vue | 2 +- .../src/views/cluster/Backups/BackupsList.vue | 2 +- .../ClusterMachines/ClusterMachine.vue | 2 +- .../ClusterMachines/ClusterMachinePhase.vue | 2 +- .../ClusterMachines/ClusterMachines.vue | 2 +- .../ClusterMachines/MachineRequest.vue | 2 +- .../cluster/ClusterMachines/MachineSet.vue | 2 +- .../ClusterMachines/MachineSetPhase.vue | 2 +- frontend/src/views/cluster/ClusterScoped.vue | 2 +- .../views/cluster/Config/ClusterPatches.vue | 2 +- .../src/views/cluster/Config/PatchEdit.vue | 2 +- frontend/src/views/cluster/Config/Patches.vue | 2 +- .../ExposedService/ExposedServiceSideBar.vue | 2 +- .../cluster/ManagedByTemplatesWarning.vue | 2 +- frontend/src/views/cluster/Manifest/Sync.vue | 2 +- .../src/views/cluster/Nodes/NodeConfig.vue | 2 +- .../src/views/cluster/Nodes/NodeDetails.vue | 2 +- .../cluster/Nodes/NodeDiagnosticWarnings.vue | 2 +- .../views/cluster/Nodes/NodeExtensions.vue | 2 +- frontend/src/views/cluster/Nodes/NodeLogs.vue | 2 +- .../src/views/cluster/Nodes/NodeMonitor.vue | 2 +- .../src/views/cluster/Nodes/NodeMounts.vue | 2 +- .../src/views/cluster/Nodes/NodeOverview.vue | 2 +- .../src/views/cluster/Nodes/NodePatches.vue | 2 +- .../views/cluster/Nodes/NodeServiceEvents.vue | 2 +- .../src/views/cluster/Nodes/NodesHeader.vue | 2 +- .../src/views/cluster/Nodes/NodesList.vue | 2 +- .../Nodes/components/NodeConditions.vue | 2 +- .../Nodes/components/NodeDetailsTabs.vue | 2 +- .../cluster/Nodes/components/NodesItem.vue | 2 +- .../Nodes/components/NodesMonitorChart.vue | 2 +- .../src/views/cluster/Overview/Overview.vue | 2 +- .../OverviewCircleChart.vue | 2 +- .../OverviewCircleChartItem.vue | 2 +- .../Overview/components/OverviewContent.vue | 2 +- .../OverviewRightPanel/OverviewRightPanel.vue | 2 +- .../OverviewRightPanelCondition.vue | 2 +- .../OverviewRightPanelItem.vue | 2 +- frontend/src/views/cluster/Pods/TPods.vue | 2 +- .../cluster/Pods/components/TPodsItem.vue | 2 +- .../cluster/Pods/components/TPodsList.vue | 2 +- frontend/src/views/cluster/SideBar.vue | 2 +- frontend/src/views/cluster/SideBarNode.vue | 2 +- frontend/src/views/common/Forbidden.vue | 4 +- frontend/src/views/common/NodeContextMenu.vue | 2 +- frontend/src/views/common/PageNotFound.vue | 2 +- frontend/src/views/omni/Auth/Authenticate.vue | 2 +- frontend/src/views/omni/Auth/OIDC.vue | 2 +- .../views/omni/Clusters/ClusterBottomMenu.vue | 2 +- .../Clusters/ClusterEtcdBackupCheckbox.vue | 2 +- .../src/views/omni/Clusters/ClusterItem.vue | 2 +- .../src/views/omni/Clusters/ClusterMenu.vue | 2 +- .../src/views/omni/Clusters/ClusterStatus.vue | 2 +- .../ClusterWorkloadProxyingCheckbox.vue | 2 +- frontend/src/views/omni/Clusters/Clusters.vue | 2 +- .../EmbeddedDiscoveryServiceCheckbox.vue | 2 +- .../Clusters/Management/ClusterCreate.vue | 2 +- .../Management/ClusterMachineItem.vue | 2 +- .../omni/Clusters/Management/ClusterScale.vue | 2 +- .../Clusters/Management/MachineSetConfig.vue | 2 +- .../Clusters/Management/MachineSetLabel.vue | 4 +- .../Clusters/Management/MachineSetPicker.vue | 2 +- .../omni/Clusters/Management/MachineSets.vue | 4 +- .../omni/Extensions/ExtensionsPicker.vue | 2 +- .../src/views/omni/ItemLabels/ItemLabel.vue | 2 +- .../src/views/omni/ItemLabels/ItemLabels.vue | 2 +- .../src/views/omni/ItemLabels/LabelsInput.vue | 2 +- .../omni/MachineClasses/MachineClass.vue | 2 +- .../omni/MachineClasses/MachineClasses.vue | 4 +- .../MachineClasses/MachineClassesList.vue | 2 +- .../omni/MachineClasses/MachineMatchItem.vue | 2 +- .../omni/MachineClasses/MachineTemplate.vue | 2 +- .../omni/MachineClasses/ProviderConfig.vue | 2 +- frontend/src/views/omni/Machines/Machine.vue | 2 +- .../src/views/omni/Machines/MachineItem.vue | 2 +- .../src/views/omni/Machines/MachineLogs.vue | 2 +- .../omni/Machines/MachineLogsContainer.vue | 2 +- .../views/omni/Machines/MachinePatches.vue | 2 +- .../src/views/omni/Machines/MachineTabs.vue | 2 +- frontend/src/views/omni/Machines/Machines.vue | 2 +- .../views/omni/Machines/MachinesPending.vue | 2 +- .../src/views/omni/Modals/CloseButton.vue | 4 +- .../src/views/omni/Modals/ClusterDestroy.vue | 2 +- .../views/omni/Modals/ConfigPatchDestroy.vue | 2 +- .../src/views/omni/Modals/ConfigPatchEdit.vue | 2 +- .../views/omni/Modals/CreateExtensions.vue | 2 +- .../omni/Modals/DownloadInstallationMedia.vue | 2 +- .../src/views/omni/Modals/DownloadOmnictl.vue | 2 +- .../omni/Modals/DownloadSupportBundle.vue | 2 +- .../views/omni/Modals/DownloadTalosctl.vue | 2 +- .../src/views/omni/Modals/MachineAccept.vue | 2 +- .../views/omni/Modals/MachineClassDestroy.vue | 2 +- .../src/views/omni/Modals/MachineReject.vue | 2 +- .../src/views/omni/Modals/MachineRemove.vue | 2 +- .../omni/Modals/MachineSetConfigEdit.vue | 2 +- .../views/omni/Modals/MachineSetDestroy.vue | 2 +- .../omni/Modals/MachineTemplateExtensions.vue | 2 +- .../views/omni/Modals/MaintenanceUpdate.vue | 2 +- .../src/views/omni/Modals/NodeDestroy.vue | 2 +- .../views/omni/Modals/NodeDestroyCancel.vue | 2 +- frontend/src/views/omni/Modals/NodeReboot.vue | 2 +- .../src/views/omni/Modals/NodeShutdown.vue | 2 +- frontend/src/views/omni/Modals/RoleEdit.vue | 2 +- .../omni/Modals/ServiceAccountCreate.vue | 41 +---- .../views/omni/Modals/ServiceAccountRenew.vue | 41 +---- .../views/omni/Modals/UntaintSingleNode.vue | 2 +- .../views/omni/Modals/UpdateExtensions.vue | 2 +- .../views/omni/Modals/UpdateKubernetes.vue | 2 +- .../src/views/omni/Modals/UpdateTalos.vue | 2 +- frontend/src/views/omni/Modals/UserCreate.vue | 2 +- .../src/views/omni/Modals/UserDestroy.vue | 2 +- .../Modals/components/ServiceAccountKey.vue | 44 +++++ frontend/src/views/omni/Overview/Overview.vue | 2 +- .../src/views/omni/Settings/BackupStorage.vue | 2 +- frontend/src/views/omni/Settings/Settings.vue | 2 +- frontend/src/views/omni/SideBar.vue | 2 +- .../views/omni/Users/ServiceAccountItem.vue | 2 +- .../src/views/omni/Users/ServiceAccounts.vue | 2 +- frontend/src/views/omni/Users/UserItem.vue | 2 +- frontend/src/views/omni/Users/Users.vue | 2 +- frontend/tailwind.config.ts | 2 +- frontend/test/setup.ts | 2 +- frontend/test/unit/clusterManageState.spec.ts | 2 +- frontend/test/unit/watch.spec.ts | 2 +- frontend/vite.config.ts | 2 +- hack/compose/docker-compose.yml | 2 +- hack/dev-server.sh | 2 +- hack/generate-certs.example.yml | 2 +- hack/generate-certs/main.go | 2 +- hack/test/freeze-a-vm.sh | 2 +- hack/test/integration.sh | 2 +- hack/test/restart-a-vm.sh | 2 +- hack/test/wipe-a-vm.sh | 2 +- hack/zstd-dict/main.go | 2 +- internal/backend/debug/debug.go | 2 +- internal/backend/debug/debug_disabled.go | 2 +- internal/backend/debug/debug_enabled.go | 2 +- internal/backend/debug/graphs.go | 2 +- internal/backend/discovery/client.go | 2 +- internal/backend/discovery/discovery.go | 2 +- internal/backend/dns/service.go | 2 +- internal/backend/dns/service_test.go | 2 +- internal/backend/extensions/extensions.go | 2 +- .../backend/extensions/extensions_test.go | 2 +- internal/backend/factory/export_test.go | 2 +- internal/backend/factory/factory.go | 2 +- internal/backend/factory/factory_test.go | 2 +- internal/backend/grpc/auth.go | 2 +- internal/backend/grpc/auth_debug.go | 2 +- internal/backend/grpc/auth_no_debug.go | 2 +- internal/backend/grpc/configs_test.go | 2 +- internal/backend/grpc/cosi.go | 2 +- internal/backend/grpc/export_test.go | 2 +- internal/backend/grpc/grpc.go | 2 +- internal/backend/grpc/grpc_test.go | 2 +- internal/backend/grpc/management.go | 2 +- internal/backend/grpc/oidc.go | 2 +- internal/backend/grpc/resource.go | 2 +- internal/backend/grpc/router/omni_backend.go | 2 +- internal/backend/grpc/router/resolve.go | 2 +- internal/backend/grpc/router/router.go | 2 +- internal/backend/grpc/router/server.go | 2 +- internal/backend/grpc/router/talos_backend.go | 2 +- .../backend/grpc/router/talos_backend_test.go | 2 +- internal/backend/grpc/schematics.go | 2 +- internal/backend/grpc/schematics_test.go | 2 +- internal/backend/grpc/serviceaccount.go | 2 +- internal/backend/grpc/support.go | 2 +- internal/backend/grpc/validate.go | 2 +- internal/backend/health/health.go | 2 +- internal/backend/imagefactory/client.go | 2 +- internal/backend/imagefactory/imagefactory.go | 2 +- internal/backend/k8sproxy/export_test.go | 2 +- internal/backend/k8sproxy/jwt.go | 2 +- internal/backend/k8sproxy/jwt_test.go | 2 +- internal/backend/k8sproxy/k8sproxy.go | 2 +- internal/backend/k8sproxy/middleware.go | 2 +- internal/backend/k8sproxy/middleware_test.go | 2 +- internal/backend/k8sproxy/multiplex.go | 2 +- internal/backend/k8sproxy/proxy.go | 2 +- internal/backend/logging/handler.go | 2 +- internal/backend/logging/logging.go | 2 +- internal/backend/monitoring/monitoring.go | 2 +- internal/backend/oidc/external/external.go | 2 +- .../backend/oidc/internal/client/client.go | 2 +- .../oidc/internal/models/auth_request.go | 2 +- .../backend/oidc/internal/models/challenge.go | 2 +- .../backend/oidc/internal/models/models.go | 2 +- .../backend/oidc/internal/models/token.go | 2 +- .../storage/authrequest/authrequest.go | 2 +- .../internal/storage/authrequest/storage.go | 2 +- .../storage/authrequest/storage_test.go | 2 +- .../oidc/internal/storage/keys/keys.go | 2 +- .../oidc/internal/storage/keys/storage.go | 2 +- .../internal/storage/keys/storage_test.go | 2 +- .../backend/oidc/internal/storage/storage.go | 2 +- .../oidc/internal/storage/token/mock_test.go | 2 +- .../oidc/internal/storage/token/storage.go | 2 +- .../internal/storage/token/storage_test.go | 2 +- .../oidc/internal/storage/token/token.go | 2 +- internal/backend/oidc/oidc.go | 2 +- internal/backend/powerstage/watcher.go | 2 +- internal/backend/proxy_server.go | 2 +- .../backend/resourcelogger/resourcelogger.go | 2 +- .../resourcelogger/resourcelogger_test.go | 2 +- internal/backend/runtime/cosi/cosi.go | 2 +- internal/backend/runtime/export_test.go | 2 +- internal/backend/runtime/helpers/helpers.go | 2 +- .../backend/runtime/keyprovider/storage.go | 2 +- .../backend/runtime/kubernetes/cleanup.go | 2 +- internal/backend/runtime/kubernetes/client.go | 2 +- .../backend/runtime/kubernetes/kubernetes.go | 2 +- .../runtime/kubernetes/kubernetes_test.go | 2 +- internal/backend/runtime/omni/audit/audit.go | 2 +- .../backend/runtime/omni/audit/audit_test.go | 2 +- internal/backend/runtime/omni/audit/data.go | 2 +- .../backend/runtime/omni/audit/export_test.go | 2 +- .../backend/runtime/omni/audit/hooks/hooks.go | 2 +- .../backend/runtime/omni/audit/log_file.go | 2 +- .../runtime/omni/audit/log_file_test.go | 2 +- internal/backend/runtime/omni/audit/state.go | 2 +- internal/backend/runtime/omni/audit/walk.go | 2 +- .../backend/runtime/omni/audit/walk_test.go | 2 +- .../runtime/omni/controllers/controllers.go | 2 +- .../omni/controllers/helpers/handler.go | 2 +- .../omni/controllers/helpers/helpers.go | 2 +- .../omni/controllers/helpers/helpers_test.go | 2 +- .../omni/controllers/omni/backup_data.go | 2 +- .../controllers/omni/cert_refresh_tick.go | 2 +- .../omni/cert_refresh_tick_test.go | 2 +- .../runtime/omni/controllers/omni/cluster.go | 2 +- .../omni/cluster_bootstrap_status.go | 2 +- .../omni/cluster_bootstrap_status_test.go | 2 +- .../omni/cluster_config_version.go | 2 +- .../omni/cluster_destroy_status.go | 2 +- .../controllers/omni/cluster_diagnostics.go | 2 +- .../omni/controllers/omni/cluster_endpoint.go | 2 +- .../controllers/omni/cluster_endpoint_test.go | 2 +- .../omni/cluster_kubernetes_nodes.go | 2 +- .../omni/cluster_kubernetes_nodes_test.go | 2 +- .../controllers/omni/cluster_loadbalancer.go | 2 +- .../omni/cluster_loadbalancer_test.go | 2 +- .../omni/controllers/omni/cluster_machine.go | 2 +- .../omni/cluster_machine_config.go | 2 +- .../omni/cluster_machine_config_status.go | 2 +- .../cluster_machine_config_status_test.go | 2 +- .../cluster_machine_config_strip_role_test.go | 2 +- .../omni/cluster_machine_config_test.go | 2 +- .../omni/cluster_machine_encryption.go | 2 +- .../omni/cluster_machine_encryption_key.go | 2 +- .../omni/cluster_machine_identity.go | 2 +- .../omni/cluster_machine_request_status.go | 2 +- .../cluster_machine_request_status_test.go | 2 +- .../omni/cluster_machine_status.go | 2 +- .../omni/cluster_machine_status_metrics.go | 2 +- .../omni/cluster_machine_status_test.go | 2 +- .../omni/cluster_machine_teardown.go | 2 +- .../omni/controllers/omni/cluster_status.go | 2 +- .../omni/cluster_status_metrics.go | 2 +- .../controllers/omni/cluster_status_test.go | 2 +- .../omni/controllers/omni/cluster_test.go | 2 +- .../omni/controllers/omni/cluster_uuid.go | 2 +- .../omni/cluster_workload_proxy.go | 2 +- .../omni/cluster_workload_proxy_status.go | 2 +- .../cluster_workload_proxy_status_test.go | 2 +- .../omni/cluster_workload_proxy_test.go | 2 +- .../controllers/omni/control_plane_status.go | 2 +- .../omni/discovery_service_config_patch.go | 2 +- .../discovery_service_config_patch_test.go | 2 +- .../omni/controllers/omni/etcd_backup.go | 2 +- .../omni/etcd_backup_encryption.go | 2 +- .../omni/etcd_backup_overall_status.go | 2 +- .../omni/controllers/omni/etcd_backup_test.go | 2 +- .../controllers/omni/etcdbackup/etcdbackup.go | 2 +- .../omni/etcdbackup/etcdbackup_test.go | 2 +- .../omni/etcdbackup/store/disabledstore.go | 2 +- .../omni/etcdbackup/store/filestore.go | 2 +- .../internal/s3middleware/ignoreheaders.go | 2 +- .../omni/etcdbackup/store/metrics.go | 2 +- .../omni/etcdbackup/store/s3store.go | 2 +- .../omni/etcdbackup/store/store.go | 2 +- .../omni/controllers/omni/export_test.go | 2 +- .../omni/controllers/omni/image/client.go | 2 +- .../omni/controllers/omni/image/image.go | 2 +- .../controllers/omni/image_pull_status.go | 2 +- .../omni/image_pull_status_test.go | 2 +- .../omni/controllers/omni/infra_machine.go | 2 +- .../controllers/omni/infra_machine_test.go | 2 +- .../omni/infra_provider_config_patch.go | 2 +- .../omni/infra_provider_config_patch_test.go | 2 +- .../controllers/omni/installation_media.go | 2 +- .../omni/internal/blocks/decrypt.go | 2 +- .../omni/internal/blocks/encrypt.go | 2 +- .../omni/internal/blocks/encrypt_test.go | 2 +- .../omni/internal/boards/boards.go | 2 +- .../omni/internal/configpatch/configpatch.go | 2 +- .../omni/internal/etcdbackup/crypt/crypt.go | 2 +- .../omni/internal/etcdbackup/crypt/decrypt.go | 2 +- .../omni/internal/etcdbackup/crypt/encrypt.go | 2 +- .../internal/etcdbackup/crypt/encrypt_test.go | 2 +- .../omni/internal/etcdbackup/etcdbackup.go | 2 +- .../internal/etcdbackup/fstore/export_test.go | 2 +- .../omni/internal/etcdbackup/fstore/fstore.go | 2 +- .../internal/etcdbackup/fstore/fstore_test.go | 2 +- .../internal/etcdbackup/fstore/fstore_unix.go | 2 +- .../etcdbackup/fstore/fstore_windows.go | 2 +- .../internal/etcdbackup/s3store/s3store.go | 2 +- .../omni/internal/kubernetes/kubernetes.go | 2 +- .../internal/kubernetes/kubernetes_test.go | 2 +- .../omni/internal/kubernetes/machinemap.go | 2 +- .../internal/kubernetes/machinemap_test.go | 2 +- .../omni/internal/kubernetes/patch.go | 2 +- .../omni/internal/kubernetes/upgrade.go | 2 +- .../omni/internal/kubernetes/upgrade_test.go | 2 +- .../omni/internal/kubernetes/versions.go | 2 +- .../omni/internal/kubernetes/versions_test.go | 2 +- .../internal/loadbalancer/loadbalancer.go | 2 +- .../omni/internal/loadbalancer/manager.go | 2 +- .../machineset/control_planes_handler.go | 2 +- .../machineset/control_planes_handler_test.go | 2 +- .../omni/internal/machineset/machineset.go | 2 +- .../internal/machineset/machineset_test.go | 2 +- .../omni/internal/machineset/operations.go | 2 +- .../internal/machineset/operations_test.go | 2 +- .../machineset/reconciliation_context.go | 2 +- .../machineset/reconciliation_context_test.go | 2 +- .../internal/machineset/status_handler.go | 2 +- .../machineset/status_handler_test.go | 2 +- .../machineset/tearing_down_handler.go | 2 +- .../internal/machineset/workers_handler.go | 2 +- .../machineset/workers_handler_test.go | 2 +- .../omni/internal/mappers/mappers.go | 2 +- .../omni/controllers/omni/internal/set/set.go | 2 +- .../omni/internal/talos/schematic.go | 2 +- .../omni/internal/talos/versions.go | 2 +- .../task/clustermachine/clustermachine.go | 2 +- .../internal/task/clustermachine/identity.go | 2 +- .../omni/internal/task/image/image.go | 2 +- .../omni/internal/task/image/pulltask.go | 2 +- .../omni/internal/task/image/status.go | 2 +- .../omni/internal/task/machine/helpers.go | 2 +- .../omni/internal/task/machine/machine.go | 2 +- .../omni/internal/task/machine/poll.go | 2 +- .../omni/internal/task/snapshot/snapshot.go | 2 +- .../omni/controllers/omni/key_pruner.go | 2 +- .../omni/controllers/omni/key_pruner_test.go | 2 +- .../omni/controllers/omni/kubeconfig.go | 2 +- .../omni/controllers/omni/kubeconfig_test.go | 2 +- .../controllers/omni/kubernetes_node_audit.go | 2 +- .../omni/kubernetes_node_audit_test.go | 2 +- .../controllers/omni/kubernetes_status.go | 2 +- .../omni/kubernetes_status_test.go | 2 +- .../kubernetes_upgrade_manifest_status.go | 2 +- .../omni/kubernetes_upgrade_status.go | 2 +- .../omni/controllers/omni/labels_extractor.go | 2 +- .../controllers/omni/labels_extractor_test.go | 2 +- .../omni/controllers/omni/loadbalancer.go | 2 +- .../controllers/omni/loadbalancer_test.go | 2 +- .../runtime/omni/controllers/omni/machine.go | 2 +- .../omni/controllers/omni/machine_cleanup.go | 2 +- .../controllers/omni/machine_cleanup_test.go | 2 +- .../omni/machine_config_gen_options.go | 2 +- .../controllers/omni/machine_extensions.go | 2 +- .../omni/machine_extensions_test.go | 2 +- .../controllers/omni/machine_labels_test.go | 2 +- .../controllers/omni/machine_provision.go | 2 +- .../omni/machine_provision_test.go | 2 +- .../omni/machine_request_cleanup.go | 2 +- .../controllers/omni/machine_request_link.go | 2 +- .../omni/machine_request_link_test.go | 2 +- .../omni/machine_request_set_status.go | 2 +- .../omni/machine_request_set_status_test.go | 2 +- .../omni/controllers/omni/machine_set.go | 2 +- .../omni/machine_set_destroy_status.go | 2 +- .../omni/machine_set_etcd_audit.go | 2 +- .../omni/machine_set_etcd_audit_test.go | 2 +- .../omni/controllers/omni/machine_set_node.go | 2 +- .../controllers/omni/machine_set_node_test.go | 2 +- .../controllers/omni/machine_set_status.go | 2 +- .../omni/machine_set_status_test.go | 2 +- .../omni/controllers/omni/machine_status.go | 2 +- .../controllers/omni/machine_status_link.go | 2 +- .../omni/machine_status_link_test.go | 2 +- .../omni/machine_status_metrics.go | 2 +- .../omni/machine_status_snapshot.go | 2 +- .../omni/machine_status_snapshot_test.go | 2 +- .../controllers/omni/machine_status_test.go | 2 +- .../omni/controllers/omni/machine_teardown.go | 2 +- .../omni/controllers/omni/machine_test.go | 2 +- .../runtime/omni/controllers/omni/omni.go | 2 +- .../omni/controllers/omni/omni_test.go | 2 +- .../omni/controllers/omni/ongoing_task.go | 2 +- .../omni/redacted_cluster_machine_config.go | 2 +- .../redacted_cluster_machine_config_test.go | 2 +- .../omni/controllers/omni/saml_assertion.go | 2 +- .../omni/schematic_configuration.go | 2 +- .../omni/schematic_configuration_test.go | 2 +- .../runtime/omni/controllers/omni/secrets.go | 2 +- .../omni/controllers/omni/secrets_test.go | 2 +- .../omni/controllers/omni/talos_extensions.go | 2 +- .../controllers/omni/talos_extensions_test.go | 2 +- .../omni/controllers/omni/talos_test.go | 2 +- .../controllers/omni/talos_upgrade_status.go | 2 +- .../omni/talos_upgrade_status_test.go | 2 +- .../omni/controllers/omni/talosconfig.go | 2 +- .../omni/controllers/omni/talosconfig_test.go | 2 +- .../runtime/omni/controllers/omni/versions.go | 2 +- .../omni/controllers/omni/versions_test.go | 2 +- internal/backend/runtime/omni/export_test.go | 2 +- .../backend/runtime/omni/external/state.go | 2 +- .../runtime/omni/external/state_test.go | 2 +- .../omni/infraprovider/infraprovider.go | 2 +- .../runtime/omni/infraprovider/state.go | 2 +- .../runtime/omni/infraprovider/state_test.go | 2 +- .../runtime/omni/infraprovider/validation.go | 2 +- internal/backend/runtime/omni/loader.go | 2 +- internal/backend/runtime/omni/loader_test.go | 2 +- .../backend/runtime/omni/migration/compat.go | 2 +- .../migration/deprecated_resources_test.go | 2 +- .../backend/runtime/omni/migration/helpers.go | 2 +- .../backend/runtime/omni/migration/manager.go | 2 +- .../runtime/omni/migration/migration.go | 2 +- .../runtime/omni/migration/migration_test.go | 2 +- .../runtime/omni/migration/migrations.go | 2 +- internal/backend/runtime/omni/omni.go | 2 +- internal/backend/runtime/omni/omni_test.go | 2 +- .../backend/runtime/omni/pkg/check/check.go | 2 +- .../runtime/omni/pkg/check/connection.go | 2 +- .../backend/runtime/omni/pkg/check/etcd.go | 2 +- .../runtime/omni/pkg/check/etcd_test.go | 2 +- internal/backend/runtime/omni/state.go | 2 +- internal/backend/runtime/omni/state_access.go | 4 +- internal/backend/runtime/omni/state_boltdb.go | 2 +- internal/backend/runtime/omni/state_etcd.go | 2 +- .../runtime/omni/state_etcd_election.go | 2 +- .../runtime/omni/state_etcd_election_test.go | 2 +- .../backend/runtime/omni/state_etcd_test.go | 2 +- .../backend/runtime/omni/state_metrics.go | 2 +- .../backend/runtime/omni/state_validation.go | 2 +- .../runtime/omni/state_validation_test.go | 2 +- .../backend/runtime/omni/talosconfig_test.go | 2 +- .../backend/runtime/omni/validated/errors.go | 2 +- .../backend/runtime/omni/validated/options.go | 2 +- .../backend/runtime/omni/validated/state.go | 2 +- .../runtime/omni/validated/state_test.go | 2 +- .../runtime/omni/validated/validated.go | 2 +- .../runtime/omni/validated/validation.go | 2 +- .../backend/runtime/omni/virtual/computed.go | 2 +- .../backend/runtime/omni/virtual/deduper.go | 2 +- .../backend/runtime/omni/virtual/errors.go | 2 +- .../virtual/pkg/producers/kubernetes_usage.go | 2 +- .../omni/virtual/pkg/producers/producers.go | 2 +- .../backend/runtime/omni/virtual/state.go | 17 +- .../runtime/omni/virtual/state_test.go | 2 +- internal/backend/runtime/options.go | 2 +- internal/backend/runtime/proxy_runtime.go | 2 +- .../backend/runtime/proxy_runtime_test.go | 2 +- internal/backend/runtime/resource.go | 2 +- internal/backend/runtime/runtime.go | 2 +- internal/backend/runtime/runtime_test.go | 2 +- internal/backend/runtime/talos/clients.go | 2 +- .../backend/runtime/talos/clients_test.go | 2 +- internal/backend/runtime/talos/talos.go | 2 +- internal/backend/runtime/utils.go | 2 +- internal/backend/runtime/utils_test.go | 2 +- internal/backend/runtime/watch.go | 2 +- internal/backend/saml/encoder.go | 2 +- internal/backend/saml/saml.go | 2 +- internal/backend/saml/session.go | 2 +- internal/backend/saml/session_test.go | 2 +- internal/backend/server.go | 2 +- .../backend/workloadproxy/accessvalidator.go | 2 +- .../workloadproxy/accessvalidator_test.go | 2 +- internal/backend/workloadproxy/handler.go | 2 +- .../backend/workloadproxy/handler_test.go | 2 +- internal/backend/workloadproxy/reconciler.go | 2 +- .../backend/workloadproxy/reconciler_test.go | 2 +- .../backend/workloadproxy/workloadproxy.go | 2 +- internal/e2e-tests/main_test.go | 2 +- internal/frontend/frontend.go | 2 +- internal/frontend/handler.go | 2 +- internal/internal/generate.go | 2 +- internal/internal/tools/tsgen/ast.go | 2 +- internal/internal/tools/tsgen/main.go | 2 +- internal/internal/tools/tsgen/main_test.go | 2 +- .../tsgen/testdata/good/expected/resources.ts | 2 +- internal/internal/tools/tsgen/ts.template | 2 +- internal/memconn/memconn.go | 2 +- .../pkg/auth/accesspolicy/accesspolicy.go | 2 +- .../auth/accesspolicy/accesspolicy_test.go | 2 +- internal/pkg/auth/accesspolicy/cluster.go | 2 +- internal/pkg/auth/actor/actor.go | 2 +- internal/pkg/auth/auth.go | 2 +- internal/pkg/auth/auth0/auth0.go | 2 +- internal/pkg/auth/auth0/token.go | 2 +- internal/pkg/auth/authenticator.go | 2 +- internal/pkg/auth/check.go | 2 +- internal/pkg/auth/check_test.go | 2 +- internal/pkg/auth/config.go | 2 +- internal/pkg/auth/config_test.go | 2 +- internal/pkg/auth/constants.go | 2 +- internal/pkg/auth/context.go | 2 +- internal/pkg/auth/handler/auth_config.go | 2 +- internal/pkg/auth/handler/handler.go | 2 +- internal/pkg/auth/handler/handler_test.go | 2 +- internal/pkg/auth/handler/mock_test.go | 2 +- internal/pkg/auth/handler/signature.go | 2 +- internal/pkg/auth/interceptor/auth_config.go | 2 +- internal/pkg/auth/interceptor/interceptor.go | 2 +- internal/pkg/auth/interceptor/jwt.go | 2 +- internal/pkg/auth/interceptor/saml.go | 2 +- internal/pkg/auth/interceptor/signature.go | 2 +- .../pkg/auth/interceptor/signature_test.go | 2 +- internal/pkg/auth/role/role.go | 2 +- internal/pkg/auth/scope/action.go | 2 +- internal/pkg/auth/scope/object.go | 2 +- internal/pkg/auth/scope/perspective.go | 2 +- internal/pkg/auth/scope/scope.go | 2 +- internal/pkg/auth/scope/scope_test.go | 2 +- internal/pkg/auth/scope/set.go | 2 +- internal/pkg/auth/scope/set_test.go | 2 +- .../pkg/auth/serviceaccount/serviceaccount.go | 2 +- internal/pkg/auth/user/user.go | 2 +- internal/pkg/auth/user/user_test.go | 2 +- internal/pkg/cache/cache.go | 2 +- internal/pkg/cache/cache_test.go | 2 +- internal/pkg/certs/certs.go | 2 +- internal/pkg/certs/certs_test.go | 2 +- internal/pkg/certs/kubernetes.go | 2 +- internal/pkg/certs/kubernetes_test.go | 2 +- internal/pkg/compress/compress.go | 2 +- internal/pkg/config/auth.go | 2 +- internal/pkg/config/config.go | 2 +- internal/pkg/constants/talos.go | 2 +- internal/pkg/constants/versions.go | 2 +- internal/pkg/ctxstore/ctxstore.go | 2 +- internal/pkg/ctxstore/ctxstore_test.go | 2 +- internal/pkg/errgroup/errgroup.go | 2 +- internal/pkg/errgroup/errgroup_test.go | 2 +- internal/pkg/features/features.go | 2 +- internal/pkg/grpcutil/audit.go | 2 +- internal/pkg/grpcutil/grpcutil.go | 2 +- internal/pkg/grpcutil/grpcutil_test.go | 2 +- internal/pkg/grpcutil/logger.go | 2 +- internal/pkg/grpcutil/logger_test.go | 2 +- internal/pkg/grpcutil/server.go | 2 +- internal/pkg/grpcutil/stream_interceptors.go | 2 +- internal/pkg/image/image.go | 2 +- internal/pkg/image/image_test.go | 2 +- internal/pkg/kms/kms.go | 2 +- internal/pkg/logreceiver/logreceiver.go | 2 +- internal/pkg/logreceiver/logreceiver_test.go | 2 +- internal/pkg/machineevent/handler.go | 2 +- internal/pkg/machineevent/handler_test.go | 2 +- internal/pkg/machineevent/machineevent.go | 2 +- internal/pkg/pool/pool.go | 2 +- internal/pkg/registry/registry.go | 2 +- internal/pkg/siderolink/export_test.go | 2 +- internal/pkg/siderolink/loghandler.go | 2 +- internal/pkg/siderolink/loghandler_test.go | 2 +- internal/pkg/siderolink/machines.go | 2 +- internal/pkg/siderolink/manager.go | 2 +- internal/pkg/siderolink/siderolink.go | 2 +- internal/pkg/siderolink/siderolink_test.go | 2 +- internal/pkg/siderolink/trustd/server.go | 2 +- internal/pkg/siderolink/trustd/trustd.go | 2 +- internal/pkg/siderolink/wireguard.go | 2 +- internal/pkg/test/grpc.go | 2 +- internal/pkg/xcontext/xcontext.go | 2 +- internal/pkg/xmocks/xmocks.go | 2 +- internal/version/api.go | 2 +- internal/version/version.go | 2 +- vetur.config.js | 2 +- 785 files changed, 1190 insertions(+), 901 deletions(-) create mode 100644 frontend/src/components/common/Labels/Code.vue create mode 100644 frontend/src/views/omni/Modals/components/ServiceAccountKey.vue diff --git a/.conform.yaml b/.conform.yaml index eca30dab..85bcb2bf 100644 --- a/.conform.yaml +++ b/.conform.yaml @@ -50,7 +50,7 @@ policies: - .pb.ts - babel.config.js header: | - // Copyright (c) 2024 Sidero Labs, Inc. + // Copyright (c) 2025 Sidero Labs, Inc. // // Use of this software is governed by the Business Source License // included in the LICENSE file. @@ -81,7 +81,7 @@ policies: - .pb.gw.go header: | + + + + + diff --git a/frontend/src/components/common/Labels/Labels.vue b/frontend/src/components/common/Labels/Labels.vue index 10eeb293..89de251b 100644 --- a/frontend/src/components/common/Labels/Labels.vue +++ b/frontend/src/components/common/Labels/Labels.vue @@ -1,5 +1,5 @@ + + + + + diff --git a/frontend/src/views/omni/Overview/Overview.vue b/frontend/src/views/omni/Overview/Overview.vue index 629e9aa7..e21db30d 100644 --- a/frontend/src/views/omni/Overview/Overview.vue +++ b/frontend/src/views/omni/Overview/Overview.vue @@ -1,5 +1,5 @@