Skip to content

Commit 94f247a

Browse files
committed
fix
1 parent 2939393 commit 94f247a

File tree

3 files changed

+150
-11
lines changed

3 files changed

+150
-11
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.absolute {
2+
position: fixed;
3+
top: 50%;
4+
left: 50%;
5+
transform: translate(-50%, -50%);
6+
z-index: 100;
7+
}

src/components/Wizards/CreateManagedControlPlane/EditManagedControlPlaneWizardDataLoader.tsx

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { FC } from 'react';
22
import { useApiResource } from '../../../lib/api/useApiResource.ts';
33
import { ResourceObject } from '../../../lib/api/types/crate/resourceObject.ts';
4-
4+
import styles from './EditManagedControlPlaneWizardDataLoader.module.css';
55
import Loading from '../../Shared/Loading.tsx';
66
import { CreateManagedControlPlaneWizardContainer } from './CreateManagedControlPlaneWizardContainer.tsx';
77
import { PROJECT_NAME_LABEL, WORKSPACE_LABEL } from '../../../lib/api/types/shared/keyNames.ts';
@@ -25,20 +25,27 @@ export const EditManagedControlPlaneWizardDataLoader: FC<EditManagedControlPlane
2525
true,
2626
!isOpen,
2727
);
28-
29-
if (isLoading) return <Loading />;
28+
if (isLoading) {
29+
return (
30+
<div className={styles.absolute}>
31+
<Loading />
32+
</div>
33+
);
34+
}
3035
if (error || !data) {
3136
return null;
3237
}
3338

3439
return (
35-
<CreateManagedControlPlaneWizardContainer
36-
isOpen={isOpen}
37-
setIsOpen={setIsOpen}
38-
projectName={`project-${data?.metadata?.labels?.[PROJECT_NAME_LABEL]}`}
39-
workspaceName={data?.metadata?.labels?.[WORKSPACE_LABEL]}
40-
isEditMode={true}
41-
initialData={data}
42-
/>
40+
<>
41+
<CreateManagedControlPlaneWizardContainer
42+
isOpen={isOpen}
43+
setIsOpen={setIsOpen}
44+
projectName={`project-${data?.metadata?.labels?.[PROJECT_NAME_LABEL]}`}
45+
workspaceName={data?.metadata?.labels?.[WORKSPACE_LABEL]}
46+
isEditMode={true}
47+
initialData={data}
48+
/>
49+
</>
4350
);
4451
};
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
// ManagedControlPlane TypeScript interfaces generated from example JSON
2+
// These interfaces are intentionally permissive (optional fields, string unions with fallbacks)
3+
// to remain forward-compatible with the API while providing strong typing for known fields.
4+
5+
export interface ManagedControlPlane {
6+
apiVersion: 'core.openmcp.cloud/v1alpha1' | string;
7+
kind: 'ManagedControlPlane' | string;
8+
metadata: KubernetesObjectMeta;
9+
spec: ManagedControlPlaneSpec;
10+
status?: ManagedControlPlaneStatus;
11+
}
12+
13+
export interface KubernetesObjectMeta {
14+
name: string;
15+
namespace?: string;
16+
uid?: string;
17+
resourceVersion?: string;
18+
generation?: number;
19+
creationTimestamp?: string;
20+
annotations?: Record<string, string>;
21+
labels?: Record<string, string>;
22+
finalizers?: string[];
23+
managedFields?: ManagedFieldsEntry[];
24+
}
25+
26+
export interface ManagedFieldsEntry {
27+
apiVersion?: string;
28+
fieldsType?: string;
29+
fieldsV1?: unknown;
30+
manager?: string;
31+
operation?: string;
32+
subresource?: string;
33+
time?: string;
34+
}
35+
36+
export interface ManagedControlPlaneSpec {
37+
authentication?: MCPAuthenticationSpec;
38+
authorization?: MCPAuthorizationSpec;
39+
components?: MCPComponentsSpec;
40+
}
41+
42+
export interface MCPAuthenticationSpec {
43+
enableSystemIdentityProvider?: boolean;
44+
}
45+
46+
export interface MCPAuthorizationSpec {
47+
roleBindings?: MCPRoleBinding[];
48+
}
49+
50+
export interface MCPRoleBinding {
51+
role: 'admin' | 'view' | string;
52+
subjects: MCPSubject[];
53+
}
54+
55+
export interface MCPSubject {
56+
kind: 'User' | 'ServiceAccount' | string;
57+
name: string;
58+
namespace?: string;
59+
}
60+
61+
export interface MCPComponentsSpec {
62+
apiServer?: MCPApiServerComponent;
63+
crossplane?: MCPCrossplaneComponent;
64+
externalSecretsOperator?: MCPVersionedComponent;
65+
flux?: MCPVersionedComponent;
66+
}
67+
68+
export interface MCPApiServerComponent {
69+
type?: 'GardenerDedicated' | string;
70+
}
71+
72+
export interface MCPCrossplaneComponent {
73+
version?: string;
74+
providers?: MCPCrossplaneProvider[];
75+
}
76+
77+
export interface MCPCrossplaneProvider {
78+
name: string;
79+
version?: string;
80+
}
81+
82+
export interface MCPVersionedComponent {
83+
version?: string;
84+
}
85+
86+
export interface ManagedControlPlaneStatus {
87+
components?: MCPStatusComponents;
88+
conditions?: MCPCondition[];
89+
observedGeneration?: number;
90+
status?: string;
91+
}
92+
93+
export interface MCPStatusComponents {
94+
apiServer?: {
95+
endpoint?: string;
96+
serviceAccountIssuer?: string;
97+
};
98+
authentication?: {
99+
access?: {
100+
key?: string;
101+
name?: string;
102+
namespace?: string;
103+
};
104+
};
105+
authorization?: Record<string, unknown>;
106+
cloudOrchestrator?: Record<string, unknown>;
107+
}
108+
109+
export interface MCPCondition {
110+
lastTransitionTime?: string;
111+
managedBy?: string;
112+
message?: string;
113+
reason?: string;
114+
status?: 'True' | 'False' | 'Unknown' | string;
115+
type?:
116+
| 'APIServerHealthy'
117+
| 'AuthenticationHealthy'
118+
| 'AuthorizationHealthy'
119+
| 'CloudOrchestratorHealthy'
120+
| 'CrossplaneReady'
121+
| 'ExternalSecretsOperatorReady'
122+
| 'Ready'
123+
| 'MCPSuccessful'
124+
| string;
125+
}

0 commit comments

Comments
 (0)