Skip to content

Commit 7768b32

Browse files
Merge branch 'main' into feat/scs-0201-cncf-conformance
2 parents 25e75ad + c1e9a1b commit 7768b32

8 files changed

Lines changed: 28 additions & 23 deletions

File tree

.zuul.d/secure.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
gY6QHocYpATL46iLkv97QANNUxTdxL7hQjdl/tf3TAHjCclmxdWhBJdvCJN/1xCM6EgVp
102102
NykBYxJ+kxSmkcFCSdUM8Td75bA/UzkPCdix1reJMdEAxTE9fC55XQ/liTLlGquQDnZty
103103
VLDH7x3ZJcxZsvqKR6vNbYYzJvDPTBYpHrhD7kx3ubyO9KX+SzZ+Dfhe9M8T8U=
104-
focis_ac_id: !encrypted/pkcs1-oaep
104+
cah_dd8a_ac_id: !encrypted/pkcs1-oaep
105105
- KB/tDE/a07eU+xtwor1iLxhvRdA/6bgkZn2aCPvkYtKKoVmT6sXpfRl1t319WqZRIRkoh
106106
GK0d9KMJkVT+Q5sbZiSxMD24yMBvwaImIBG6OCzxjyklqal1SOt6CLx4q/uGoGl7QrPOM
107107
WcRoluG1FCoDeUewgaZ50TQD0TQ8YGxuhRZi6s8KldDrYVkB/9HBUmwNhgd2LhExmNbtR
@@ -112,7 +112,7 @@
112112
YbdI4KBz6CcfrNdtut9XlmNLT91emT9ayC+XDqBypksHXHcypuqoOHMQUdjSPtXDLsI//
113113
dsSRxDL+4TtWaVovPAxaLGsiVohsoCEdAxBmYxbkA2DNYdOMf6glu7O4wMtEIjaBdzdfP
114114
CKfkOiwdCjtq++Ofn/C+3zI+2H+58TosQdCXcYIGmyKw5WSN7/sCosWDUtcsq4=
115-
focis_ac_secret: !encrypted/pkcs1-oaep
115+
cah_dd8a_ac_secret: !encrypted/pkcs1-oaep
116116
- E8fpHXVmMa7ptAndyV8fqgC6tmGL9qmtpI10q1Yh6Qo0iIt09HNl8aZLtupmavTqYJg+D
117117
7BI3ziTG4PNfc6MK0rvsQE/jGCf/XGW7yyfrmcvok+8mwD7foya5gEDLvbxFuIUopdTEt
118118
Wk+5qLHNv87fKtQVGoda1qZXQ2ZjEw3sLv5eENLEft+u3XZnPLMVJ3p9ZGK0mvBcIfAlk

Standards/scs-0210-v2-k8s-version-policy.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,12 @@ In order to keep up-to-date with the latest Kubernetes features, bug fixes and s
5757
the provided Kubernetes versions should be kept up-to-date with new upstream releases:
5858

5959
- The latest minor version MUST be provided no later than 4 months after release.
60-
- The latest patch version MUST be provided no later than 2 weeks after release.
61-
- This time period MUST be even shorter for patches that fix critical CVEs.
60+
- The latest patch version MUST be provided no later than 1 month after release.
61+
- This time period (for providing the latest patch version) MUST not be longer than
62+
2 weeks if the patch addresses critical CVEs and it is RECOMMENDED to be provided
63+
within 2 days of the release.
6264
In this context, a critical CVE is a CVE with a CVSS base score >= 8 according
6365
to the CVSS version used in the original CVE record (e.g., CVSSv3.1).
64-
It is RECOMMENDED to provide a new patch version in a 2-day time period after their release.
6566
- New versions MUST be tested before being rolled out on productive infrastructure;
6667
at least the [CNCF E2E tests][cncf-conformance] should be passed beforehand.
6768

