Script to gracefully power off KVM instances
When a node is running KVM instances and that node is rebooted orshutdown, the gnt-noded daemon is finished and leaves the KVM instancesrunning. Latter on in the shutdown process, all remaining processesreceive SIGTERM as usual, meaning that the KVM instances are all...
design-2.3.rst: fix whitespace
Signed-off-by: Adeodato Simo <dato@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Group operations: expose add/remove/rename in RAPI
Group operations: CLI code for add/remove/rename a group
Also, minor update to the 2.3 design doc, which was indicating the removeoperation would be `gnt-group del` and not `gnt-group remove` (the latterbeing consistent with gnt-node and gnt-instance)....
Group operations: OpCode and LU for renaming a group
Group operations: OpCode and LU for removing a group
Group operations: OpCode and LU for adding a group
Querying node groups: RAPI support
This implements /groups and /groups/%s RAPI end points.
Signed-off-by: Adeodato Simo <dato@google.com>Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
RAPI: Implement OS parameters for instance reinstallation
Dictionaries are hard to encode into query strings, therefore the“/2/instances/[instance_name]/reinstall” resource is changed to acceptits parameters via the request body. The old query string parameters are...
Move “rapi_users” file into separate directory
This reduces the number of notifications in “ganeti-rapi”. Until now itwas notified for every change in …/lib/ganeti and had to check whetherthe users file was affected. A symlink is always created in cfgupgrade...
Added "vg" argument to the --disk syntax
Added "vg" argument to the "gnt-instance ... --disk" syntax specification.Now is ok to write:
gnt-instance add ... --disk N:size=NNg,vg=VG_NAME ...
But not all internal structures are ready to handle this yet....
Update query2 design document
While starting to implement this, I found a number of deficiencies:
- Drop regular expressions. As it turned out, only very few fields for instances used them, all of which can easily be turned into static field names.- Use two separate calls with a request and response description each....
RAPI: implement no_install during instance creation
Signed-off-by: Lance Albertson <ramereth@gmail.com>Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Iustin Pop <iustin@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Merge branch 'devel-2.3'
Fix documentation regarding conversion to drbd
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: René Nussbaumer <rn@google.com>
Remove last vestiges of docbook
This patch removes the last traces of docbook.
Design document for new query infrastructure
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: René Nussbaumer <rn@google.com>
Design Doc: Ganeti Node OOB Management Framework
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Make *.in non-executable
Add support and checks for version in LUXI
A new constant, LUXI_VERSION, is used to verify the peer's version. Theversion is optional, so old(er) clients and servers talking to peers notsupporting it won't break. Example with mismatching library:
$ gnt-instance list...
Update 2.3 design doc regarding node group features and behavior.
In particular:
- introduce a "gnt-group" command to hold group-level operations. - ditch the concept of "default node group", except for single-group clusters. - introduce an "alloc_policy" attribute for node groups, indicating...
Minor language fixes to the 2.3 design doc.
Signed-off-by: Balazs Lecz <leczb@google.com>[dato@google.com: extracted language fixes from bigger patch.]Signed-off-by: Adeodato Simo <dato@google.com>
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Add documentation about the capability flags
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Export a node's group information in iallocator
Export node group data in iallocator
devnotes.rst: Remove hardcoded Python version
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
ganeti-rapi: Watch directory, not file for user file changes
We noticed several issues when just watching the file, among them raceconditions upon replacing the file using rename(2) (the new watcherwould be created too soon). By just watching the directory for events on...
Merge branch 'devel-2.2'
move-instance: Allow overriding instance parameters
When moving a single instance within the same cluster, the NICis not allowed to re-use an existing MAC address. To avoid this,NIC parameters must be overridden. BE, HV, OS and NIC parameterscan be overridden after applying this patch....
Clean up Ganeti 2.3 design document
- Typos- Fix capitalization- Fix quoting in some places- Rewrite part of privilege separation section to match with subsection titles
Signed-off-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Update RAPI documentation for /2/nodes/[node_name]/migrate
This was forgotten in commit 52194140.
Add OS new states to the design doc
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Remove the RPC changes from the 2.2 design
These were not implemented.
Signed-off-by: Iustin Pop <iustin@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Remove 'Detailed Design' from design-2.2.rst
This also bumps up the rest of the headings.
Adding design-doc for user separation
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
RAPI server: Move user file watching out, update documentation
This patch moves the code watching the users file into aa separate class to not mix it with HTTP serving. The usersfile is now driven from outside the HTTP server class.
Also the documentation is updated to mention the automatic...
Proposed design changes for 2.3 and big clusters
A big design doc patch touching three areas related to increasingscalability in 2.3.
locking: Implement priorities in SharedLock and LockSet
For proper support of job priorities, jobs' locks need to respectpriorities. Otherwise it could happen that a job with a lower prioritycould get a lock before a job with a higher priority (depending on...
Design for job priorities
This is an additional patch on top of my previous design forworkerpool priorities.
Move sections of 2.3 design doc up a level
This removes the "Detailed design" section and moves everything else upa level.
Signed-off-by: Guido Trotter <ultrotter@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Node groups design doc
For the first version we should be able to implement node groups withoutany backend api changes (ie. Iallocator). Yikes!
IPv6 design doc part
Signed-off-by: Manuel Franceschini <livewire@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
workerpool: Add support for task priority
To add job priorities, the worker pool underlying the job queue mustsupport priorities per task. This patch adds them to the worker pool.
Use Sphinx' :rfc: extension to refer to RFCs
Document non-standard usage of JSON in RAPI
This was requested in issue 118.
RAPI: Allow modifying instance
Small fixes for instance creation via RAPI documentation
- Inconsistencies- Missing types
Add template 2.3 design doc
Signed-off-by: Guido Trotter <ultrotter@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
Allow renaming instances via RAPI
RAPI: Support migrating instances
Fix install document regarding DRBD usage
This is related to issue 105.
Update RAPI documentation for the OS changes
Rename masterfailover to master-failover
Most (all?) of our commands use dash-separator: replace-disks,verify-disks, add-tags, etc. “gnt-cluster masterfailover” is an oldexception to this rule.
The patch replaces it with master-failover, add a compatiblity alias,...
Remove a couple of empty design sections
The 2.1 and 2.2 designs contain sections with no actual content, as theyare detailed for each single change. Removing the global empty ones.
Signed-off-by: Guido Trotter <ultrotter@google.com>Reviewed-by: Manuel Franceschini <livewire@google.com>
Use reserved documentation IPs and domains
Use RFC 5737 IP addresses and RFC 2606 domain names in allunittests, docs, qa and docstrings.
Fixing Makefile.am to reflect the document move and adding of cluster merger
Signed-off-by: René Nussbaumer <rn@google.com>Reviewed-by: Iustin Pop <iustin@google.com>
Adding a user document for the use of cluster-merge
Move cluster merger design doc to design-2.1.rst
Adding design-doc for privilege separation work done on Ganeti 2.2
RAPI: switch evacuate node to the new model
This patch removes the last use of the old-style OpEvacuateNode. It alsofixes the dry-run mode for this RAPI resource - the dry-run parameterwas not used at all before.
Signed-off-by: Iustin Pop <iustin@google.com>...
Update the 2.2 design doc with OS parameters
Add repetition count to the TestDelay opcode
If the repetition count is not passed or is passed as 0 we sleep exactlyone time, otherwise we sleep "repeat" times and log in between.
Add example gnt-debug submit-job json files
These files are being used to test the job queue performance withvarious changes and conditions. Adding them here for posterity.
Start to prepare documentation for 2.2 release
- Update NEWS file- Remove dependency on OpenSSL (pyOpenSSL remains)- Update manpages, fix typos and other things
Merge branch 'devel-2.1'
Document the check-man change
Since this affects developers' systems, document it in NEWS anddevnotes.rst
Master core scalability design doc
This initial design still lacks information about the job queue lockcontention decrease.
design-2.2: job queue lock analysis/remediation
This builds up on the "Master core scalability design doc" detailing thecritical situations in the job queue and proposing how to fix them. Thebulleted point list at the beginning is changed to subparagraph, as the...
Add tool to move instances between clusters
This is a first version of the instance move tool and it supports moving1..N instances from one cluster to another. When moving a single instance,the instance can be renamed, allowing for moves within the same cluster...
RAPI changes for instance moves
Two new resources are added:- /2/instances/$name/prepare-export- /2/instances/$name/export
The documentation for the existing resource for creating instances is updatedfor remote imports. The RAPI client is extended for the new resources....
Add missing documentation for RAPI instance creation mode
Conflicts: daemons/ganeti-noded lib/daemon.py lib/rapi/baserlib.py lib/rapi/rlib2.py lib/utils.py
Signed-off-by: Luca Bigliardi <shammash@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
RAPI: Add new request data format for instance creation
As mentioned in commit d975f482d, the current way of creating aninstance via RAPI is not very flexible. With this patch, a newinstance creation request data format is introduced and documented.Support can be detected by checking the list of features returned...
Mention RAPI client in documentation
Add new /2/features RAPI resource
The /2/features RAPI resource can be used to detect optionalfeatures implemented by the RAPI server. This will be usedto recognize servers implementing a new request format forinstance creation requests.
Signed-off-by: Michael Hanselmann <hansmi@google.com>...
Node daemon availability improvements proposal
Signed-off-by: Luca Bigliardi <shammash@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
install.rst: update os version and add KVM notes
The 0.7 version was just an example, but since we're on 0.9 now,updating the number cannot be wrong. The new admonition helps KVM usersto configure debootstrap correctly so that instances can be shutdown...
RAPI: Allow waiting for job changes
Conflicts: doc/security.rst trivial lib/cli.py trivial
Signed-off-by: Balazs Lecz <leczb@google.com>Reviewed-by: Michael Hanselmann <hansmi@google.com>
security.rst: add a KVM security section
Add user-id pool design doc
Signed-off-by: Balazs Lecz <leczb@google.com>Reviewed-by: Guido Trotter <ultrotter@google.com>
Forward-port the ganeti 2.0 cfgupgrade
2.1's cfgupgrade doesn't support upgrading from 1.2, only from 2.0.However, it's trivial to forward-port the 2.0 cfgupgrade to work with2.1, thus providing an upgrade path for 1.2 users directly to 2.1,without the intermediate step of installing 2.0....
Add a new tool: sanitize-config
This can be used for two purposes:
- safety copy of the config file, with just the secrets changed- cleanup of the config file (full randomization), so that (e.g.) users could send a broken config file to the devel-list...
Improving the RAPI documentation
Merge remote branch 'devel-2.1'
Update import documentation for the recent changes
Document the watcher node maintenance feature
The patch changes significantly the watcher man page, as it was verysimplistic.
Adding missing documentation to make the docs better
Also fixed a typo I noticed.
utils: Add functions to sign and verify X509 certs using HMAC
Certificates exchanged via an untrusted third party should besigned to ensure they haven't been modified.
Merge remote branch 'origin/devel-2.1'
Update instance modify documentation