Merge "[noha] ctl01: Enable jumbo frames"
[fuel.git] / mcp / patches / 0010-maas-region-allow-timeout-override.patch
1 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2 : Copyright (c) 2018 Mirantis Inc., Enea AB and others.
3 :
4 : All rights reserved. This program and the accompanying materials
5 : are made available under the terms of the Apache License, Version 2.0
6 : which accompanies this distribution, and is available at
7 : http://www.apache.org/licenses/LICENSE-2.0
8 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
9 From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
10 Date: Sat, 23 Sep 2017 02:03:01 +0200
11 Subject: [PATCH] maas: region: allow timeout override
12
13 Two changes are squashed into a single patch so we can test for
14 reverse-applying the cummulative diff.
15
16 1. Poor implementation that allows overiding comissioning/deploying
17 timeouts, which are hardcoded in MaaS source code.
18
19 Add the following reclass _param:
20 - opnfv_maas_timeout_comissioning;
21 - opnfv_maas_timeout_deploying;
22
23 The defaults are now 10/15 minutes (MaaS defaults to 20/40 min).
24
25 2. maas: region: interface: default mode DHCP
26
27 Switch MaaS interface mode default from AUTO to DHCP.
28 This way, MaaS will not statically assign IPs *outside* the dynamic
29 reserved range, but instead DHCP will assign them *inside* the range.
30
31 One alternative would be to handle this via API calls, for each
32 node's PXE physical interface, but that overcomplicates things.
33
34 3. MaaS blocksize: For some reason the python library behind tftp forces ip
35 blocksize to be 1008. We can force it to be 1464 and gain some performance due
36 to MTU beeing 1500 (i.e. allow bigger packets).
37
38
39 JIRA: FUEL-316
40
41 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
42 ---
43
44 diff --git a/maas/region.sls b/maas/region.sls
45 --- a/maas/region.sls
46 +++ b/maas/region.sls
47 @@ -19,6 +19,46 @@
48    - require:
49      - pkg: maas_region_packages
50
51 +maas_timeout_commissioning:
52 +  file.replace:
53 +    - name: "/usr/lib/python3/dist-packages/maasserver/node_status.py"
54 +    - pattern: '^(\s+NODE_STATUS.COMMISSIONING:)\s+\d+,$'
55 +    - repl: \1 {{ salt['pillar.get']('_param:opnfv_maas_timeout_comissioning', '20') }},
56 +    - require:
57 +      - pkg: maas_region_packages
58 +    - require_in:
59 +      - service: maas_region_services
60 +
61 +maas_timeout_deploying:
62 +  file.replace:
63 +    - name: "/usr/lib/python3/dist-packages/maasserver/node_status.py"
64 +    - pattern: '^(\s+NODE_STATUS.DEPLOYING:)\s+\d+,$'
65 +    - repl: \1 {{ salt['pillar.get']('_param:opnfv_maas_timeout_deploying', '40') }},
66 +    - require:
67 +      - pkg: maas_region_packages
68 +    - require_in:
69 +      - service: maas_region_services
70 +
71 +maas_ip_blksize_force:
72 +  file.replace:
73 +    - name: "/usr/lib/python3/dist-packages/tftp/bootstrap.py"
74 +    - pattern: 'int_blksize = min\(\(int_blksize, MAX_BLOCK_SIZE\)\)'
75 +    - repl: 'int_blksize = 1464'
76 +    - require:
77 +      - pkg: maas_region_packages
78 +    - require_in:
79 +      - service: maas_region_services
80 +
81 +maas_interface_default_mode_dhcp:
82 +  file.replace:
83 +    - name: "/usr/lib/python3/dist-packages/maasserver/models/node.py"
84 +    - pattern: '^(\s+INTERFACE_LINK_TYPE)\.AUTO'
85 +    - repl: \1.DHCP
86 +    - require:
87 +      - pkg: maas_region_packages
88 +    - require_in:
89 +      - service: maas_region_services
90 +
91  {%- if region.get('enable_iframe', False)  %}
92
93  /etc/apache2/conf-enabled/maas-http.conf: