Skip to content
Snippets Groups Projects
  1. Dec 09, 2016
    • Bogdan Dobrelya's avatar
      Preconfigure DNS stack and docker early · a15d6267
      Bogdan Dobrelya authored
      
      In order to enable offline/intranet installation cases:
      * Move DNS/resolvconf configuration to preinstall role. Remove
        skip_dnsmasq_k8s var as not needed anymore.
      
      * Preconfigure DNS stack early, which may be the case when downloading
        artifacts from intranet repositories. Do not configure
        K8s DNS resolvers for hosts /etc/resolv.conf yet early (as they may be
        not existing).
      
      * Reconfigure K8s DNS resolvers for hosts only after kubedns/dnsmasq
        was set up and before K8s apps to be created.
      
      * Move docker install task to early stage as well and unbind it from the
        etcd role's specific install path. Fix external flannel dependency on
        docker role handlers. Also fix the docker restart handlers' steps
        ordering to match the expected sequence (the socket then the service).
      
      * Add default resolver fact, which is
        the cloud provider specific and remove hardcoded GCE resolver.
      
      * Reduce default ndots for hosts /etc/resolv.conf to 2. Multiple search
        domains combined with high ndots values lead to poor performance of
        DNS stack and make ansible workers to fail very often with the
        "Timeout (12s) waiting for privilege escalation prompt:" error.
      
      * Update docs.
      
      Signed-off-by: default avatarBogdan Dobrelya <bdobrelia@mirantis.com>
      a15d6267
  2. Dec 07, 2016
    • Dan Bode's avatar
      Allow etcd_access_addresses to be more flexible · eec2ed58
      Dan Bode authored
      The variale etcd_access_addresses is used to determine
      how to address communication from other roles to
      the etcd cluster.
      
      It was set to the address that ansible uses to
      connect to instance ({{ item }})s and not the
      the variable:
        ip_access
      which had already been created and could already
      be overridden through the access_ip variable.
      
      This change allows ansible to connect to a machine using
      a different address than the one used to access etcd.
      eec2ed58
  3. Nov 21, 2016
  4. Nov 09, 2016
  5. Oct 21, 2016
  6. Oct 05, 2016
  7. Sep 18, 2016
  8. Jul 25, 2016
    • Bogdan Dobrelya's avatar
      Add HA/LB endpoints for kube-apiserver · 731d32af
      Bogdan Dobrelya authored
      
      * Add HA docs for API server.
      * Add auto-evaluated internal endpoints and clarify the loadbalancer_apiserver
      vars and usecases.
      * Use facts for kube_apiserver to not repeat code and enable LB endpoints use.
      * Use /healthz check for the wait-for apiserver.
      * Use the single endpoint for kubelet instead of the list of apiservers
      * Specify kube_apiserver_count to for HA layout
      
      Signed-off-by: default avatarBogdan Dobrelya <bdobrelia@mirantis.com>
      731d32af
  9. Jul 22, 2016
  10. Jul 21, 2016
    • Bogdan Dobrelya's avatar
      Add HA/LB endpoints for kube-apiserver · a70c3b66
      Bogdan Dobrelya authored
      
      * Add auto-evaluated internal endpoints and clarify the loadbalancer_apiserver
      vars and usecases.
      * Add loadbalancer_apiserver_localhost (default false). If enabled, override
      the external LB and expect localhost:443/8080 to be new internal only frontends.
      * Add kube_apiserver_multiaccess to ignore loadbalancers, and make clients
      to access the apiservers as a comma-separated list of access_ip/ip/ansible ip
      (a default mode). When disabled, allow clients to use the given loadbalancers.
      * Define connections security mode for kube controllers, schedulers, proxies.
      It is insecure be default, which is the current deployment choice.
      * Rework the groups['kube-master'][0] hardcode defining the apiserver
      endpoints.
      * Improve grouping of vars and add facts for kube_apiserver.
      * Define kube_apiserver_insecure_bind_address as a fact, add more
      facts for ease of use.
      
      Signed-off-by: default avatarBogdan Dobrelya <bdobrelia@mirantis.com>
      a70c3b66
  11. Jul 20, 2016
  12. Jul 19, 2016
    • Bogdan Dobrelya's avatar
      Add etcd proxy support · 32cd6e99
      Bogdan Dobrelya authored
      
      * Enforce a etcd-proxy role to a k8s-cluster group members. This
      provides an HA layout for all of the k8s cluster internal clients.
      * Proxies to be run on each node in the group as a separate etcd
      instances with a readwrite proxy mode and listen the given endpoint,
      which is either the access_ip:2379 or the localhost:2379.
      * A notion for the 'kube_etcd_multiaccess' is: ignore endpoints and
      loadbalancers and use the etcd members IPs as a comma-separated
      list. Otherwise, clients shall use the local endpoint provided by a
      etcd-proxy instances on each etcd node. A Netwroking plugins always
      use that access mode.
      * Fix apiserver's etcd servers args to use the etcd_access_endpoint.
      * Fix networking plugins flannel/calico to use the etcd_endpoint.
      * Fix name env var for non masters to be set as well.
      * Fix etcd_client_url was not used anywhere and other etcd_* facts
      evaluation was duplicated in a few places.
      * Define proxy modes only in the env file, if not a master. Del
      an automatic proxy mode decisions for etcd nodes in init/unit scripts.
      * Use Wants= instead of Requires= as "This is the recommended way to
      hook start-up of one unit to the start-up of another unit"
      * Make apiserver/calico Wants= etcd-proxy to keep it always up
      
      Signed-off-by: default avatarBogdan Dobrelya <bdobrelia@mirantis.com>
      Co-authored-by: default avatarMatthew Mosesohn <mmosesohn@mirantis.com>
      32cd6e99
  13. Jul 07, 2016
  14. May 31, 2016
    • Evgeny L's avatar
      Scale-up functionality for etcd cluster · 0500f27d
      Evgeny L authored
      * Set ETCD_INITIAL_CLUSTER_STATE from `new` to `existing`,
      because parameter `new` makes sense only on cluster assembly
      stage.
      * If cluster exists and current node is not a part
      of the cluster, add it with command `etcdctl add member name url`.
      
      Closes kubespray/kargo/#270
      0500f27d
Loading