Skip to content

Commit 5de7a84

Browse files
committed
Merge branch 'improvement/1034-calico37' into q/2.0
2 parents 6e8d19e + 476fe52 commit 5de7a84

File tree

10 files changed

+918
-425
lines changed

10 files changed

+918
-425
lines changed

buildchain/buildchain/image.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,17 @@ def task__image_build() -> Iterator[types.TaskDict]:
104104
registry='calico',
105105
name='calico-node',
106106
remote_name='node',
107-
version='3.5.1',
108-
digest='sha256:5baaa4795256e4f14c03fdccc534d46c2d7ff3ac84e748bacf88b1fa8c25d952',
107+
version='3.7.2',
108+
digest='sha256:8b565422f4cabd9652e0e912f3ea8707734cbc69f5835642f094d1ed0a087d5b',
109+
destination=ISO_IMAGE_ROOT,
110+
task_dep=['_image_mkdir_root'],
111+
),
112+
targets.RemoteImage(
113+
registry='calico',
114+
name='calico-kube-controllers',
115+
remote_name='kube-controllers',
116+
version='3.7.2',
117+
digest='sha256:d5533cb8df6150123cad26e369383a3e665c5e376f8c9dd7d80a8c86fa907e7c',
109118
destination=ISO_IMAGE_ROOT,
110119
task_dep=['_image_mkdir_root'],
111120
),

buildchain/buildchain/packaging.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def task__build_repositories() -> Iterator[types.TaskDict]:
142142
)
143143

144144

