- Jul 12, 2011
-
-
Apollon Oikonomopoulos authored
boot=on forces KVM to use an extboot ROM which has shown poor behaviour with booting from CD images. IDE CDROM emulation (which is forced by default when booting from CD) does not need boot=on, so we simply omit it. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
- Jul 01, 2011
-
-
Apollon Oikonomopoulos authored
Add tag handling to _ParseInstanceCreateRequestVersion1. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
- Jun 22, 2011
-
-
Michael Hanselmann authored
Commit 720f56c8 added the ability to specify tags when creating an instance. The “tags” attribute of an instance object needs to be a set, but the patch's code saved it as a list, causing breakage in other parts of Ganeti. This patch changes the code to use TaggableObject.AddTag, which has a nice side-effect of doing some verification (including max. number of tags). Instance import was also broken (no “tags” attribute in options). Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
René Nussbaumer <rn@google.com>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
When asked to return statistics about a network usage by instances, we didn't properly handle the link=None case. This patch fixes the behaviour by fallink back to the cluster default link. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Also include the list of externally reserved IP addresses in an address pool in the output of gnt-network info <network_name>. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
We catch the ConfigurationError raised by ConfigWriter.GenerateIp() in LUInstanceCreate and LUInstanceSetParams, so that we can raise an OpPrereq exception and better inform the user about the error. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Catch the StopIteration exception and return None to the temporary_ips reservation manager, so that it fails at the 64-attempt boundary. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
The retry counter used in TemporaryReservationManager.Generate() was not decremented for each failed retry, as presumably intended. This patch decrements the retry counter after each failed attempt. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Instance hooks now get an INSTANCE_TAGS environment variable, which contains a space-delimited list of the affected instance's tags. Also update the documentation to reflect the change. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add TAG_ADD_OPT option to cli.py and use it in gnt-instance. Modify cli.GenericInstanceCreate() accordingly. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add a tag slot to opcodes.OpInstanceCreate. We do not reuse _PTags, as this is intended for OpTagsSet and thus: a) is not documented b) does not carry a default value, making it mandatory Also pass the tags to the iallocator during instance creation. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Perform suitable pool operations on NIC addition, removal and modification. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Call cluster.SimpleFillNIC to get the default link when link is None. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Change the semantics of ReleaseIp, so that it can be called from outside without knowing the exact network UUID, by passing only node and link. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add a new method, TemporaryReservationManager.GetECReserved(), which returns all reservations held by a given ec_id. Also add a new method, ConfigWriter._UnlockedCommitReservedIps(), which can be called to commit all temporarily reserved IP addresses to the respective address pools. For this to work, the IP reservation manager must hold both, the address and the network UUID of the respective address pool. Finally, we automatically commit IP address reservations during ConfigWriter.Update() of Instance objects. For this to work, we add an optional ec_id keyword, which must hold the calling job's unique id to get the relevant reservations. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
ToStdOut -> ToStdout Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
The IP pool management infrastructure currently needs to know an instance's node to fill in IP addresses. For this to happen, the iallocator must run before we generate IP addresses, yet the iallocator itself needs the instance's NIC dictionaries. We break this cycle by passing ip="pool" to the iallocator and filling-in the IP address after the iallocator run. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Prototype implementation of IP address management during instance addition/removal. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
gnt-network manipulates network objects. Required parameters have been added to ganeti.cli. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add opcodes for network addition and query. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Modify LUGroupSetParams to accept network addition/removal. Networks are connected to nodegroups' links. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add Logical Units for network adding and querying network config objects. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add unit tests to check proper IP address pool management logic. The tests cover all simple operations on an IP address pool. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add NetworkQueryData data container for network-related queries. Also add a network query field generator and helper functions to generate usage statistics for IP address pools. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add helper methods to ganeti.config.ConfigWriter to handle Network addition and removal, IP address reservation and commitment to the address pools. Also add the “networks” ssconf key to make network names/UUIDs available to all nodes via ssconf. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
lib.network contains AddressPool, a helper class for ganeti.objects.Network. AddressPool wraps a Network object and provides all IPv4 Address Pool management logic, manipulating the respective fields of the Network object. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Add a network object definition, with the appropriate slots, to lib.objects. Also add a “networks” top-level configuration slot to host network definitions and a “networks” slot to the NodeGroup objects to hold network ←→ node-group mappings. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
A new ip keyword is added ("pool") to signify that LUCreateInstance should get the instance's IP from an IP pool (rather than manually or by DNS resolution). IP and link checks are re-ordered so that a NIC's link is available at the time of IP address validation. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
This patch introduces the following changes to lib.config and lib.objects to facilitate IP pool management. - Add a "networks" key to objects.cluster to hold link -> subnet relations. Each link is assumed to be associated with at most one IPv4 and at most one IPv6 subnet. Currently only IPv4 subnets are used. - Add a TemporaryReservationManager for IP address reservations. - Add config.{_UnlockedCommitIp,CommitIp,_UnlockedReleaseIp,ReleaseIp} to write IP pool changes to the config file. - Add config.{ReserveIp,GenerateIp} for use with the _temporary_ips TemporaryReservationManager. - Commit succesful reservations/releases to the IP pools in config.AddInstance and config.RemoveInstance Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
This patch introduces primitive structures for IP pool management. The core of the IP Pool management framework is the ippool.IPv4Network class, which encodes an IPv4 subnet configuration with its IP address pool. The pool functionality depends on python-bitarray and python-ipaddr is used for address manipulation. ippool.IPv4Network has 3 key attributes: - net: The IPv4 subnet definition (CIDR notation) - gateway: The default gateway used, if any - _pool: a bitarray.bitarray storing the reservation status of individual IPs The purpose of including ippool.IPv4Network in ganeti is two-fold: - It will allow including subnet information useful for network configuration (e.g. by being available during an OS provider invocation) - It will be used for automatic IP address allocation during instance creation for both, routed and bridged modes. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-
Apollon Oikonomopoulos authored
Commit 5d9bfd87 moved tap interface handling from KVM to Ganeti, partly to also solve the problem of routed interfaces getting configured too early during live migrations, causing network anomalies. In that direction, configuration of NICs of incoming instances was deferred to FinalizeMigration time. However, this causes minor issues with bridged interfaces; KVM sends out an ARP-like packet upon migration finish, which is lost because the tap interface is not yet configured. As a consequence, intermediate network equipment (i.e. switches) does not get notified about the topology change, until the instance transmits another packet after the bridge has been configured, or the switch's ARP cache expires. The proper solution to that is to support different phases in network configuration (pre/post migration), which also requires separate ifup scripts. Until then we fall back to configuring bridged interfaces on incoming instances at migration start, instead of finish. Signed-off-by:
Apollon Oikonomopoulos <apollon@noc.grnet.gr>
-