summaryrefslogtreecommitdiffstats
path: root/config
AgeCommit message (Collapse)AuthorFilesLines
2018-03-03[fuel] Fix missing space between yaml key:valAlexandru Avadanii1-1/+1
Change-Id: Icf0e5d386f593bb691f777704ac799c8729221ce Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-03-02generate_config: New `-b` arg for batch processingAlexandru Avadanii1-14/+32
Sometimes, parsing multiple j2 templates based on the same PDF+IDF is needed, in which case we'd have to call generate_config once for each template. Add a new argument, `-b`, which allows batch processing of multiple templates in one go: - files ending in '.j2' (e.g. 'template.yml.j2') will be expanded to a file without the '.j2' suffix in the same directory as the source template (e.g. 'template.yml'); - templates not ending in '.j2' are skipped in batch mode; - in order to pass multiple templates, `-j` argument can now be passed multiple times, similar to `-i`; - although relative filepaths still work, it is highly recommended to use the full path (abspath) for j2 templates; - to avoid filename collisions, j2 parser will open '/' (as well as any directories specified via `-i`) and lookup each j2 template by its full path; Add a new argument, `-v` for verbose logging. While at it, import only needed functions from 'os.path' to make our code more compact and easier to read. Change-Id: I2291935d42e4196813cd75154d5b674bcc330183 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-03-02Merge "config/utils: YAML: Use C bindings if available"Alexandru Avadanii2-11/+16
2018-03-01generate_config: New `-i` arg for j2 includes dirAlexandru Avadanii1-1/+2
jinja2 does not support imports from parent directories, so in order for j2 to be able to use '{% from <some>.j2 import ... %}' constructs with included j2 residing on a separate dirpath than current j2, add support for explicitly adding directories to the templater search path. This also allows calling generate_config with only file basename as '-j' arg value, as long as the dirname is passed via '-i' (can be extended later to parsing multiple j2 files at once). Change-Id: I943fda9262a6f7de5ee6fcc3e7bc9828c339651a Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-03-01generate_config: Enable 'do' j2 extensionAlexandru Avadanii1-1/+4
'do' is useful to avoid hacks like {% set _ = x.update(...) %}. Instead: {% do x.update(...) %}. [1] http://jinja.pocoo.org/docs/2.10/extensions/ Change-Id: I886beb97e0383ba11b81aa21cf12b11ebc4b05b2 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-03-01config/utils: YAML: Use C bindings if availableAlexandru Avadanii2-11/+16
Time diff before/after this change for the same template via generate_config expansion: -user 0m0.144s +user 0m0.096s Change-Id: Id574afcd8a74a530d791ebed8b72ccae53703611 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-02-26[fuel] Improved IP handling on config templateGuillermo Herrero1-137/+137
-New IP addressing. Starts on lower available addresses for better compatibilty for small networks. IPs assigned secuentially and independently on each network. -Switched to advanced IP generation filters. Defined integers are no longer end of the IP address part but host order on the IP network. -Dynamic generation of compute nodes JIRA:FUEL-335 Change-Id: Ie95b83af64cb21ba27749d5f5d1506bfbc9ddf15 Signed-off-by: Guillermo Herrero <guillermo.herrero@enea.com>
2018-02-23[fuel] IDF: Add DPDK parameters supportCristina Pauna1-0/+55
In order to enable DPDK for OVS scenarios in Armband, we need DPDK specific configuration to be parameterizable. The default DPDK configuration values will remain in Fuel repo and will be overriden with the values defined in IDF (only if present). Since hugepage config and CPU pinning also apply to non-DPDK scenarios, handle them together for 'common', respectively 'dpdk'. To keep things simple, we will reuse the format expected by Fuel's reclass model, so we can pass the whole config block as-is. - IDF schema: fuel: Add strict checking of new block's structure, while allowing the rvalues to be more or less freestyle; - arm-pod6 IDF: Add initial config block implementation; JIRA: ARMBAND-342 Change-Id: I9224f06bb6b9fb2387414eb2a1be35461c27fb99 Signed-off-by: Cristina Pauna <cristina.pauna@enea.com>
2018-02-22gen_config_lib: Add storage_size_num filterAlexandru Avadanii1-0/+19
New filter for converting PDF disk_capacity strings into a numeric only string (to bypass scientific notation), parsable as float. Change-Id: I779bec7db03ef1b3ce1bfd6ca239a3e7b4021eb2 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-02-20generate_config: Move filters to external libraryGuillermo Herrero2-43/+212
Clean and isolate main script logic from custom filters by moving all them to a external library file. Library has a function to load all the existing filters at once. New enhanced IP handling custom filters: - ipnet_hostaddr - ipnet_hostmin - ipnet_hostmax - ipnet_broadcast - ipnet_netmask - ipnet_contains_ip - ipnet_contains_iprange - ipnet_range_size ipnet filters work with proper IP network with prefixlen mask, ensuring consistent IP calculations and error handling. Previous IP handling filters should be deprecated. Change-Id: I83c41d7ad3c6bd1d9df1deca6cc5b9d2481ecf52 Signed-off-by: Guillermo Herrero <guillermo.herrero@enea.com>
2018-02-16Configure stacklight IP addressesDelia Popescu1-0/+13
Related to: https://gerrit.opnfv.org/gerrit/#/c/52043/ Change-Id: I8378070f9efedc24229efc3c3d5542b62808e1e6 Signed-off-by: Delia Popescu <delia.popescu@enea.com>
2018-02-05[IDF] Schema: Add OSA installer stubs6.0.0Alexandru Avadanii1-11/+21
While at it, order installers by name in IDF schema. Change-Id: I4bf1dd047a3f7a64b8bc928951fc18c4728a9b68 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-02-01[fuel] pod_config: Consume newly added MaaS propsAlexandru Avadanii1-0/+11
Change-Id: I23446e82dd148afd14d56717dd35fe0ee271d971 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-02-01[fuel] Allow MaaS timeout config via IDFAlexandru Avadanii1-0/+9
MaaS timeouts should be configurable on per-POD basis, since nodes in some labs take longer to comission/deploy than our default values. IDF SCHEMA: - add new properties to Fuel IDF section; Change-Id: Ife5ff85faeae683a8c1781cae8b29f09c1f07b82 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-30Merge changes from topics 'fuel-netmap', 'fix-check-jinja'Alexandru Avadanii4-57/+91
* changes: [fuel] Add net_map.j2 for net config abstraction [fuel] Explicitly blacklist incompatible labs [IDF] Add optional 'idf.installer' array
2018-01-29Merge "[fuel] Update IA for vPDF support"Alexandru Avadanii1-3/+9
2018-01-28[fuel] Add net_map.j2 for net config abstractionAlexandru Avadanii1-0/+47
This will be leveraged by other j2 templates in Fuel to construct scenario-specific network config files. Change-Id: Iba1fd99b23936fe42abe16af3cd80dce2a63d997 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-28[fuel] Explicitly blacklist incompatible labsAlexandru Avadanii1-42/+29
Previously, we used to silently refuse to construct 'pod_config' for PODs missing mandatory PDF/IDF configuration; and instead generated an empty output YAML. Retire safety checks in Fuel IA and explicitly blacklist Fuel via new 'idf.installer' where appropiate. The following PODs do not yet support Fuel due to missing 'idf.fuel': - ericsson-pod2 - huawei-pod1 - intel-pod18 - nokia-pod1 - zte-pod2 - zte-pod3 Change-Id: Ief62d62f99a79187303e3f15b83030289e5efdcb Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-28[IDF] Add optional 'idf.installer' arrayAlexandru Avadanii2-15/+15
There is no easy way to determine automatically if a PDF/IDF set is compatible with a specific installer adapter. Most common incompatibilities are caused by: - installer adapters hardcode more network ports than nodes have defined in PDF; - installer adapters hardcode more nodes than PDF defines; Previous attempt at handling this dynamically (cd54edf) fails for recently added PODs, so let's handle this explicitly per-pod via a new optional IDF property, 'idf.installer'. If 'idf.installer' is defined, it will be used by `check-jinja2.sh` as a filter-in list of installer adapters to check against. The default (no 'idf.installer' present) is to check all IAs. Leverage the new property for: - arm-pod5: not enough network ports on computes for Compass, Joid; - arm-pod7: same as arm-pod5; - bii-pod1: no 'storage' network defined in IDF for Daisy; - zte-pod9: 3 cluster nodes are only supported by Daisy for now; SPEC changes: - net_config (previously mandatory for IDF version '0.1') is now mandatory only if 'idf.fuel' or 'idf.daisy' is defined; Fixes: cd54edf Change-Id: I706c05519e5491ad631069d7cc090e9c8bfd3011 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-28[fuel] Update IA for vPDF supportAlexandru Avadanii1-3/+9
- move gtw tenant addrs from {6,7,9} to {124,125,126} (e.g. 10.0.1.6 -> 10.0.1.124 for ericsson-virtual* PODs); - add gtw external (public) addresses, e.g. 10.16.0.124; - add ctl external (public) addresses, e.g. 10.16.0.11; JIRA: FUEL-322 Change-Id: Ice73aa3985831dca7427e496850d0865db71477e Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-28[daisy] network template: Fix set inside loopAlexandru Avadanii1-1/+2
Previous implementation fails in older versions of py-jinja2. See related bug reports [1, 2]. Since `networks.update` on its own is enough, stop assigning its result back to 'networks'. [1] https://github.com/pallets/jinja/issues/641 [2] https://github.com/pallets/jinja/issues/164 Change-Id: I303388223bdec9ae43e49d988aee41b5b47c1562 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-28Merge "[joid] Refresh installer adapter for Pike"Alexandru Avadanii1-4/+4
2018-01-28Merge "[daisy] Use jump remote_management params"Alexandru Avadanii1-1/+1
2018-01-28Merge "[compass4nfv] Use jump remote_management params"Alexandru Avadanii8-32/+32
2018-01-28Merge "[joid] Use node remote_management params"Alexandru Avadanii1-15/+15
2018-01-26generate_config: Check yaml arg is really a fileAlexandru Avadanii1-1/+1
In order to support bash process substition, e.g. $ ./generate_config.py -j /path/to/template.j2 -y <(echo stuff); do not consume the contents of ARGS.yaml unless it is a file. Change-Id: I89053cfaadc158f6a15f85836892b21980081772 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-25[compass4nfv] Use jump remote_management paramsAlexandru Avadanii8-32/+32
Stop relying on 'remote_params' optional YAML anchor. Change-Id: I8d967b767cf66b298a651306c9bcc91cc9acb0a6 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-25[joid] Refresh installer adapter for PikeAlexandru Avadanii1-4/+4
Change-Id: I4e4960a772fcd5ae32e34c9bf375ed78e3a30311 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-25[joid] Use node remote_management paramsAlexandru Avadanii1-15/+15
Previously, we relied on jumpserver IPMI user/pass/type to be the same for all nodes (including jumpserver). Instead, read node-specific params and stop relying on 'remote_params' optional YAML anchor. Change-Id: Ia8925261bc8242cbfd195f1d09bb61121b3fdacf Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-25[daisy] Use jump remote_management paramsAlexandru Avadanii1-1/+1
Stop relying on 'remote_params' optional YAML anchor. Change-Id: Ie5c563834cee19d676cc635c622ebbe8ffc0cc83 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-24Merge "[IDF] Add IDF schema validation based on version"Aric Gardner4-5/+133
2018-01-24Merge "[fuel] Get public pool parameters from idf.fuel"Alexandru Avadanii1-4/+12
2018-01-24[fuel] Get public pool parameters from idf.fuelGuillermo Herrero1-4/+12
Reads parameters from idf.fuel.config.public_pool start_ip and end_ip JIRA: FUEL-315 Change-Id: I4456b22bc21b20906f18953d80a57483fd6700bc Signed-off-by: Guillermo Herrero <guillermo.herrero@enea.com>
2018-01-24[IDF] Add IDF schema validation based on versionAlexandru Avadanii4-5/+133
- add basic structure for IDF schema validation; - fill in Fuel section; - add stub for Daisy section; - add stub for Compass section; - add stub for net_config; - enable IDF schema validation via `check-schema.sh`; - prepare for new IDF versions with different schemas, while allowing subsection schema reuse from IDF v0.1; - extend validate_schema.py for IDF; Change-Id: I59b1c9d857e9dee9e6ff9956e81b2ae6dc27a767 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-23Merge "[PDF] [SPEC] Add 'version: 1.0'"julien zhang5-136/+196
2018-01-22[fuel] Fix missing EOL after yaml doc startAlexandru Avadanii1-1/+1
Fixes: 4cef6b2 Change-Id: I628ce8da7e0959ff916082c1fc30934dca0d93dc Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-22[PDF] [SPEC] Add 'version: 1.0'Alexandru Avadanii5-136/+196
- add 'version: 1.0' to PDF spec; - add 'version: 1.0' to all existing lab PDFs; - extend schema with new property; - add workaround for value-based decision-making in schema version selection via `validate-template.py`; - add support for multiple schema versions; - add versions for all schema blocks defined so far; - fix PDF schema pattern for disk size decimals (e.g. '1.8T'); Change-Id: Ie8f768803ec19f1f9a7982fe5ca59df80764fc4a Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-22Merge "[PDF] check-jinja: Filter-out incompatible PDF/IA"Alexandru Avadanii1-0/+18
2018-01-22Merge "[fuel] Add support to use public net netmask from IDF"Alexandru Avadanii1-1/+7
2018-01-22Merge "generate_config: Add netmask jinja filter"Alexandru Avadanii1-0/+10
2018-01-22Merge "[apex] Use node remote_management params"Aric Gardner1-15/+15
2018-01-22Merge "check-jinja: Add optional filtering of test matrix"Alexandru Avadanii1-2/+11
2018-01-22Merge "[PDF] config: Add/update license headers"Aric Gardner23-18/+53
2018-01-20[fuel] Add proxy node management network VIPAlexandru Avadanii1-0/+1
Change-Id: I5fd74163cab8f6ee5f575ed72edfcc6919e60161 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-20[fuel] Update MaaS PXE configAlexandru Avadanii1-3/+3
- reduce DHCP range to silence a dummy MaaS warning about address exhaustion; - define PXE/admin address for Salt Master node; - drop obsolete opnfv_infra_maas_pxe_address; JIRA: FUEL-316 Change-Id: Ic946960aac3c09dbcfce005098a5fc97396da01e Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-19check-jinja: Add optional filtering of test matrixAlexandru Avadanii1-2/+11
When adding new PDFs, it is sometimes useful to check only the newly added PDF (or all the PDFs for a specific lab) against all or only some installer templates. Change-Id: I1d02943527597df1e1908a3ff4398bc398c887e7 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-19[fuel] Add support to use public net netmask from IDFGuillermo Herrero1-1/+7
- New reclass params for public network and public network mask - Network mask is converted from prefix format to reclass compatible IP format - New reclass params to set public pool ip range JIRA: FUEL-315 Change-Id: I30c5332b958796af5a10cd39c56ed5cf5800e029 Signed-off-by: Guillermo Herrero <guillermo.herrero@enea.com>
2018-01-19[apex] Use node remote_management paramsAlexandru Avadanii1-15/+15
Previously, we relied on jumpserver IPMI user/pass/type to be the same for all nodes (including jumpserver). Instead, read node-specific params and stop relying on 'remote_params' optional YAML anchor. Change-Id: Id64a0c4350481a6c81212a4559115bb9b1a0155e Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2018-01-18generate_config: Add netmask jinja filterGuillermo Herrero1-0/+10
- Add custom filter to convert integer prefix network mask to IP format network mask string Change-Id: I13d6a2725b93132f858b64d7f93de3a4e0dc5961 Signed-off-by: Guillermo Herrero <guillermo.herrero@enea.com>
2018-01-16Fix daisy gateway generated by PDFAlex Yang1-1/+1
Fixed_ips were removed from the PDF. So we need get gateway address from the 'interfaces'. Change-Id: Ie6adbf4ef3cbde05bb2fb114a58395dda8ae50fb Signed-off-by: Alex Yang <yangyang1@zte.com.cn>