diff --git a/frontend/src/resources/hosted-cluster.ts b/frontend/src/resources/hosted-cluster.ts index b01cf4aa8e5..37965f468f6 100644 --- a/frontend/src/resources/hosted-cluster.ts +++ b/frontend/src/resources/hosted-cluster.ts @@ -34,10 +34,10 @@ export interface HostedCluster extends IResource { release: { image: string } - pullSecret: { + pullSecret?: { name: string } - sshKey: { + sshKey?: { name: string } networking: { diff --git a/frontend/src/resources/utils/get-cluster.test.ts b/frontend/src/resources/utils/get-cluster.test.ts index 7af3bad2f0c..2d2a24df93a 100644 --- a/frontend/src/resources/utils/get-cluster.test.ts +++ b/frontend/src/resources/utils/get-cluster.test.ts @@ -5,6 +5,7 @@ import { ClusterCurator, ClusterCuratorApiVersion, ClusterCuratorKind } from '.. import { ClusterDeployment, ClusterDeploymentApiVersion, ClusterDeploymentKind } from '../cluster-deployment' import { ClusterStatus, + getCluster, getClusterStatus, getDistributionInfo, getHCUpgradePercent, @@ -1026,6 +1027,22 @@ const mockClusterCuratorPosthookFailed: ClusterCurator = { }, } +describe('getCluster', () => { + it('should handle a hosted cluster without an SSH key', () => { + const { sshKey: _sshKey, ...spec } = mockHostedCluster.spec + const hostedCluster = { ...mockHostedCluster, spec } as HostedClusterK8sResource + + const cluster = getCluster({ + hostedCluster, + managedClusterAddOns: [], + clusterManagementAddOns: {}, + nodePools: [], + }) + + expect(cluster.hypershift?.secretNames).toEqual(['psecret']) + }) +}) + describe('getDistributionInfo', () => { it('should have correct available updates and available channels', () => { const d = getDistributionInfo( diff --git a/frontend/src/resources/utils/get-cluster.ts b/frontend/src/resources/utils/get-cluster.ts index 4b52a9ce6dc..30778eb3114 100644 --- a/frontend/src/resources/utils/get-cluster.ts +++ b/frontend/src/resources/utils/get-cluster.ts @@ -600,7 +600,7 @@ export function getCluster({ ? { agent: !!hostedCluster.spec.platform?.agent, nodePools: clusterNodePools, - secretNames: [hostedCluster.spec?.sshKey.name || '', hostedCluster.spec?.pullSecret?.name || ''].filter( + secretNames: [hostedCluster.spec?.sshKey?.name, hostedCluster.spec?.pullSecret?.name].filter( (name) => !!name ), hostingNamespace: hostedCluster.metadata?.namespace || '',