Skip to content

Commit 2be9a0a

Browse files
authored
Merge branch 'main' into feat/secure-communication
2 parents 2c47877 + 08b1eeb commit 2be9a0a

19 files changed

+999
-214
lines changed

.github/scs-compliance-check/openstack/clouds.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,14 @@ clouds:
8989
auth:
9090
auth_url: https://identity.l1a.cloudandheat.com/v3
9191
application_credential_id: "7ab4e3339ea04255bc131868974cfe63"
92+
scaleup-occ2:
93+
auth_type: v3applicationcredential
94+
auth:
95+
auth_url: https://keystone.occ2.scaleup.cloud
96+
application_credential_id: "5d2eea4e8bf8448092490b4190d4430a"
97+
region_name: "RegionOne"
98+
interface: "public"
99+
identity_api_version: 3
92100
syseleven-dus2:
93101
interface: public
94102
identity_api_verion: 3
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: "Compliance IaaS v4 of scaleup-occ2"
2+
3+
on:
4+
# Trigger compliance check every day at 4:30 UTC
5+
schedule:
6+
- cron: '30 4 * * *'
7+
# Trigger compliance check after Docker image has been built
8+
workflow_run:
9+
workflows: [Build and publish scs-compliance-check Docker image]
10+
types:
11+
- completed
12+
# Allows you to run this workflow manually from the Actions tab
13+
workflow_dispatch:
14+
15+
jobs:
16+
check-scaleup-occ2:
17+
uses: ./.github/workflows/scs-compliance-check-with-application-credential.yml
18+
with:
19+
version: v4
20+
layer: iaas
21+
cloud: scaleup-occ2
22+
secret_name: OS_PASSWORD_SCALEUP_OCC2
23+
secrets: inherit