145-
CALICO_CNI_PLUGIN_VERSION : str = '3.5.1'
145+
CALICO_CNI_PLUGIN_VERSION : str = '3.7.2'
146146
# Packages per repository.
147147
PACKAGES : Dict[str, Tuple[targets.Package, ...]] = {
148148
'scality': (

buildchain/buildchain/salt_tree.py

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def task__deploy_salt_tree() -> Iterator[types.TaskDict]:
133133
Path('salt/metalk8s/kubernetes/cni/calico/deployed.sls'),
134134
Path('salt/metalk8s/kubernetes/cni/calico/init.sls'),
135135
Path('salt/metalk8s/kubernetes/cni/calico/installed.sls'),
136+
Path('salt/metalk8s/kubernetes/cni/calico/upgraded.sls'),
136137
Path('salt/metalk8s/kubernetes/cni/loopback/configured.sls'),
137138
Path('salt/metalk8s/kubernetes/cni/loopback/init.sls'),
138139
Path('salt/metalk8s/kubernetes/cni/loopback/installed.sls'),

buildchain/buildchain/targets/directory.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ def task(self) -> types.TaskDict:
4040

4141
@staticmethod
4242
def _run(directory: Path) -> None:
43-
directory.mkdir()
43+
directory.mkdir(exist_ok=True)

packages/calico-cni-plugin.spec

+6-3
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
%ifarch x86_64
88
%global built_arch amd64
9-
%global calico_sha256 7032dc23d13ec1fa1c9f12c1cd7069e78b5fc563d9ae91457c6602496664e57d
10-
%global calico_ipam_sha256 cf6a6a106ae39c7ba309b22045f62c17ec94882a5ed1a07ab5a8dfb05b157979
9+
%global calico_sha256 b6d62e37d0609ae3c46d2318f8faf4c83900b6da1e459df6305e4ab54860b6a1
10+
%global calico_ipam_sha256 20a84a81836946530b5927d6d61dc3d14d335bcff3e7dfa6f140ac40f41e6c4a
1111
%endif
1212

1313
Name: calico-cni-plugin
14-
Version: 3.5.1
14+
Version: 3.7.2
1515
Release: 1%{?dist}
1616
Summary: Calico CNI plugin
1717

@@ -49,6 +49,9 @@ install -p -m 755 %{SOURCE2} %{buildroot}/opt/cni/bin/calico-ipam
4949
%doc README.md
5050

5151
%changelog
52+
* Fri May 10 2019 Nicolas Trangez <[email protected]> - 3.7.2-1
53+
- Version bump
54+
5255
* Thu Feb 14 2019 Nicolas Trangez <[email protected]> - 3.5.1-1
5356
- Version bump
5457

salt/_renderers/metalk8s_kubernetes.py

+94-4
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,100 @@ def register(f):
6161

6262

6363
@handle('v1', 'ServiceAccount')
64-
def _handle_v1_serviceaccount(obj):
64+
def _handle_v1_serviceaccount(obj, kubeconfig, context):
6565
return {
6666
'metalk8s_kubernetes.serviceaccount_present': [
6767
{'name': obj['metadata']['name']},
68+
{'kubeconfig': kubeconfig},
69+
{'context': context},
6870
{'namespace': obj['metadata']['namespace']},
6971
],
7072
}
7173

7274

75+
@handle('v1', 'ConfigMap')
76+
def _handle_v1_configmap(obj, kubeconfig, context):
77+
return {
78+
'metalk8s_kubernetes.configmap_present': [
79+
{'name': obj['metadata']['name']},
80+
{'kubeconfig': kubeconfig},
81+
{'context': context},
82+
{'namespace': obj['metadata']['namespace']},
83+
{'data': obj['data']},
84+
],
85+
}
86+
87+
88+
@handle('apiextensions.k8s.io/v1beta1', 'CustomResourceDefinition')
89+
def _handle_apiextensions_v1beta1_customresourcedefinition(
90+
obj, kubeconfig, context):
91+
return {
92+
'metalk8s_kubernetes.customresourcedefinition_present': [
93+
{'name': obj['metadata']['name']},
94+
{'kubeconfig': kubeconfig},
95+
{'context': context},
96+
{'spec': obj['spec']},
97+
],
98+
}
99+
100+
101+
@handle('rbac.authorization.k8s.io/v1beta1', 'ClusterRole')
102+
def _handle_rbac_v1beta1_clusterrole(obj, kubeconfig, context):
103+
return {
104+
'metalk8s_kubernetes.clusterrole_present': [
105+
{'name': obj['metadata']['name']},
106+
{'kubeconfig': kubeconfig},
107+
{'context': context},
108+
{'rules': obj['rules']},
109+
],
110+
}
111+
112+
113+
@handle('rbac.authorization.k8s.io/v1beta1', 'ClusterRoleBinding')
114+
def _handle_rbac_v1beta1_clusterrolebinding(obj, kubeconfig, context):
115+
return {
116+
'metalk8s_kubernetes.clusterrolebinding_present': [
117+
{'name': obj['metadata']['name']},
118+
{'kubeconfig': kubeconfig},
119+
{'context': context},
120+
{'role_ref': obj['roleRef']},
121+
{'subjects': obj['subjects']},
122+
],
123+
}
124+
125+
126+
@handle('extensions/v1beta1', 'DaemonSet')
127+
def _handle_extensions_v1beta1_daemonset(obj, kubeconfig, context):
128+
return {
129+
'metalk8s_kubernetes.daemonset_present': [
130+
{'name': obj['metadata']['name']},
131+
{'kubeconfig': kubeconfig},
132+
{'context': context},
133+
{'namespace': obj['metadata']['namespace']},
134+
{'metadata': obj['metadata']},
135+
{'spec': obj['spec']},
136+
],
137+
}
138+
139+
140+
@handle('extensions/v1beta1', 'Deployment')
141+
def _handle_extensions_v1beta1_deployment(obj, kubeconfig, context):
142+
return {
143+
'metalk8s_kubernetes.deployment_present': [
144+
{'name': obj['metadata']['name']},
145+
{'kubeconfig': kubeconfig},
146+
{'context': context},
147+
{'namespace': obj['metadata']['namespace']},
148+
{'metadata': obj['metadata']},
149+
{'spec': obj['spec']},
150+
],
151+
}
152+
153+
73154
del handle
74155

75156

76-
def _step(obj):
157+
def _step(obj, kubeconfig=None, context=None):
77158
'''
78159
Handle a single Kubernetes object, rendering it into a state 'step'
79160
'''
@@ -85,15 +166,24 @@ def _step(obj):
85166
if not handler:
86167
raise ValueError('No handler for {}/{}'.format(api_version, kind))
87168

88-
state = handler(obj)
169+
state = handler(obj, kubeconfig=kubeconfig, context=context)
89170

90171
return (name, state)
91172

92173

93174
def render(yaml_data, saltenv='', sls='', **kwargs):
175+
args = six.moves.urllib.parse.parse_qs(kwargs.get('argline', ''))
176+
177+
kubeconfig = args.get('kubeconfig', [None])[0]
178+
context = args.get('context', [None])[0]
179+
94180
if not isinstance(yaml_data, six.string_types):
95181
yaml_data = yaml_data.read()
96182

97183
data = yaml.load_all(yaml_data, Loader=salt.utils.yaml.SaltYamlSafeLoader)
98184

99-
return OrderedDict(_step(obj) for obj in data if obj)
185+
return OrderedDict(
186+
_step(obj, kubeconfig=kubeconfig, context=context)
187+
for obj in data
188+
if obj
189+
)

salt/metalk8s/kubernetes/cni/calico/configured.sls

+2-3
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ Create CNI calico configuration file:
3333
- type: "calico"
3434
log_level: "info"
3535
datastore_type: "kubernetes"
36-
nodename: {{ salt['network.get_hostname']() }}
36+
nodename: {{ grains.id }}
3737
mtu: 1440
3838
ipam:
39-
type: "host-local"
40-
subnet: "usePodCidr"
39+
type: "calico-ipam"
4140
policy:
4241
type: "k8s"
4342
kubernetes:

0 commit comments

Comments
 (0)