Skip to content

Commit e2d7e97

Browse files
committed
Merge branch 'improvement/1059-signing-policies-in-pillar' into q/2.0
2 parents f115abd + a280118 commit e2d7e97

File tree

7 files changed

+48
-82
lines changed

7 files changed

+48
-82
lines changed

pillar/metalk8s/roles/ca.sls

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,40 @@ mine_functions:
1414
kubernetes_sa_pub_key_b64:
1515
mine_function: hashutil.base64_encodefile
1616
fname: /etc/kubernetes/pki/sa.pub
17+
18+
x509_signing_policies:
19+
kube_apiserver_client_policy:
20+
- minions: '*'
21+
- signing_private_key: /etc/kubernetes/pki/ca.key
22+
- signing_cert: /etc/kubernetes/pki/ca.crt
23+
- keyUsage: critical digitalSignature, keyEncipherment
24+
- extendedKeyUsage: clientAuth
25+
- days_valid: 365
26+
kube_apiserver_server_policy:
27+
- minions: '*'
28+
- signing_private_key: /etc/kubernetes/pki/ca.key
29+
- signing_cert: /etc/kubernetes/pki/ca.crt
30+
- keyUsage: critical digitalSignature, keyEncipherment
31+
- extendedKeyUsage: serverAuth
32+
- days_valid: 365
33+
etcd_client_policy:
34+
- minions: '*'
35+
- signing_private_key: /etc/kubernetes/pki/etcd/ca.key
36+
- signing_cert: /etc/kubernetes/pki/etcd/ca.crt
37+
- keyUsage: critical digitalSignature, keyEncipherment
38+
- extendedKeyUsage: clientAuth
39+
- days_valid: 365
40+
etcd_server_client_policy:
41+
- minions: '*'
42+
- signing_private_key: /etc/kubernetes/pki/etcd/ca.key
43+
- signing_cert: /etc/kubernetes/pki/etcd/ca.crt
44+
- keyUsage: critical digitalSignature, keyEncipherment
45+
- extendedKeyUsage: serverAuth, clientAuth
46+
- days_valid: 365
47+
front_proxy_client_policy:
48+
- minions: '*'
49+
- signing_private_key: /etc/kubernetes/pki/front-proxy-ca.key
50+
- signing_cert: /etc/kubernetes/pki/front-proxy-ca.crt
51+
- keyUsage: critical digitalSignature, keyEncipherment
52+
- extendedKeyUsage: clientAuth
53+
- days_valid: 365

pillar/top.sls.in

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{%- set version = "@@VERSION" -%}
2-
{%- set roles = ['bootstrap', 'ca', 'etcd', 'master', 'node'] -%}
2+
{%- set roles = ['bootstrap', 'etcd', 'master', 'node'] -%}
33

44
# The mechanics of this file are very similar to those of `salt/top.sls(.in)`.
55
# Please refer to the comments in that file for more background.
@@ -26,6 +26,11 @@ metalk8s-{{ version }}:
2626
- match: compound
2727
- metalk8s.roles.minion
2828

29+
# Specific case for ca as we need signing_policy at the very beginning
30+
I@metalk8s:ca:minion:{{ grains.id }}:
31+
- match: compound
32+
- metalk8s.roles.ca
33+
2934
{% for role in roles %}
3035
{{ version_match }} and {{ role_match(role) }}:
3136
- match: compound

salt/metalk8s/kubernetes/ca/etcd/installed.sls

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
33
include:
44
- metalk8s.internal.m2crypto
5-
- metalk8s.salt.minion.running
65
76
Create etcd CA private key:
87
x509.private_key_managed:
@@ -41,31 +40,3 @@ Advertise etcd CA certificate in the mine:
4140
- /etc/kubernetes/pki/etcd/ca.crt
4241
- watch:
4342
- x509: Generate etcd CA certificate
44-
45-
Create etcd CA salt signing policies:
46-
file.serialize:
47-
- name: /etc/salt/minion.d/30-metalk8s-etcd-ca-signing-policies.conf
48-
- user: root
49-
- group: root
50-
- mode: 644
51-
- makedirs: True
52-
- dir_mode: 755
53-
- formatter: yaml
54-
- dataset:
55-
x509_signing_policies:
56-
etcd_client_policy:
57-
- minions: '*'
58-
- signing_private_key: /etc/kubernetes/pki/etcd/ca.key
59-
- signing_cert: /etc/kubernetes/pki/etcd/ca.crt
60-
- keyUsage: "critical digitalSignature, keyEncipherment"
61-
- extendedKeyUsage: "clientAuth"
62-
- days_valid: {{ etcd.ca.signing_policy.days_valid }}
63-
etcd_server_client_policy:
64-
- minions: '*'
65-
- signing_private_key: /etc/kubernetes/pki/etcd/ca.key
66-
- signing_cert: /etc/kubernetes/pki/etcd/ca.crt
67-
- keyUsage: "critical digitalSignature, keyEncipherment"
68-
- extendedKeyUsage: "serverAuth, clientAuth"
69-
- days_valid: {{ etcd.ca.signing_policy.days_valid }}
70-
- watch_in:
71-
- cmd: Restart salt-minion

