libcloud-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From anthonys...@apache.org
Subject [48/50] libcloud git commit: Docs for the kubernetes driver. Fixed provider factory not referencing the correct class name.
Date Wed, 20 Jan 2016 03:44:36 GMT
Docs for the kubernetes driver. Fixed provider factory not referencing the correct class name.


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/c8c6c2f7
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/c8c6c2f7
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/c8c6c2f7

Branch: refs/heads/trunk
Commit: c8c6c2f7c8ccef8cbf704fe4595f4ca350ba4fdd
Parents: 0b87588
Author: anthony-shaw <anthony.p.shaw@gmail.com>
Authored: Wed Jan 13 16:31:15 2016 +1100
Committer: anthony-shaw <anthony.p.shaw@gmail.com>
Committed: Wed Jan 13 16:31:15 2016 +1100

----------------------------------------------------------------------
 .../images/provider_logos/kubernetes.png        | Bin 0 -> 6357 bytes
 docs/container/_supported_methods.rst           |   4 +-
 docs/container/_supported_providers.rst         |  16 +++----
 docs/container/drivers/kubernetes.rst           |  42 +++++++++++++++++++
 .../examples/container/kubernetes/docker_hub.py |  20 +++++++++
 .../container/kubernetes/instantiate_driver.py  |  14 +++++++
 libcloud/container/drivers/kubernetes.py        |  32 +++-----------
 libcloud/container/providers.py                 |   2 +-
 8 files changed, 94 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/docs/_static/images/provider_logos/kubernetes.png
----------------------------------------------------------------------
diff --git a/docs/_static/images/provider_logos/kubernetes.png b/docs/_static/images/provider_logos/kubernetes.png
new file mode 100644
index 0000000..08da3fd
Binary files /dev/null and b/docs/_static/images/provider_logos/kubernetes.png differ

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/docs/container/_supported_methods.rst
----------------------------------------------------------------------
diff --git a/docs/container/_supported_methods.rst b/docs/container/_supported_methods.rst
index ea52dfc..4361d25 100644
--- a/docs/container/_supported_methods.rst
+++ b/docs/container/_supported_methods.rst
@@ -4,10 +4,12 @@
 Provider                            install image list images deploy container get container
start container stop container restart container destroy container list containers list locations
create cluster destroy cluster list clusters
 =================================== ============= =========== ================ =============
=============== ============== ================= ================= =============== ==============
============== =============== =============
 `Docker`_                           yes           yes         yes              yes      
    yes             yes            yes               yes               yes             no
            no             no              no           
-`Amazon Elastic Container Service`_ no            no          yes              yes      
    yes             yes            yes               yes               yes             no
            yes            yes             yes          
+`Amazon Elastic Container Service`_ no            yes         yes              yes      
    yes             yes            yes               yes               yes             no
            yes            yes             yes          
 `Joyent Triton`_                    yes           yes         yes              yes      
    yes             yes            yes               yes               yes             no
            no             no              no           
+`Kubernetes`_                       no            no          yes              yes      
    no              no             no                yes               yes             no
            yes            yes             yes          
 =================================== ============= =========== ================ =============
=============== ============== ================= ================= =============== ==============
============== =============== =============
 
 .. _`Docker`: http://docker.io
 .. _`Amazon Elastic Container Service`: https://aws.amazon.com/ecs/details/
 .. _`Joyent Triton`: http://joyent.com
+.. _`Kubernetes`: http://kubernetes.io

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/docs/container/_supported_providers.rst
----------------------------------------------------------------------
diff --git a/docs/container/_supported_providers.rst b/docs/container/_supported_providers.rst
index ebf4d82..3c400c6 100644
--- a/docs/container/_supported_providers.rst
+++ b/docs/container/_supported_providers.rst
@@ -1,13 +1,15 @@
 .. NOTE: This file has been generated automatically using generate_provider_feature_matrix_table.py
script, don't manually edit it
 
-=================================== ======================================== =================
======================================== ===============================
-Provider                            Documentation                            Provider constant
Module                                   Class Name                     
-=================================== ======================================== =================
======================================== ===============================
-`Docker`_                           :doc:`Click </container/drivers/docker>` DOCKER
           :mod:`libcloud.container.drivers.docker` :class:`DockerContainerDriver` 
