Commit graph

259 commits

Author SHA1 Message Date
Santhosh Manohar
7040bb9159 Merge pull request #1538 from aboch/06
Respect auto allocation for --ipv6
2016-11-16 14:57:21 -08:00
Alessandro Boch
83dd2c193a Respect auto allocation for --ipv6
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-11-08 19:05:51 -08:00
Dong Chen
db69cfc151 Support attachable in network.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
2016-11-08 17:39:31 -08:00
Daehyeok Mun
7f473c779a Refactoring logrus import and formatting
This fix tries to fix logrus formatting by removing `f` from
`logrus.[Error|Warn|Debug|Fatal|Panic|Info]f` when formatting string
is not present.
Also fix import name to use original project name 'logrus' instead of
'log'

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2016-11-08 12:42:41 -07:00
Madhu Venugopal
d1b012d97a Windows overlay driver support
1. Base work was done by msabansal and nwoodmsft
   from : https://github.com/msabansal/docker/tree/overlay
2. reorganized under drivers/windows/overlay and rebased to
   libnetwork master
3. Porting overlay common fixes to windows driver
    * 46f525c
    * ba8714e
    * 6368406
4. Windows Service Discovery changes for swarm-mode
5. renaming default windows ipam drivers as "windows"

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Signed-off-by: msabansal <sabansal@microsoft.com>
Signed-off-by: nwoodmsft <Nicholas.Wood@microsoft.com>
2016-11-03 16:50:04 -07:00
Jana Radhakrishnan
e052f27538 Merge pull request #1521 from sanimej/gstatus
Add NetworkDB API to fetch the per network peer (gossip cluster) list
2016-11-02 20:51:36 -07:00
Santhosh Manohar
c52c8ca6eb Add NetworkDB API to fetch the per network peer (gossip cluster) list
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-11-02 13:58:15 -07:00
Jana Radhakrishnan
ea579a4d0e Merge pull request #1477 from allencloud/fix-nits-in-comments
fix nits in comments and log
2016-11-02 09:58:18 -07:00
allencloud
a1ed5b7be2 fix nits in comments and log
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-10-29 19:35:18 +08:00
allencloud
761722395d validate network and endpoint name more strictly
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-10-18 11:01:18 +08:00
Akihiro Suda
8e37c3160a add Created to NetworkInfo
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2016-10-14 05:27:44 +00:00
Jana Radhakrishnan
c7b9435004 Do not add names to ingress network
Do not add service discovery names to ingress network as this is a
routing only network and no intra-cluster discovery should happen in
that network. This fixes the ambiguity and resolving names between
services which are both publishing ports and also attached to same
another network.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-10-04 10:41:11 -07:00
msabansal
7f43fd30f3 DNS support
Signed-off-by: msabansal <sabansal@microsoft.com>
2016-09-20 13:02:02 -07:00
Alessandro Boch
92e20b70e6 Fix potential deadlock in getSvcRecords()
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-08-30 12:40:46 -07:00
Jana Radhakrishnan
4f55b50f93 Cleanup service bindings when leaving cluster
When leaving the entire gossip cluster or when leaving a network
specific gossip cluster, we may not have had a chance to cleanup service
bindings by way of gossip updates due to premature closure of gossip
channel. Make sure to cleanup all service bindings since we are not
participating in the cluster any more.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-08-19 18:11:15 -07:00
Alexander Morozov
55564fda1d network: fix race in read access to map
Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
2016-08-15 14:43:59 -07:00
Jana Radhakrishnan
8a225de00d Merge pull request #1205 from allencloud/fix-typos
use grep to find a/an misuse
2016-08-01 09:49:31 -07:00
Madhu Venugopal
83b0be7f1a Check for isAgent() outside the network lock to avoid deadlocks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-07-28 11:33:21 -07:00
Vladislav Kolesnikov
7301999c2a added locks for all other accesses to controller.svcRecords
Signed-off-by: Vladislav Kolesnikov <vkolesnikov@beget.ru>
2016-07-20 19:49:59 +03:00
Madhu Venugopal
9d01c1fcd5 manage network dynamic flag appropriately under various scenarios
If a network is dynamic, make sure the scope of the object doesnt change
based on the cluster-mode

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-07-12 08:57:50 -07:00
Alessandro Boch
d7d88ce37d Make getSvcRecords() more robust
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-06-17 18:51:57 -07:00
Alessandro Boch
9328f1ea1e Refresh special drivers networks if present in store
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-06-14 21:50:58 -07:00
Madhu Venugopal
4c1ed2010b Merge pull request #1228 from aboch/ll
Allow to program Endpoint link-local addresses
2016-06-08 18:17:42 -07:00
Alessandro Boch
da61c5d37f Allow to program Endpoint link-local addresses
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-06-08 15:02:34 -07:00
Chun Chen
dc94557b00 Merge pull request #1202 from vikaschoudhary16/update-addrSpace
Update address-space in ipam-info for remote driver
2016-06-07 11:49:09 +08:00
Madhu Venugopal
9054ac2b48 Provide a way for libnetwork to make use of Agent mode functionalities
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-06-05 18:41:21 -07:00
Jana Radhakrishnan
0f89c9b7bc Add ingress load balancer
Ingress load balancer is achieved via a service sandbox which acts as
the proxy to translate incoming node port requests and mapping that to a
service entry. Once the right service is identified, the same internal
loadbalancer implementation is used to load balance to the right backend
instance.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-04 20:38:32 -07:00
allencloud
9f415d0cdb use grep to find a/an misuse
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-06-03 16:35:33 +08:00
vikaschoudhary16
68de30a57c Update address-space in ipam-info for remote driver
Signed-off-by: vikaschoudhary16 <choudharyvikas16@gmail.com>
2016-06-01 13:43:00 +05:30
Jana Radhakrishnan
d05adebf30 Add loadbalancer support
This PR adds support for loadbalancing across a group of endpoints that
share the same service configuration as passed in by
`OptionService`. The loadbalancer is implemented using ipvs with just
round robin scheduling supported for now.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-05-26 13:05:58 -07:00
Alessandro Boch
f741ccf444 Merge pull request #1163 from sanimej/srv
Add support for SRV query in embedded DNS
2016-05-20 12:11:45 -07:00
Santhosh Manohar
0051e39750 Add support for SRV query in embedded DNS
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-05-19 00:27:59 -07:00
Alessandro Boch
b82101c4cc Protect cap access in driver()
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-05-15 18:10:50 -07:00
Alessandro Boch
8c2a2ff471 Do not perform the overlap check on user chosen pool
- As it was before

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-05-09 14:54:16 -07:00
Jana Radhakrishnan
ffdceda255 Add service support
Add a notion of service in libnetwork so that a group of endpoints
which form a service can be treated as such so that service level
features can be added on top. Initially as part of this PR the support
to assign a name to the said service is added which results in DNS
queries to the service name to return all the IPs of the backing
endpoints so that DNS RR behavior on the service name can be achieved.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-05-05 16:47:05 -07:00
Santhosh Manohar
63cc2ecf78 Merge pull request #1149 from mrjana/agent
Add libnetwork agent mode support
2016-05-05 14:33:35 -07:00
Alessandro Boch
d0f96c5846 Fix cleanup logic in case of ipv6 allocation failure
- When creating a network with both IPv4 and IPv6 subnets,
  if the allocation of the IPv6 pool fails, the already
  reserved IPv4 pool does not get released.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-05-04 16:33:53 -07:00