.zuul.d/secure.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,28 @@
233233
VCsXjf0qBBMrzz6HP9z95Bk44fiJ3L/LkA3Iij961dYrQXbZKDrKOiX/QPwrcSrVmjmew
234234
UbPexJFHgvTCqjadoLejSt9cUd9lVzhuzLJ8CS+CcCMbZOno6qathrd2B88riQaPNIGNu
235235
gfkNT9R63ZzKB1qIA2n5RZi7SH9DPIUd0AwLMn2bhp3uok5pNAPP/4/1RkQiCA=
236+
scaleup_occ2_ac_id: !encrypted/pkcs1-oaep
237+
- N2duwkcMdOXw6wF0deE/0BPM1M/URt3eWmrnBJ89VHeCDENGfTfDHcWPYs3wW4rSRCG6t
238+
gqgNuA049OvOhL7rtjNHZ6yIj6xEHH/YdqT4UxjXPS9GFwoJXDtE8rIGjK3KU8GfUgKnG
239+
DLplyyzGzx5j39rJAS628InmC56aip47rO1J4HQE9Ku25Wb06R7ykx+0ZOWr0HXjV/VsV
240+
uwfyL+DPgewbL+4u8/XkcI0FwAM9/KkF/CcYUq5aVMdQS2foatTQW0C2idg+pffSTRaau
241+
VF44rkVfzsCOz4MYAFpLIaL9Zxx1FifaPOd0oi6rEFjGd6vFtFCHk1BRpKmOITLyx3Te5
242+
zVffSkQAsqpn/4er8800bjQzxXvqmQmR0QwPM7dhvRnrNbTSCA/Awm5BPaUgeCZFN3MPN
243+
Mc0XIaEwjuJvDK6fqj5tJrVIs5bxAmqRDj8d76AlJcOdDxHicTHgR3aUG4AKOWkUsskgQ
244+
3xR8lPh31O/HgzG9tq6o/DCPA1O9wyyOyT7KwJAaRASPCA1O80ZAzhZUNUVyut6dYEwaS
245+
QXP4IaEJOxP8EkxR7FDEuO99UFZ7TXQ1CF7ots4wIs5tEpQvcdLnvBjJckp0fNBFTuGMm
246+
FCvhgBK30NC93U4DxQv6xZBhqtvHYjHcTOXvz2fryRJT2teMN+eI+RDdV1Jj8Y=
247+
scaleup_occ2_ac_secret: !encrypted/pkcs1-oaep
248+
- LfUHhslK41JDp3CpslWGGA4bZ3udZh4KnytcXohkdbchb8QVt8eNc4nD0ti0/XS18YKwq
249+
DlHOWw2rDJZ8RGIXENVUYzDbECoBErE8IAqQE0q3oS/8Oq0NYOFTGvvlKuue7U4s87Pwi
250+
YFi+Q0Rv7vO8cWFVtbRHK+Hw6pC42Biq2T+tuVBCLqylIMViXpuEy9UpFLEv59zr6EHa9
251+
uB3xkjnpWuabe7vrG+LQHc0pJ5tNhcLiOnJggU5Ef02FBy+t6xvuJW8f6cXCnRRj1q0fl
252+
D/vTmC7avwHnWC+J4WLL69HCwW05I7iHftVSWOXQgRzMBd4D4ND2OXfsWElu0eOV5XG6X
253+
JsQH8lDnVN/lqaDAOYR4fk4+9yt3RURwvNL5FUnDK1t7LAI4X0gcvLrQAfzgOlpBYDXSK
254+
0kbUzqwivuw1v2zO/gxQU+J28PsOfZaKf/7ZZyj3e/tiq4wBpvPb0mVBwWXigKqzr+QED
255+
Iy2u/g3x2qdcTpXR/RPq+xiXM2B2rw1V5gdkscdL+avXtTF7hT9HrcayHx3HDZ/h6aGPD
256+
RWIJ8bstl+x2Q4zExgR13amWM8ZR1iLGCN20U/ZAaqANCqjDbrSVSTjTPzYtNFwAXwxkB
257+
3NHhPDHZ1MIdr6IJE4IZ4TCMsIeTA2UHNfF4RCzeDSIJ+CXOQxUFWOxZkf97WY=
236258
syseleven_dus2_ac_id: !encrypted/pkcs1-oaep
237259
- SjwtIvJO7DkLJDmS+T/Z5utFBa22hmPRBd8mzonJHGgURB2W7fmXFreD9NPrLfbt7ujKi
238260
KNqJm8k1Vr1F3Mu+Osr0BWSnq5makwVt2ikBY4qPbL8iyVXsByaT/HNPLCOokqy+REpfu

Drafts/node-to-node-encryption.md

Lines changed: 529 additions & 0 deletions
Large diffs are not rendered by default.

Standards/scs-0100-w1-flavor-naming-implementation-testing.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ of a GPU) result in what GPU part of the flavor name.
5353

5454
#### Nvidia (`N`)
5555

56-
We show the most popular recent generations here. older one are of course possible as well.
56+
We show the most popular recent generations here. Older one are of course possible as well.
5757

5858
##### Ampere (`a`)
5959

6060
One Streaming Multiprocessor on Ampere has 64 (A30, A100) or 128 Cuda Cores (A10, A40).
6161

62-
GPUs without MIG (one SM has 128 Cude Cores and 4 Tensor Cores):
62+
GPUs without MIG (one SM has 128 Cuda Cores and 4 Tensor Cores):
6363

6464
| Nvidia GPU | Tensor C | Cuda Cores | SMs | VRAM | SCS name piece |
6565
|------------|----------|------------|-----|-----------|----------------|
@@ -138,14 +138,14 @@ Cores and 64 Stream Processors per CU.
138138

139139
#### intel Xe (`I`)
140140

141-
##### Xe-HPC (Ponte Vecchio) (`12.7`)
141+
##### Xe-HPC (Ponte Vecchio) (`3`)
142142

143143
1 EU corresponds to one Tensor Core and contains 128 Shading Units.
144144