-`Amazon Elastic Container Service`_ :doc:`Click </container/drivers/ecs>`    ECS  
            :mod:`libcloud.container.drivers.ecs`    :class:`ElasticContainerDriver`
-`Joyent Triton`_                    :doc:`Click </container/drivers/joyent>` JOYENT
           :mod:`libcloud.container.drivers.joyent` :class:`JoyentContainerDriver` 
-=================================== ======================================== =================
======================================== ===============================
+=================================== ============================================ =================
============================================ ==================================
+Provider                            Documentation                                Provider
constant Module                                       Class Name                        
+=================================== ============================================ =================
============================================ ==================================
+`Docker`_                           :doc:`Click </container/drivers/docker>`     DOCKER
           :mod:`libcloud.container.drivers.docker`     :class:`DockerContainerDriver`   

+`Amazon Elastic Container Service`_ :doc:`Click </container/drivers/ecs>`        ECS
              :mod:`libcloud.container.drivers.ecs`        :class:`ElasticContainerDriver`
  
+`Joyent Triton`_                    :doc:`Click </container/drivers/joyent>`     JOYENT
           :mod:`libcloud.container.drivers.joyent`     :class:`JoyentContainerDriver`   

+`Kubernetes`_                       :doc:`Click </container/drivers/kubernetes>` KUBERNETES
       :mod:`libcloud.container.drivers.kubernetes` :class:`KubernetesContainerDriver`
+=================================== ============================================ =================
============================================ ==================================
 
 .. _`Docker`: http://docker.io
 .. _`Amazon Elastic Container Service`: https://aws.amazon.com/ecs/details/
 .. _`Joyent Triton`: http://joyent.com
