|
1 | | -Icinga Director |
2 | | -=============== |
| 1 | +# Linuxfabrik Fork of the Icinga Director |
3 | 2 |
|
4 | | -Icinga Director has been designed to make Icinga 2 configuration handling easy. |
5 | | -It tries to target two main audiences: |
| 3 | +## Motivation - Why we forked |
6 | 4 |
|
7 | | -* Users with the desire to completely automate their datacenter |
8 | | -* Sysops willing to grant their "point & click" users a lot of flexibility |
| 5 | +Have a look at the [previous version](https://github.com/Linuxfabrik/icingaweb2-module-director/blob/feature/uuid-baskets/README.md) for our initial motivation. |
9 | 6 |
|
10 | | -What makes Icinga Director so special is the fact that it tries to target both |
11 | | -of them at once. |
| 7 | +Fortunately, we had the possibility to work together with Icinga to integrate most of our changes into the master branch of the official Icinga Director. |
| 8 | +However, we are still missing one feature that we need for our deployments: Automatic renaming of applied custom variables. |
12 | 9 |
|
13 | | - |
| 10 | +## Features |
14 | 11 |
|
15 | | -Read more about Icinga Director in our [Introduction](doc/01-Introduction.md) section. |
16 | | -Afterwards, you should be ready for [getting started](doc/04-Getting-started.md). |
| 12 | +This version of our fork: |
17 | 13 |
|
18 | | -Documentation |
19 | | -------------- |
| 14 | +* is based on the official master branch (commit [35e90f7b6008075bb6d61a55fe12988df3c8b5c7](https://github.com/Icinga/icingaweb2-module-director/tree/35e90f7b6008075bb6d61a55fe12988df3c8b5c7)) |
| 15 | +* automatically renames applied related vars during basket imports. Have a look at [Testing](#Testing) for details. |
| 16 | +* fixes https://github.com/Icinga/icingaweb2-module-director/issues/2725 |
| 17 | +* fixes https://github.com/Icinga/icingaweb2-module-director/issues/2734 |
| 18 | +* makes the MySQL migrations "nicer" - they do not fail if the uuid columns already exist (making migrations easier) |
20 | 19 |
|
21 | | -Please have a look at our [Installation instructions](doc/02-Installation.md) |
22 | | -and our hints for how to apply [Upgrades](doc/05-Upgrading.md). We love automation |
23 | | -and in case you also do so, the [Automation chapter](doc/03-Automation.md) could |
24 | | -be worth a read. When upgrading, you should also have a look at our [Changelog](doc/82-Changelog.md). |
25 | 20 |
|
26 | | -You could be interested in understanding how the [Director works](doc/10-How-it-works.md) |
27 | | -internally. [Working with agents](doc/24-Working-with-agents.md) is a topic that |
28 | | -affects many Icinga administrators. Other interesting entry points might be |
29 | | -[Import and Synchronization](doc/70-Import-and-Sync.md), our [CLI interface](doc/60-CLI.md), |
30 | | -the [REST API](doc/70-REST-API.md) and last but not least our [FAQ](doc/80-FAQ.md). |
| 21 | +## Installation |
31 | 22 |
|
32 | | -A complete list of all our documentation can be found in the [doc](doc/) directory. |
| 23 | +Follow the [installation instructions](doc/02-Installation.md.d/From-Source.md). |
33 | 24 |
|
34 | | -Contributing |
35 | | ------------- |
| 25 | +Migrating from [Linuxfabrik fork v1.8.1 or lower](https://git.linuxfabrik.ch/linuxfabrik/icingaweb2-module-director): |
| 26 | +* Important: Disable the Director module in IcingaWeb2 before installing this fork. |
| 27 | +* Install this fork. |
| 28 | +* Apply the required SQL migrations: |
| 29 | +```bash |
| 30 | +mysql -p -u root icinga_director < schema/guids2uuids-migration.sql |
| 31 | +``` |
| 32 | +* Enable the Director. |
36 | 33 |
|
37 | | -Icinga Director is an Open Source project and lives from your contributions. No |
38 | | -matter whether these are feature requests, issues, translations, documentation |
39 | | -or code. |
| 34 | +Migrating from v1.10.2+ or [Linuxfabrik fork v1.10.2.2023020901](https://git.linuxfabrik.ch/linuxfabrik/icingaweb2-module-director): |
| 35 | +* Install this fork. |
| 36 | +* Use DB-Migrations offered in IcingaWeb2. |
40 | 37 |
|
41 | | -* Please check whether a related issue already exists on our [Issue Tracker](https://github.com/Icinga/icingaweb2-module-director/issues) |
42 | | -* Make sure your code conforms to the [PSR-2: Coding Style Guide](http://www.php-fig.org/psr/psr-2/) |
43 | | -* [Unit-Tests](doc/93-Testing.md) would be great |
44 | | -* Send a [Pull Request](https://github.com/Icinga/icingaweb2-module-director/pulls) |
45 | 38 |
|
46 | | -Addons |
47 | | ------- |
| 39 | +## Known limitations |
48 | 40 |
|
49 | | -The following are to be considered community-supported modules, as they are not |
50 | | -supported by the Icinga Team. At least not yet. But please give them a try if |
51 | | -they fit your needs. They are being used in productive environments: |
| 41 | +* Since the fork is based on the master branch instead of a full release, there are still some open upstream bugs to be expected. |
| 42 | +* DataFields: Renaming or removing an entry will only rename/remove the entry in the datalist, not the applied variables on other objects such as hosts or services. |
| 43 | +* The fork is not tested with [Configuration Branches for Icinga Director](https://icinga.com/docs/icinga-director-branches/latest/). |
52 | 44 |
|
53 | | -* [AWS - Amazon Web Services](https://github.com/Icinga/icingaweb2-module-aws): |
54 | | - provides an Import Source for Autoscaling Groups on AWS |
55 | | -* [File-Shipper](https://github.com/Icinga/icingaweb2-module-fileshipper): |
56 | | - allows Director to ship additional config files with manual config with its |
57 | | - deployments |
58 | | -* [PuppetDB](https://github.com/Icinga/icingaweb2-module-puppetdb): provides |
59 | | - an Import Source dealing with your PuppetDB |
60 | | -* [vSphere](https://github.com/Icinga/icingaweb2-module-vsphere): VMware vSphere |
61 | | - Import Source for Virtual Machines and Host Systems |
| 45 | + |
| 46 | +## Testing |
| 47 | + |
| 48 | +* Import [rename-related-vars1.json](https://github.com/Linuxfabrik/icingaweb2-module-director/blob/feature/basket-rename-vars/test/php/library/Director/Objects/json/rename-related-vars1.json) |
| 49 | +* Create a host which has the custom variable applied and contains a value: `icingacli director host create host1 --imports ___TEST___host_template1 --vars.___TEST___datafield1 'myvalue1'` |
| 50 | +* Import [rename-related-vars2.json](https://github.com/Linuxfabrik/icingaweb2-module-director/blob/feature/basket-rename-vars/test/php/library/Director/Objects/json/rename-related-vars2.json) |
| 51 | +* During this import the variable was renamed from `___TEST___datafield1` to `___TEST___datafield1-renamed`. |
| 52 | +* Make sure that the applied variable on the host is also renamed: `icingacli director host show host1` |
0 commit comments