145-
| intel DC GPU | Tensor C | Shading U | EUs | VRAM | SCS name piece |
146-
|--------------|----------|-----------|-----|------------|-------------------|
147-
| Max 1100 | 56 | 7168 | 56 | 48G HBM2e | `GI12.7-56-48h` |
148-
| Max 1550 | 128 | 16384 | 128 | 128G HBM2e | `GI12.7-128-128h` |
145+
| intel DC GPU | Tensor C | Shading U | EUs | VRAM | SCS name part |
146+
|--------------|----------|-----------|-----|------------|----------------|
147+
| Max 1100 | 56 | 7168 | 56 | 48G HBM2e | `GI3-56-48h` |
148+
| Max 1550 | 128 | 16384 | 128 | 128G HBM2e | `GI3-128-128h` |
149149

150150
## Automated tests
151151

Standards/scs-0115-v1-default-rules-for-security-groups.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Administrator (abbr. Admin)
2525

2626
### Default Security Groups, Custom Security Groups and default Security Group Rules
2727

28-
To properly understand the concepts in this standard and avoid ambiguity, is very important to distinguish between the following similar-sounding but different resources in the OpenStack Networking API:
28+
To properly understand the concepts in this standard and avoid ambiguity, it is very important to distinguish between the following similar-sounding but different resources in the OpenStack Networking API:
2929

3030
1. default Security Group
3131
2. custom Security Group
@@ -59,10 +59,10 @@ Therefore, this standard proposes default Security Group rules that MUST be set
5959

6060
## Design Considerations
6161

62-
Up to the 2023.1 release (antelope) the default Security Group rules are hardcoded in the OpenStack code.
63-
We should not require to change this behavior through code changes in deployments.
62+
Up to the 2023.1 release (Antelope) the default Security Group rules are defined in the OpenStack code.
63+
We should not require changing this behavior through code changes in deployments.
6464

65-
Beginning with the 2023.2 release (bobcat) the default Security Group rules can now be edited by administrators through an API.
65+
Beginning with the 2023.2 release (Bobcat) the default Security Group rules can now be edited by administrators through an API.
6666
All rules that should be present as default in Security Groups have to be configured by admins through this API.
6767

6868
There are two ways to approach a standard for the default rules of Security Groups.

Standards/scs-0116-w1-key-manager-implementation-testing.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ This can be done with a small change in the policy.yaml file. The `creator` has
4444
The check for the presence of a Key Manager is done with a test script, that checks the presence of a Key Manager service in the catalog endpoint of Openstack.
4545
This check can eventually be moved to the checks for the mandatory an supported service/API list, in case of a promotion of the Key Manager to the mandatory list.
4646
47+
### Implementation
48+
49+
The script [`check-for-key-manager.py`](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/key-manager/check-for-key-manager.py)
50+
connects to OpenStack and performs the checks described in this section.
51+
4752
## Manual Tests
4853

4954
It is not possible to check a deployment for a correctly protected Master KEK automatically from the outside.

