Skip to content

Commit 5f6c9a6

Browse files
Added manifest feature
Signed-off-by: Anton Kremenetsky <anton.kremenetsky@gmail.com> Co-authored-by: Anton Kremenetsky <anton.kremenetsky@gmail.com>
1 parent f36e037 commit 5f6c9a6

19 files changed

Lines changed: 1771 additions & 9 deletions

File tree

.vscode/launch.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,29 @@
2929
"args": ["--config-file", "etc/genesis_core/genesis_core.conf", "--config-dir", "etc/genesis_core/genesis_core.d/"],
3030
"console": "integratedTerminal",
3131
"justMyCode": false
32+
}, {
33+
"name": "Python Debugger: Manifest Parser",
34+
"type": "debugpy",
35+
"request": "launch",
36+
"program": ".tox/develop/bin/gc-manifest-parser",
37+
"args": [
38+
"--config-file", "etc/genesis_core/genesis_core.conf",
39+
"--config-dir", "etc/genesis_core/genesis_core.d/",
40+
"--manifest-path", "genesis/manifests/core.element.yaml"
41+
],
42+
"console": "integratedTerminal",
43+
"justMyCode": false
44+
}, {
45+
"name": "Python Debugger: Genesis Universal Agent",
46+
"type": "debugpy",
47+
"request": "launch",
48+
"program": ".tox/develop/bin/genesis-universal-agent",
49+
"args": [
50+
"--config-file", "etc/genesis_core/genesis_core.conf",
51+
"--config-dir", "etc/genesis_core/genesis_core.d/",
52+
],
53+
"console": "integratedTerminal",
54+
"justMyCode": false
3255
}, {
3356
"name": "Python Debugger: Apply Migrations",
3457
"type": "debugpy",
Lines changed: 367 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,367 @@
1+
Name: core
2+
Description: Core element.
3+
SchemaVersion: 1
4+
Version: "0.0.1"
5+
6+
Requirements: []
7+
8+
Resources:
9+
10+
$core.endpoints:
11+
management:
12+
kind: internal_client
13+
#endpoint: http://localhost:11010/v1/
14+
15+
16+
$core.compute.nodes:
17+
bootstrap:
18+
name: bootstrap
19+
root_disk_size: 20
20+
cores: 1
21+
ram: 1024
22+
iamge: http://192.168.100.31:8081/genesis-base.raw
23+
24+
25+
$core.element.services:
26+
migrations:
27+
name: Genesis Core Migrations
28+
description: Genesis Core Migrations service
29+
target:
30+
kind: node
31+
node: $core.compute.nodes.$bootstrap:uuid
32+
controller:
33+
kind: systemd
34+
service:
35+
kind: oneshot
36+
exec_start: ra-apply-migration --config-file /etc/genesis_core/genesis_core.conf --path /opt/genesis_core/migrations/
37+
38+
user_api:
39+
name: Genesis Core User Api
40+
description: Genesis Core User API service
41+
target:
42+
kind: node
43+
node: $core.compute.nodes.$bootstrap:uuid
44+
controller:
45+
kind: systemd
46+
service:
47+
kind: daemon
48+
exec_start: gc-user-api --config-file /etc/genesis_core/genesis_core.conf
49+
depends_on:
50+
- $core.element.services.$migrations:get_uri()
51+
52+
orch_api:
53+
name: Genesis Core Orch Api
54+
description: Genesis Core Orch API service
55+
target:
56+
kind: node
57+
node: $core.compute.nodes.$bootstrap:uuid
58+
controller:
59+
kind: systemd
60+
service:
61+
kind: daemon
62+
exec_start: gc-orch-api --config-file /etc/genesis_core/genesis_core.conf
63+
depends_on:
64+
- $core.element.services.$migrations:get_uri()
65+
66+
core_agent:
67+
name: Genesis Core Agent
68+
description: Genesis Core Agent
69+
target:
70+
kind: node
71+
node: $core.compute.nodes.$bootstrap:uuid
72+
controller:
73+
kind: systemd
74+
service:
75+
kind: daemon
76+
exec_start: gc-gservice --config-file /etc/genesis_core/genesis_core.conf
77+
depends_on:
78+
- $core.element.services.$migrations:get_uri()
79+
80+
81+
$core.iam.users:
82+
admin:
83+
uuid: "00000000-0000-0000-0000-000000000000"
84+
username: "admin"
85+
description: "System administrator"
86+
first_name: "Admin"
87+
last_name: "User"
88+
surname: ""
89+
email: "admin@example.com"
90+
91+
92+
$core.iam.organizations:
93+
admin:
94+
uuid: "00000000-0000-0000-0000-000000000000"
95+
name: "admin"
96+
description: "Admin Organization"
97+
genesis_corporation:
98+
uuid: "11111111-1111-1111-1111-111111111111"
99+
name: "Genesis Corporation"
100+
description": "The organization serves as the central platform for all services and elements developed by Genesis Corporation."
101+
102+
103+
$core.iam.organization_members:
104+
admin:
105+
uuid: "210a146e-0ddd-4021-85cd-51760d9b0cbd"
106+
organization: "$core.iam.organizations.$admin:get_uri()"
107+
user: "$core.iam.users.$admin:get_uri()"
108+
role: "OWNER"
109+
110+
111+
$core.iam.projects:
112+
admin:
113+
uuid: "00000000-0000-0000-0000-000000000000"
114+
name: "admin"
115+
description: "Admin Project"
116+
organization: $core.iam.organizations.$admin:get_uri()
117+
iam_core:
118+
uuid: "c938820c-ab9c-56e4-919c-acd0e881996f"
119+
name: "iam-core"
120+
description: "Identity and Access Management Core Project"
121+
organization: $core.iam.organizations.$genesis_corporation:get_uri()
122+
compute:
123+
uuid: "46f57877-f477-5916-bcd1-718d34cf3414"
124+
name: "compute-core"
125+
description: "Comptue and Baremetal Core Project"
126+
organization: "$core.iam.organizations.$genesis_corporation:get_uri()"
127+
128+
129+
$core.iam.permissions:
130+
admin:
131+
uuid: "00000000-0000-0000-0000-000000000000"
132+
name: "*.*.*"
133+
description: "Allow All"
134+
135+
iam_user_list:
136+
uuid: "a8a7eea2-7514-53ac-a408-8b1235352310"
137+
name: "iam.user.list"
138+
description: "Allows listing users in the system"
139+
iam_user_read_all:
140+
uuid: "f64bbebd-c389-53b1-bed2-c725dc7dd1e8"
141+
name: "iam.user.read_all"
142+
description: "Allows reading all user profiles"
143+
iam_user_write_all:
144+
uuid: "880c3129-34ee-5fae-ab1f-6c8412333d49"
145+
name: "iam.user.write_all"
146+
description: "Allows modifying any user`s data"
147+
iam_user_delete_all:
148+
uuid: "e25b27ac-85c1-50c9-b0a9-696048649c28"
149+
name: "iam.user.delete_all"
150+
description: "Allows deleting any user account"
151+
iam_user_delete:
152+
uuid: "bccfb7f4-9775-535b-8967-1d42c5d213f9"
153+
name: "iam.user.delete"
154+
description: "Allows users to delete their own account"
155+
156+
iam_organization_create:
157+
uuid: "51330c56-c241-520f-8b83-234a0ab7ba1d"
158+
name: "iam.organization.create"
159+
description: "Allows creating new organizations"
160+
iam_organization_read_all:
161+
uuid: "c228157c-7923-59bf-8177-ab12c1e6f9c7"
162+
name: "iam.organization.read_all"
163+
description: "Allows viewing all organization details"
164+
iam_organization_write_all:
165+
uuid: "87c5691b-3f77-50eb-853b-abb0b4ff4a82"
166+
name: "iam.organization.write_all"
167+
description: "Allows modifying any organization`s data"
168+
iam_organization_delete:
169+
uuid: "eea5828b-f702-5286-80b5-8afcc75cee71"
170+
name: "iam.organization.delete"
171+
description: "Allows deleting own organization"
172+
iam_organization_delete_all:
173+
uuid: "28da4c50-4487-5514-8131-dd898a7e0abd"
174+
name: "iam.organization.delete_all"
175+
description: "Allows deleting any organization"
176+
177+
iam_project_list_all:
178+
uuid: "eb8f0274-61eb-52ed-b054-18cd08b4ec99"
179+
name: "iam.project.list_all"
180+
description: "Allows listing projects in the system"
181+
iam_project_read_all:
182+
uuid: "626d4b57-3cc7-56d6-bf30-7c2ada04d6b0"
183+
name: "iam.project.read_all"
184+
description: "Allows reading all project details"
185+
iam_project_write_all:
186+
uuid: "c6c21054-6d17-5d67-b981-0ce0ef20e4e2"
187+
name: "iam.project.write_all"
188+
description: "Allows modifying any project`s data"
189+
iam_project_delete_all:
190+
uuid: "654071ab-12af-52c0-8391-ebbb582a0423"
191+
name: "iam.project.delete_all"
192+
description: "Allows deleting any project"
193+
194+
iam_permission_create:
195+
uuid: "d9727cf5-6857-55dc-8030-d13693cc15df"
196+
name: "iam.permission.create"
197+
description: "Allows creating new permissions"
198+
iam_permission_read:
199+
uuid: "98938bd5-b26b-5733-931b-471504c27c1c"
200+
name: "iam.permission.read"
201+
description: "Allows reading permissions"
202+
iam_permission_update:
203+
uuid: "9c540d33-dfd1-565c-82b4-3099ff277c6c"
204+
name: "iam.permission.update"
205+
description: "Allows updating existing permissions"
206+
iam_permission_delete:
207+
uuid: "03ca3f7f-9ef9-5169-a147-85fa0ff6a28d"
208+
name: "iam.permission.delete"
209+
description: "Allows deleting permissions"
210+
211+
iam_permission_binding_create:
212+
uuid: "9c60333d-ab15-504c-af52-095a752237e2"
213+
name: "iam.permission_binding.create"
214+
description: "Allows creating permission bindings"
215+
iam_permission_binding_read:
216+
uuid: "e56faea9-9c58-5ab2-b508-6f467117c9f9"
217+
name: "iam.permission_binding.read"
218+
description: "Allows reading permission bindings"
219+
iam_permission_binding_update:
220+
uuid: "f4c9feb1-a5fc-5a92-b75b-eb47821514e2"
221+
name: "iam.permission_binding.update"
222+
description: "Allows updating permission bindings"
223+
iam_permission_binding_delete:
224+
uuid: "81a119f2-3d32-5ab9-908b-f9b63a9cc8e6"
225+
name: "iam.permission_binding.delete"
226+
description: "Allows deleting permission bindings"
227+
228+
iam_role_create:
229+
uuid: "5d3e126d-85be-5efb-9200-b7655db64fb4"
230+
name: "iam.role.create"
231+
description: "Allows creating new roles"
232+
iam_role_read:
233+
uuid: "4737a4f2-dd9e-584c-9cb2-3927364481db"
234+
name: "iam.role.read"
235+
description: "Allows reading roles"
236+
iam_role_write:
237+
uuid: "b9d6d6ee-8310-58a2-a25f-ca972a7e009f"
238+
name: "iam.role.write"
239+
description: "Allows updating existing roles"
240+
iam_role_delete:
241+
uuid: "131ccaac-c6e5-5dfe-8ec2-4eeca913c938"
242+
name: "iam.role.delete"
243+
description: "Allows deleting roles"
244+
245+
iam_role_binding_create:
246+
uuid: "4c6a94fc-e18f-5d0e-8ada-daaf5d470dd2"
247+
name: "iam.role_binding.create"
248+
description: "Allows creating role bindings"
249+
iam_role_binding_read:
250+
uuid: "ff96b360-0f40-5aa4-9396-5de7aba31cb1"
251+
name: "iam.role_binding.read"
252+
description: "Allows reading role bindings"
253+
iam_role_binding_update:
254+
uuid: "91f74ad1-1359-5b5e-b4ff-62a580caa746"
255+
name: "iam.role_binding.update"
256+
description: "Allows updating role bindings"
257+
iam_role_binding_delete:
258+
uuid: "d72c8adf-737b-5bbe-a026-61834dc309b6"
259+
name: "iam.role_binding.delete"
260+
description: "Allows deleting role bindings"
261+
262+
iam_client_create:
263+
uuid: "29eeff9b-d316-590d-916a-766238fd669d"
264+
name: "iam.iam_client.create"
265+
description: "Allows creating IAM clients"
266+
iam_client_read_all:
267+
uuid: "4435daf0-0d20-5a00-adc8-90fd9a298147"
268+
name: "iam.iam_client.read_all"
269+
description: "Allows reading all IAM clients"
270+
iam_client_update:
271+
uuid: "6d891b35-d0d9-5327-8b85-aa7a191b69c7"
272+
name: "iam.iam_client.update"
273+
description: "Allows updating IAM clients"
274+
iam_client_delete:
275+
uuid: "9da293c0-1ba8-548a-a490-287d0266b507"
276+
name: "iam.iam_client.delete"
277+
description: "Allows deleting IAM clients"
278+
279+
compute_node_read:
280+
uuid: "62dc01b3-f556-5ba3-bcd6-709c52d7418c"
281+
name: "compute.node.read"
282+
description: "List and read own nodes"
283+
compute_node_create:
284+
uuid: "086988df-a84b-5c42-8f3a-1fd3d0dd3878"
285+
name: "compute.node.create"
286+
description: "Create own nodes"
287+
compute_node_update:
288+
uuid: "44b6c954-867f-558b-9dba-b8c7baf9df38"
289+
name: "compute.node.update"
290+
description: "Update own nodes"
291+
compute_node_delete:
292+
uuid: "31eff665-2e96-5202-873a-a2f3c812a281"
293+
name: "compute.node.delete"
294+
description: "Delete own nodes"
295+
296+
297+
$core.iam.roles:
298+
admin:
299+
uuid: "00000000-0000-0000-0000-000000000000"
300+
name: "admin"
301+
description: "Admin Role"
302+
newcomer:
303+
uuid: "726f6c65-0000-0000-0000-000000000001"
304+
name: "newcomer"
305+
description: "Default role for newly registered users. Provides basic system access and onboarding capabilities."
306+
owner:
307+
uuid: "726f6c65-0000-0000-0000-000000000002"
308+
name: "owner"
309+
description: "Project ownership role. Grants full administrative privileges within a specific project. Automatically assigned during project creation process."
310+
311+
312+
$core.iam.permission_bindings:
313+
admin:
314+
uuid: "00000000-0000-0000-0000-000000000000"
315+
role: "$core.iam.roles.$admin:get_uri()"
316+
permission: "$core.iam.permissions.$admin:get_uri()"
317+
newcomer_iam_user_delete:
318+
uuid: "82870529-2614-49ef-b583-7f2100d13c50"
319+
project_id: "$core.iam.projects.$iam_core:uuid"
320+
role: "$core.iam.roles.$newcomer:get_uri()"
321+
permission: "$core.iam.permissions.$iam_user_delete:get_uri()"
322+
newcomer_iam_organization_create:
323+
uuid: "1f7d5e14-6f66-4bfe-a825-c669c8409021"
324+
project_id: "$core.iam.projects.$iam_core:uuid"
325+
role: "$core.iam.roles.$newcomer:get_uri()"
326+
permission: "$core.iam.permissions.$iam_organization_create:get_uri()"
327+
newcomer_iam_organization_delete:
328+
uuid: "4e68d259-9c70-48b9-be23-55961b332338"
329+
project_id: "$core.iam.projects.$iam_core:uuid"
330+
role: "$core.iam.roles.$newcomer:get_uri()"
331+
permission: "$core.iam.permissions.$iam_organization_delete:get_uri()"
332+
owner_compute_node_read:
333+
uuid: "82f1a5a6-f03b-4503-8aa8-dd59fed64097"
334+
project_id: "$core.iam.projects.$compute:uuid"
335+
role: "$core.iam.roles.$owner:get_uri()"
336+
permission: "$core.iam.permissions.$compute_node_read:get_uri()"
337+
owner_compute_node_create:
338+
uuid: "b916340d-db13-4cd3-90ea-a410bcb99270"
339+
project_id: "$core.iam.projects.$compute:uuid"
340+
role: "$core.iam.roles.$owner:get_uri()"
341+
permission: "$core.iam.permissions.$compute_node_create:get_uri()"
342+
owner_compute_node_update:
343+
uuid: "5fa0e254-f7ff-4652-8d4a-70b6e54fcabf"
344+
project_id: "$core.iam.projects.$compute:uuid"
345+
role: "$core.iam.roles.$owner:get_uri()"
346+
permission: "$core.iam.permissions.$compute_node_update:get_uri()"
347+
owner_compute_node_delete:
348+
uuid: "a500cddf-0431-4766-ad01-f09d0ee39d57"
349+
project_id: "$core.iam.projects.$compute:uuid"
350+
role: "$core.iam.roles.$owner:get_uri()"
351+
permission: "$core.iam.permissions.$compute_node_delete:get_uri()"
352+
353+
354+
$core.iam.role_bindings:
355+
admin:
356+
uuid: "00000000-0000-0000-0000-000000000000"
357+
user: "$core.iam.users.$admin:get_uri()"
358+
role: "$core.iam.roles.$admin:get_uri()"
359+
360+
361+
$core.iam.clients:
362+
genesis_core:
363+
uuid: "00000000-0000-0000-0000-000000000000"
364+
name: "GenesisCoreClient"
365+
description: "Genesis Core OIDC Client"
366+
client_id: "GenesisCoreClientId"
367+
redirect_url: "http://127.0.0.1:11010/v1/"

0 commit comments

Comments
 (0)