Tests/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ subjects = [
2121
"artcodix",
2222
"artcodix-ro",
2323
# currently not reachable from outside: "cc-rrze",
24-
"focis",
24+
"cah-dd8a",
2525
"pco-prod1",
2626
"pco-prod2",
2727
"pco-prod3",

Tests/kaas/k8s-version-policy/k8s_version_policy.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@
4545

4646

4747
MINOR_VERSION_CADENCE = timedelta(days=120)
48-
PATCH_VERSION_CADENCE = timedelta(weeks=2)
49-
CVE_VERSION_CADENCE = timedelta(days=2)
48+
PATCH_VERSION_CADENCE = timedelta(days=31)
49+
CVE_VERSION_CADENCE = timedelta(weeks=2)
50+
CVE_VERSION_CADENCE_WARN = timedelta(days=2)
5051
CVE_SEVERITY = 8 # CRITICAL
5152

5253
HERE = Path(__file__).parent
@@ -420,19 +421,19 @@ def check_k8s_version_recency(
420421
# whoops, the cluster should have been updated to this (or a higher version) already!
421422
return False
422423
ranges = [_range for _range in cve_affected_ranges if my_version in _range]
423-
if ranges and release.age > CVE_VERSION_CADENCE:
424-
# -- two FIXMEs:
425-
# (a) if the release still has the CVE, then there is no use if we updated to it?
426-
# (b) the standard says "time period MUST be even shorter ... it is RECOMMENDED that ...",
427-
# so what is it now, a requirement or a recommendation?
424+
if ranges and release.age > CVE_VERSION_CADENCE_WARN:
425+
# -- FIXME:
426+
# if the release still has the CVE, then there is no use if we updated to it?
428427
# shouldn't we check for CVEs of my_version and then check whether the new one still has them?
429428
# -- so, this has to be reworked in a major way, but for the time being, just emit an INFO
430429
# (unfortunately, the cluster name is not available here)
431-
logger.info(
430+
logger.warning(
432431
"Consider updating from %s to %s to avoid a CVE",
433432
my_version,
434433
release.version,
435434
)
435+
if release.age > CVE_VERSION_CADENCE:
436+
return False
436437
return True
437438

438439

Tests/kaas/k8s-version-policy/k8s_version_policy_test.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def release_data():
4545
EXPECTED_RECENCIES = {
4646
datetime(2024, 1, 17): True,
4747
datetime(2024, 1, 31): True,
48-
datetime(2024, 2, 1): False,
48+
datetime(2024, 2, 18): False,
4949
}
5050

5151

@@ -65,8 +65,11 @@ def test_check_version_recency_with_cve(caplog, release_data):
6565
# 2 days after release of patch for affected_version
6666
dt.now.return_value = datetime(2024, 1, 20)
6767
assert check_k8s_version_recency(affected_version, release_data, fake_ranges)
68-
assert len(caplog.records) == 1, "expected a log message"
69-
assert caplog.records[0].levelname == "INFO"
68+
# 2 weeks after the release
69+
dt.now.return_value = datetime(2024, 2, 1)
70+
assert not check_k8s_version_recency(affected_version, release_data, fake_ranges)
71+
assert len(caplog.records) >= 1, "expected a log message"
72+
assert caplog.records[0].levelname == "WARNING"
7073
assert "Consider updating from 1.28.5" in caplog.records[0].message
7174

7275

compliance-monitor/bootstrap.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ accounts:
3535
- public_key: "AAAAC3NzaC1lZDI1NTE5AAAAIF8kQx6ur/WSSY9ThK/mwhrl/VsYnjRk44GSXBy3VfKI"
3636
public_key_type: "ssh-ed25519"
3737
public_key_name: "primary"
38-
- subject: focis
38+
- subject: cah-dd8a
3939
delegates:
4040
- zuul_ci
4141
api_keys:

compliance-monitor/templates/overview.md.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ Version numbers are suffixed by a symbol depending on state: * for _draft_, †
2424
| [CNDS](https://cnds.io/) | Public cloud for customers (2 regions) | artcodix GmbH |
2525
{#- #} [{{ results | pick(iaas, 'artcodix', 'artcodix-ro') | summary }}]({{ detail_url('group-artcodix', iaas) }}) {# -#}
2626
| [HM](https://ohm.muc.cloud.cnds.io/) |
27-
| FOCIS | ALASCA community environment for [FOCIS](https://alasca.cloud/focis/) | Cloud&Heat Technologies GmbH |
28-
{#- #} [{{ results | pick(iaas, 'focis') | summary }}]({{ detail_url('focis', iaas) }}) {# -#}
27+
| [Cloud&Heat IaaS](https://www.cloudandheat.com/en/products/cloud-services/infrastructure-as-a-service/) | Public cloud for customers (1 SCS region) | Cloud&Heat Technologies GmbH |
28+
{#- #} [{{ results | pick(iaas, 'cah-dd8a') | summary }}]({{ detail_url('cah-dd8a', iaas) }}) {# -#}
2929
| n/a |
3030
| [pluscloud open](https://www.plusserver.com/en/products/pluscloud-open) | Public cloud for customers (4 regions) | plusserver GmbH | {# #}
3131
{#- #}[{{ results | pick(iaas, 'pco-prod1', 'pco-prod2', 'pco-prod3', 'pco-prod4') | summary }}]({{ detail_url('group-pco-prod', iaas) }}) {# -#}

playbooks/clouds.yaml.j2

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ clouds:
3737
auth_url: https://api.cc.rrze.de:5000
3838
application_credential_id: "{{ clouds_conf.cc_rrze_ac_id }}"
3939
application_credential_secret: "{{ clouds_conf.cc_rrze_ac_secret }}"
40-
focis:
40+
cah-dd8a:
4141
region_name: "dd8a"
4242
interface: "public"
4343
identity_api_version: 3
4444
auth_type: "v3applicationcredential"
4545
auth:
4646
auth_url: https://identity.dd8a.cloudandheat.com:443/v3/
47-
application_credential_id: "{{ clouds_conf.focis_ac_id }}"
48-
application_credential_secret: "{{ clouds_conf.focis_ac_secret }}"
47+
application_credential_id: "{{ clouds_conf.cah_dd8a_ac_id }}"
48+
application_credential_secret: "{{ clouds_conf.cah_dd8a_ac_secret }}"
4949
pco-prod1:
5050
region_name: "prod1"
5151
interface: "public"

0 commit comments

Comments
 (0)