Tests/config.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ subjects = [
2626
"poc-kdo",
2727
"poc-wgcloud",
2828
"regio-a",
29+
"scaleup-occ2",
2930
"syseleven-dus2",
3031
"syseleven-ham1",
3132
"wavestack",

Tests/iaas/flavor-naming/flavor-name-check.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ def main(argv):
8686
nm2 = _fnmck.outname(ret2)
8787
if nm1 != nm2:
8888
print(f"WARNING: {nm1} != {nm2}")
89+
snm = _fnmck.outname(ret.shorten())
90+
if snm != nm1:
91+
print(f"Shortened name: {snm}")
8992
argv = argv[1:]
9093
scs = 1
9194

Tests/iaas/flavor-naming/flavor_names.py

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ class Main:
162162
raminsecure = BoolAttr("?no ECC", letter="u")
163163
ramoversubscribed = BoolAttr("?RAM Over", letter="o")
164164

165+
def shorten(self):
166+
return self
167+
165168

166169
class Disk:
167170
"""Class representing the disk part"""
@@ -171,20 +174,29 @@ class Disk:
171174
disksize = OptIntAttr("#.GB Disk")
172175
disktype = TblAttr("Disk type", {'': '(unspecified)', "n": "Networked", "h": "Local HDD", "s": "SSD", "p": "HiPerf NVMe"})
173176

177+
def shorten(self):
178+
return self
179+
174180

175181
class Hype:
176182
"""Class repesenting Hypervisor"""
177183
type = "Hypervisor"
178184
component_name = "hype"
179185
hype = TblAttr(".Hypervisor", {"kvm": "KVM", "xen": "Xen", "hyv": "Hyper-V", "vmw": "VMware", "bms": "Bare Metal System"})
180186

187+
def shorten(self):
188+
return None
189+
181190

182191
class HWVirt:
183192
"""Class repesenting support for hardware virtualization"""
184193
type = "Hardware/NestedVirtualization"
185194
component_name = "hwvirt"
186195
hwvirt = BoolAttr("?HardwareVirt", letter="hwv")
187196

197+
def shorten(self):
198+
return None
199+
188200

189201
class CPUBrand:
190202
"""Class repesenting CPU brand"""
@@ -206,6 +218,12 @@ def __init__(self, cpuvendor="i", cpugen=0, perf=""):
206218
self.cpugen = cpugen
207219
self.perf = perf
208220

221+
def shorten(self):
222+
# For non-x86-64, don't strip out CPU brand for short name, as it contains the architecture
223+
if self.cpuvendor in ('i', 'z'):
224+
return None
225+
return CPUBrand(self.cpuvendor)
226+
209227

210228
class GPU:
211229
"""Class repesenting GPU support"""
@@ -226,13 +244,29 @@ class GPU:
226244
vram = OptIntAttr("#.V:GiB VRAM")
227245
vramperf = TblAttr("Bandwidth", {"": "Std BW {<~1GiB/s)", "h": "High BW", "hh": "Very High BW"})
228246

247+
def __init__(self, gputype="g", brand="N", gen='', cu=None, perf='', vram=None, vramperf=''):
248+
self.gputype = gputype
249+
self.brand = brand
250+
self.gen = gen
251+
self.cu = cu
252+
self.perf = perf
253+
self.vram = vram
254+
self.vramperf = vramperf
255+
256+
def shorten(self):
257+
# remove h modifiers
258+
return GPU(gputype=self.gputype, brand=self.brand, gen=self.gen, cu=self.cu, vram=self.vram)
259+
229260

230261
class IB:
231262
"""Class representing Infiniband"""
232263
type = "Infiniband"
233264
component_name = "ib"
234265
ib = BoolAttr("?IB")
235266

267+
def shorten(self):
268+
return self
269+
236270

237271
class Flavorname:
238272
"""A flavor name; merely a bunch of components"""
@@ -250,14 +284,15 @@ def __init__(
250284

251285
def shorten(self):
252286
"""return canonically shortened name as recommended in the standard"""
253-
if self.hype is None and self.hwvirt is None and self.cpubrand is None:
254-
return self
255-
# For non-x86-64, don't strip out CPU brand for short name, as it contains the architecture
256-
if self.cpubrand and self.cpubrand.cpuvendor not in ('i', 'z'):
257-
return Flavorname(cpuram=self.cpuram, disk=self.disk,
258-
cpubrand=CPUBrand(self.cpubrand.cpuvendor),
259-
gpu=self.gpu, ib=self.ib)
260-
return Flavorname(cpuram=self.cpuram, disk=self.disk, gpu=self.gpu, ib=self.ib)
287+
return Flavorname(
288+
cpuram=self.cpuram and self.cpuram.shorten(),
289+
disk=self.disk and self.disk.shorten(),
290+
hype=self.hype and self.hype.shorten(),
291+
hwvirt=self.hwvirt and self.hwvirt.shorten(),
292+
cpubrand=self.cpubrand and self.cpubrand.shorten(),
293+
gpu=self.gpu and self.gpu.shorten(),
294+
ib=self.ib and self.ib.shorten(),
295+
)
261296

262297

263298
class Outputter:

0 commit comments

Comments
 (0)