-
Notifications
You must be signed in to change notification settings - Fork 27
Add larger memory flavors #938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
8dd5ba3
12498c9
5a220bd
023b08f
2f92fd9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,10 +14,7 @@ description: | | |
|
||
## Introduction | ||
|
||
This is v1.1 of the standard, which lifts the following restriction regarding the property `scs:name-vN`: | ||
this property may now be used on any flavor, rather than standard flavors only. In addition, the "vN" is | ||
now interpreted as "name variant N" instead of "version N of the naming standard". Note that this change | ||
indeed preserves compliance, i.e., compliance with v1.0 implies compliance with v1.1. | ||
Note that this is v1.2 of this standard. See the closing section for more details. | ||
|
||
## Terminology | ||
|
||
|
@@ -99,7 +96,7 @@ Note that this statement does not preclude the existence of additional flavors. | |
| SCS-4V-32 | 4 | shared-core | 32 | | | | ||
| SCS-1L-1 | 1 | crowded-core | 1 | | | | ||
|
||
### Recommended | ||
### Recommended, part 1 | ||
|
||
| Recommended name | vCPUs | vCPU type | RAM [GiB] | Root disk [GB] | Disk type | | ||
| ---------------- | ------ | ------------- | ---------- | --------------- | ---------- | | ||
|
@@ -117,6 +114,26 @@ Note that this statement does not preclude the existence of additional flavors. | |
| SCS-4V-32-100 | 4 | shared-core | 32 | 100 | (any) | | ||
| SCS-1L-1-5 | 1 | crowded-core | 1 | 5 | (any) | | ||
|
||
### Recommended, part 2 | ||
|
||
The following flavors were added with v1.2 of this standard. If a CSP wants to offer | ||
flavors with more RAM than the ones above, they should try to use these. | ||
|
||
| Recommended name | vCPUs | vCPU type | RAM [GiB] | Root disk [GB] | Disk type | | ||
| ---------------- | ------ | ------------- | ---------- | --------------- | ---------- | | ||
| SCS-16V-64 | 16 | shared-core | 64 | | | | ||
| SCS-16V-64-100 | 16 | shared-core | 64 | 100 | (any) | | ||
| SCS-8V-64 | 8 | shared-core | 64 | | | | ||
| SCS-16V-128 | 16 | shared-core | 128 | | | | ||
| SCS-8V-64-100 | 8 | shared-core | 64 | 100 | (any) | | ||
| SCS-16V-128-100 | 16 | shared-core | 128 | 100 | (any) | | ||
| SCS-4V-64 | 4 | shared-core | 64 | | | | ||
| SCS-8V-128 | 8 | shared-core | 128 | | | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that 1:16 (vCPU:RAM) is rather exotic, certainly if it's not even dedicated Cores (or Threads). |
||
| SCS-4V-64-100 | 4 | shared-core | 64 | 100 | (any) | | ||
| SCS-8V-128-100 | 8 | shared-core | 128 | 100 | (any) | | ||
| SCS-4V-128 | 4 | shared-core | 128 | | | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 1:32 is even more extreme. |
||
| SCS-4V-128-100 | 4 | shared-core | 128 | 100 | (any) | | ||
|
||
### Guarantees and properties | ||
|
||
The figures given in the table (number of CPUs, amount of RAM, root disk size) must match | ||
|
@@ -158,6 +175,13 @@ instance life cycle.) | |
|
||
## Previous standard versions | ||
|
||
This is v1.2 of the standard, which adds recommended flavors with more RAM. | ||
|
||
Version 1.1 lifted a restriction regarding the property `scs:name-vN` as follows: | ||
this property may now be used on any flavor, rather than standard flavors only. In addition, the "vN" is | ||
now interpreted as "name variant N" instead of "version N of the naming standard". Note that this change | ||
indeed preserves compliance, i.e., compliance with v1.0 implies compliance with v1.1. | ||
|
||
The list of standard flavors used to be part of the flavor naming standard up until | ||
[version 3](scs-0100-v3-flavor-naming.md). The following changes have been made to | ||
the list in comparison with said standard: | ||
|
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
#!/usr/bin/env python3 | ||
""" | ||
Generate flavor specification file for osism's flavor manager, | ||
cf. https://github.com/osism/openstack-flavor-manager . | ||
|
||
The spec file is output to stdout. | ||
""" | ||
import logging | ||
import sys | ||
|
||
import yaml | ||
|
||
from scs_0100_flavor_naming.flavor_names import compute_flavor_spec | ||
from scs_0103_standard_flavors.standard_flavors import \ | ||
SCS_0103_V1_MANDATORY, SCS_0103_V1_RECOMMENDED | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
|
||
def convert_flavor_spec(canonical_name, spec): | ||
"""convert `spec` into format for openstack-flavor-manager""" | ||
converted = { | ||
'name': canonical_name, | ||
'cpus': spec['cpus'], | ||
'ram': int(1024 * spec['ram']), | ||
} | ||
if 'disk' in spec: | ||
converted['disk'] = spec['disk'] | ||
for k, v in spec.items(): | ||
if not k.startswith('scs:'): | ||
continue | ||
converted[k] = v | ||
return converted | ||
|
||
|
||
def compute_spec_list(canonical_names): | ||
return [ | ||
convert_flavor_spec( | ||
canonical_name, | ||
compute_flavor_spec(canonical_name), | ||
) | ||
for canonical_name in canonical_names | ||
] | ||
|
||
|
||
def main(argv): | ||
logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO) | ||
|
||
# boilerplate / scaffolding | ||
result = yaml.safe_load(""" | ||
reference: | ||
- field: name | ||
mandatory_prefix: SCS- | ||
- field: public | ||
default: true | ||
- field: disabled | ||
default: false | ||
- field: cpus | ||
- field: ram | ||
- field: disk | ||
mandatory: [] | ||
recommended: [] | ||
""") | ||
|
||
result['mandatory'] = compute_spec_list(SCS_0103_V1_MANDATORY) | ||
result['recommended'] = compute_spec_list(SCS_0103_V1_RECOMMENDED) | ||
|
||
print(yaml.dump(result, sort_keys=False)) | ||
|
||
|
||
if __name__ == "__main__": | ||
sys.exit(main(sys.argv[1:])) |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest NOT to recommend flavors with root disks any more unless those are local SSDs.
We can add a reminder that we do recommend to use 5, 10, 20, 50, 100, 200, 500, 1000 as disk sizes (and scale them with RAM) in case providers feel a need to have flavors with disks.
(The flavors with 64GiB RAM could have a 200GB disk and 128GiB a 500G disk in my world, but again, let's rather not recommend them at all.)