+.. _`Kubernetes`: http://kubernetes.io

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/docs/container/drivers/kubernetes.rst
----------------------------------------------------------------------
diff --git a/docs/container/drivers/kubernetes.rst b/docs/container/drivers/kubernetes.rst
new file mode 100644
index 0000000..e0253bd
--- /dev/null
+++ b/docs/container/drivers/kubernetes.rst
@@ -0,0 +1,42 @@
+Kubernetes Documentation
+========================
+
+Kubernetes is an open source orchestration system for Docker containers. It handles scheduling
onto nodes in a compute cluster and actively manages workloads to ensure that their state
matches the users declared intentions. Using the concepts of "labels" and "pods",
+it groups the containers which make up an application into logical units for easy management
and discovery.
+
+.. figure:: /_static/images/provider_logos/kubernetes.png
+    :align: center
+    :width: 300
+    :target: http://kubernetes.io/
+
+
+Authentication
+--------------
+
+Authentication currently supported with the following methods:
+
+* Basic HTTP Authentication - http://kubernetes.io/v1.1/docs/admin/authentication.html
+* No authentication (testing only)
+
+Instantiating the driver
+------------------------
+        
+.. literalinclude:: /examples/container/kubernetes/instantiate_driver.py
+   :language: python
+
+Deploying a container from Docker Hub
+-------------------------------------
+
+Docker Hub Client :class:`~libcloud.container.utils.docker.HubClient` is a shared utility
class for interfacing to the public Docker Hub Service.
+
+You can use this class for fetching images to deploy to services like ECS
+
+.. literalinclude:: /examples/container/kubernetes/docker_hub.py
+   :language: python
+
+API Docs
+--------
+
+.. autoclass:: libcloud.container.drivers.kubernetes.KubernetesContainerDriver
+    :members:
+    :inherited-members:

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/docs/examples/container/kubernetes/docker_hub.py
----------------------------------------------------------------------
diff --git a/docs/examples/container/kubernetes/docker_hub.py b/docs/examples/container/kubernetes/docker_hub.py
new file mode 100644
index 0000000..dce1bef
--- /dev/null
+++ b/docs/examples/container/kubernetes/docker_hub.py
@@ -0,0 +1,20 @@
+from libcloud.container.types import Provider
+from libcloud.container.providers import get_driver
+from libcloud.container.utils.docker import HubClient
+
+cls = get_driver(Provider.KUBERNETES)
+
+conn = cls(key='my_username',
+           secret='THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H',
+           host='126.32.21.4')
+hub = HubClient()
+
+image = hub.get_image('ubuntu', 'latest')
+
+for cluster in conn.list_clusters():
+    print(cluster.name)
+    if cluster.name == 'default':
+        container = conn.deploy_container(
+            cluster=cluster,
+            name='my-simple-app',
+            image=image)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/docs/examples/container/kubernetes/instantiate_driver.py
----------------------------------------------------------------------
diff --git a/docs/examples/container/kubernetes/instantiate_driver.py b/docs/examples/container/kubernetes/instantiate_driver.py
new file mode 100644
index 0000000..95fe997
--- /dev/null
+++ b/docs/examples/container/kubernetes/instantiate_driver.py
@@ -0,0 +1,14 @@
+from libcloud.container.types import Provider
+from libcloud.container.providers import get_driver
+
+cls = get_driver(Provider.KUBERNETES)
+
+conn = cls(key='my_username',
+           secret='THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H',
+           host='126.32.21.4')
+
+for container in conn.list_containers():
+    print(container.name)
+
+for cluster in conn.list_clusters():
+    print(cluster.name)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/libcloud/container/drivers/kubernetes.py
----------------------------------------------------------------------
diff --git a/libcloud/container/drivers/kubernetes.py b/libcloud/container/drivers/kubernetes.py
index 13f2a51..ed02112 100644
--- a/libcloud/container/drivers/kubernetes.py
+++ b/libcloud/container/drivers/kubernetes.py
@@ -103,7 +103,7 @@ class KubernetesContainerDriver(ContainerDriver):
     supports_clusters = True
 
     def __init__(self, key=None, secret=None, secure=False, host='localhost',
-                 port=4243, key_file=None, cert_file=None):
+                 port=4243):
         """
         :param    key: API key or username to used (required)
         :type     key: ``str``
@@ -121,20 +121,12 @@ class KubernetesContainerDriver(ContainerDriver):
         :param    port: Override port used for connections.
         :type     port: ``int``
 
-        :param    key_file: Path to private key for TLS connection (optional)
-        :type     key_file: ``str``
-
-        :param    cert_file: Path to public key for TLS connection (optional)
-        :type     cert_file: ``str``
-
         :return: ``None``
         """
         super(KubernetesContainerDriver, self).__init__(key=key, secret=secret,
                                                         secure=secure,
                                                         host=host,
-                                                        port=port,
-                                                        key_file=key_file,
-                                                        cert_file=cert_file)
+                                                        port=port)
         if host.startswith('https://'):
             secure = True
 
@@ -144,23 +136,9 @@ class KubernetesContainerDriver(ContainerDriver):
             if host.startswith(prefix):
                 host = host.strip(prefix)
 
-        if key_file or cert_file:
-            # docker tls authentication-
-            # https://docs.docker.com/articles/https/
-            # We pass two files, a key_file with the
-            # private key and cert_file with the certificate
-            # libcloud will handle them through LibcloudHTTPSConnection
-            if not (key_file and cert_file):
-                raise Exception(
-                    'Needs both private key file and '
-                    'certificate file for tls authentication')
-            self.connection.key_file = key_file
-            self.connection.cert_file = cert_file
-            self.connection.secure = True
-        else:
-            self.connection.secure = secure
-            self.connection.key = key
-            self.connection.secret = secret
+        self.connection.secure = secure
+        self.connection.key = key
+        self.connection.secret = secret
 
         self.connection.host = host
         self.connection.port = port

http://git-wip-us.apache.org/repos/asf/libcloud/blob/c8c6c2f7/libcloud/container/providers.py
----------------------------------------------------------------------
diff --git a/libcloud/container/providers.py b/libcloud/container/providers.py
index c39566f..47897ed 100644
--- a/libcloud/container/providers.py
+++ b/libcloud/container/providers.py
@@ -27,7 +27,7 @@ DRIVERS = {
     Provider.ECS:
     ('libcloud.container.drivers.ecs', 'ElasticContainerDriver'),
     Provider.KUBERNETES:
-    ('libcloud.container.drivers.kubernetes', 'KubenetesContainerDriver'),
+    ('libcloud.container.drivers.kubernetes', 'KubernetesContainerDriver'),
 }
 
 


Mime
View raw message