azk

module
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2019 License: MIT

README

azk

Create Kubernetes Clusters on Azure, with configurable controllers, providing provisioning and beyond management capabilities

Principles

  • Kubernetes Cluster should be self managed, infrastructure as well as applications
  • External sources can only define target behaviour, the cluster strives to reach the target behaviour
  • Extensible to provide new behaviours easily
  • No additional resources created to achieve target behaviour
  • Provide best possible configured kubernetes cluster for desired workload

Architecture

  • azk, a gateway client for cluster management
    • Create
    • Scale
    • Upgrade
    • Renew Certs
    • Deploy addons
    • Delete

Usage

Either use download the release (relatively stable) or

go get -u github.com/awesomenix/azk/cmd/azk

Follow the prompts in

azk create flow

Workflow

  • azk checks for existence of target cluster, using resourcegroupname, subscriptionid
  • If the cluster does not exist
    • creates prerequisite resources
      • Generate Certificates
      • Generate Infra management manifests
      • Creates networking base infrastructure
    • bootstraps first master (exactly how HA masters are bootstrapped)
  • Deploys cluster infra management components
  • Yields control to the in cluster infra management component and waits for its completion
  • Supporting controllers will create further changes if required
  • Any future operations are directly communicated with the target customer cluster

Controllers

  • cluster
    Manages base infrastructure like
    • resource group
    • vnet
    • load balancers
    • network security groups
  • nodeset
    Manages set of azure vmss/availability set instances, immutable vm size, immutable kubernetes version
  • nodepool
    Manages node sets, if a vm size/kubernetes version changes, creates a rollout for creating new and deprecating old
  • addonmanager
    Manages addon list, apply/remove addons listed in addons directory (controller by crd instead of directory)

Directories

Path Synopsis
cmd
azk
pkg
apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
apis/engine
Package engine contains engine API versions
Package engine contains engine API versions
apis/engine/v1alpha1
Package v1alpha1 contains API Schema definitions for the engine v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/awesomenix/azk/pkg/apis/engine +k8s:defaulter-gen=TypeMeta +groupName=engine.azk.io Package v1alpha1 contains API Schema definitions for the engine v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/awesomenix/azk/pkg/apis/engine +k8s:defaulter-gen=TypeMeta +groupName=engine.azk.io
Package v1alpha1 contains API Schema definitions for the engine v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/awesomenix/azk/pkg/apis/engine +k8s:defaulter-gen=TypeMeta +groupName=engine.azk.io Package v1alpha1 contains API Schema definitions for the engine v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/awesomenix/azk/pkg/apis/engine +k8s:defaulter-gen=TypeMeta +groupName=engine.azk.io

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL