diff --git a/frontend/src/resources/hosted-cluster.ts b/frontend/src/resources/hosted-cluster.ts index 0e21306c7f9..bbc36791dbe 100644 --- a/frontend/src/resources/hosted-cluster.ts +++ b/frontend/src/resources/hosted-cluster.ts @@ -43,10 +43,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 34c5ff32a9e..c78bda0d029 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, @@ -1028,6 +1029,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 fab4c1f0efd..97276a6aa2a 100644 --- a/frontend/src/resources/utils/get-cluster.ts +++ b/frontend/src/resources/utils/get-cluster.ts @@ -611,7 +611,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 || '',