salt/metalk8s/kubernetes/ca/front-proxy/installed.sls

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
33
include:
44
- metalk8s.internal.m2crypto
5-
- metalk8s.salt.minion.running
65
76
Create front proxy CA private key:
87
x509.private_key_managed:
@@ -41,24 +40,3 @@ Advertise front proxy CA certificate in the mine:
4140
- /etc/kubernetes/pki/front-proxy-ca.crt
4241
- watch:
4342
- x509: Generate front proxy CA certificate
44-
45-
Create front proxy CA salt signing policies:
46-
file.serialize:
47-
- name: /etc/salt/minion.d/30-metalk8s-front-proxy-ca-signing-policies.conf
48-
- user: root
49-
- group: root
50-
- mode: 644
51-
- makedirs: True
52-
- dir_mode: 755
53-
- formatter: yaml
54-
- dataset:
55-
x509_signing_policies:
56-
front_proxy_client_policy:
57-
- minions: '*'
58-
- signing_private_key: /etc/kubernetes/pki/front-proxy-ca.key
59-
- signing_cert: /etc/kubernetes/pki/front-proxy-ca.crt
60-
- keyUsage: "critical digitalSignature, keyEncipherment"
61-
- extendedKeyUsage: "clientAuth"
62-
- days_valid: {{ front_proxy.ca.signing_policy.days_valid }}
63-
- watch_in:
64-
- cmd: Restart salt-minion

salt/metalk8s/kubernetes/ca/kubernetes/installed.sls

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
33
include:
44
- metalk8s.internal.m2crypto
5-
- metalk8s.salt.minion.running
65
76
Create CA private key:
87
x509.private_key_managed:
@@ -41,31 +40,3 @@ Advertise CA certificate in the mine:
4140
- /etc/kubernetes/pki/ca.crt
4241
- watch:
4342
- x509: Generate CA certificate
44-
45-
Create CA salt signing_policies:
46-
file.serialize:
47-
- name: /etc/salt/minion.d/30-metalk8s-ca-signing-policies.conf
48-
- user: root
49-
- group: root
50-
- mode: 644
51-
- makedirs: True
52-
- dir_mode: 755
53-
- formatter: yaml
54-
- dataset:
55-
x509_signing_policies:
56-
kube_apiserver_server_policy:
57-
- minions: '*'
58-
- signing_private_key: /etc/kubernetes/pki/ca.key
59-
- signing_cert: /etc/kubernetes/pki/ca.crt
60-
- keyUsage: "critical digitalSignature, keyEncipherment"
61-
- extendedKeyUsage: "serverAuth"
62-
- days_valid: {{ ca.signing_policy.days_valid }}
63-
kube_apiserver_client_policy:
64-
- minions: '*'
65-
- signing_private_key: /etc/kubernetes/pki/ca.key
66-
- signing_cert: /etc/kubernetes/pki/ca.crt
67-
- keyUsage: "critical digitalSignature, keyEncipherment"
68-
- extendedKeyUsage: "clientAuth"
69-
- days_valid: {{ ca.signing_policy.days_valid }}
70-
- watch_in:
71-
- cmd: Restart salt-minion

salt/metalk8s/salt/minion/configured.sls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ Remove minion local conf:
2525
- name: /etc/salt/minion.d/99-file-client-local.conf
2626
- require:
2727
- file: Configure salt minion
28-
- service: Ensure salt-minion running
28+
- module: Ensure salt-minion running

salt/metalk8s/salt/minion/running.sls

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@ Ensure salt-minion running:
1616
- enable: True
1717
- require:
1818
- module: Wait until salt-minion restarted
19+
module.run:
20+
- test.ping: []
21+
- require:
22+
- service: Ensure salt-minion running

0 commit comments

Comments
 (0)