Jana Radhakrishnan
0580043718 Add libnetwork agent mode support
libnetwork agent mode is a mode where libnetwork can act as a local
agent for network and discovery plumbing alone while the state
management is done elsewhere. This completes the support for making
libnetwork and its associated drivers to be completely independent of a
k/v store(if needed) and work purely based on the state information
passed along by some some external controller or manager. This does not
mean that libnetwork support for decentralized state management via a
k/v store is removed.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-05-02 18:19:32 -07:00
Alessandro Boch
c891a47cb3 Merge pull request #1095 from mrjana/ipam
Remove all netlink/osl deps from ipam/ipamutils
2016-04-15 11:46:47 -07:00
Jana Radhakrishnan
b0d046a1af Remove all netlink/osl deps from ipam/ipamutils
Currently ipam/ipamutils has a bunch of dependencies
in osl and netlink which makes the ipam/ipamutils harder
to use independently with other applications. This PR
modularizes ipam/ipamutils into a standalone package
with no OS level dependencies.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-04-10 11:05:39 -07:00
Jana Radhakrishnan
f539be8a63 Create driver registry package
Currently driver management logic is tightly coupled with
libnetwork package and that makes it very difficult to
modularize it and use it separately. This PR modularizes
the driver management logic by creating a driver registry
package.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-04-09 09:43:43 -07:00
Alessandro Boch
865951c6e8 Persist ipam driver options
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-04-08 08:18:09 -07:00
Madhu Venugopal
22fae3ae2c Merge pull request #870 from sanimej/bugs
Adds AAAA record handling for the embedded DNS
2016-03-20 10:20:53 -07:00
Madhu Venugopal
896196c521 Merge pull request #967 from aboch/i6
Honor enableIPv6 network flag on IP allocation
2016-03-20 10:03:25 -07:00
Evan Hazlett
7ad482ffc7 label support for networks on creation
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2016-03-18 18:19:08 -04:00
Alessandro Boch
4b9dc647be Honor enableIPv6 network flag on IP allocation
- If the flag is not set, do not query IPAM driver for
  IPv6 pool/addresses even if they are passed

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-03-18 15:18:08 -07:00
Santhosh Manohar
2e566e3882 Add AAAA record handling in embedded DNS server
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-03-16 19:00:17 -07:00
Alessandro Boch
c92a4e9fd6 Avoid network/endpoint count inconsistences
- ... on ungraceful shutdown during network create
- Allow forceful deletion of network
- On network delete, first mark the network for deletion
- On controller creation, first forcely remove any network
  that is marked for deletion.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-03-15 09:09:13 -07:00
Santhosh Manohar
dd48b1c688 If anonymous container has alias names use it for DNS PTR record
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-03-06 10:46:40 -08:00
Stefan Weil
13451d9a07 Fix some typos in comments and strings
All of them were found and fixed by codespell.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-03-01 16:45:14 +01:00