MicroK8s progress report

In this thread we would like to inform our users of the progress within the MicroK8s project.

Sprint report of 15 to 29 November 2021

The theme of this sprint was: “Prepare for the v1.23 release”

  • We merged the support for worker only nodes in dqlite based clusters. This included:

    • Refactor the clustering commands in a pythonic way
    • Add tests for clustering worker nodes
    • Label nodes based on their role
    • Update our docs page
  • We added support for MicroK8s on M1 Mac

  • We reviewed and merged the following external contributions, thank you:

    • ingress for Kubernetes dashboard addon
    • upgrade keda to the latest version
    • Linkerd upgrade
    • upgrade metrics server
    • upgrade jaeger operator
    • Remove deprecated configuration from containerd
  • Updated the nginx ingress controller add-on

  • On strictly confined MicroK8s we now support editing manifests with microk8s kubectl edit. Try it with: snap install microk8s --channel=latest/edge/strict

  • For the charmed MicroK8s we landed two PRs to

    • configure SANs in MicroK8s units and
    • prevent breaking cluster by downgrading to older versions
  • Added a documentation page on NVIDIA DGX support

  • The upcoming released 1.23 will have the following changes on its default args:

    • k8s service profiling will be disabled
    • event-ttl will be set to 5min
    • insecure-port will be removed
  • Bug/usability fixes:

    • callback token removal so distributed ops do not try to reach departed nodes
    • the inspection script will detect missing modules on RPi on 21.10

Sprint report of 29 November to 13 December 2021

The theme of this sprint was: “Release v1.23 and restructure our docs”

1 Like

Sprint report of 13 December 2021 to 10 January 2022

The theme of this sprint was: “Happy holidays and a happy new year!”

  • Update the Mac and Windows installers to use the latest Multipass and deploy K8s v1.23

  • Update the runc build part to use Go 1.16

  • Bug/usability fixes:

    • Fix ingress leader election when RBAC is enabled in 1.23
    • Address the Log4J vulnerability issues
1 Like

Sprint report - 10 to 24 January

Documentation

Code freeze of 1.23

  • Set the default track to 1.23
  • Run the conformance tests for 1.23

Hostpath storage

  • “hostpath-storage” addon to replace the “storage” addon
  • Warn users storage addon is not for multinode/production
  • Update our hostpath-provisioner and release version 1.1.0 on dockerhub
  • Enable hostpath-storage addon for s390x architecture

Bug fixes:

  • Upgrade dashboard to v2.3.0 to fix ingress API error
  • Update Traefik 2.3 as it is not compatible with kubernetes 1.22+
  • Fix Maintenance.Status RPC error in API server logs
  • Fix stray kine argument in apiserver when disabling HA

Usability improvements:

  • Do not start the control plane when node has 512 or less MB of RAM, instead wait for administrator to add the node in a cluster
  • Refuse joins from nodes when the hostname does not resolve to the correct IP
  • Stop relying setting RemoveSelfLink as it gets removed in 1.24

Strict confinement. FInd this work on latest/edge/strict channel:

  • Rebase and release 1.23
  • Do not start traefik and k8s-dqlite daemons on install

Sprint report - 24th January to 7th February

Add-ons repository

  • Move the addons out of the main repository
  • Build MicroK8s with the addons taken from the external repository
  • Make add-ons editable. Find them under /var/snap/microk8s/common/addons
  • Remove extensions from enable/diable scripts

Improvements in the Cloudformation Template of MicroK8s

  • Narrow down role permissions
  • New parameters in the CF:
    • Key pairs in a drop down menu populated with what the user already has
    • MicroK8s version to be installed
    • Instance types m4 large, xlarge and 2xlarge
  • UserData in CF human readable and populated with the MicroK8s version

Add-on updates:

  • Remove the Kubeflow and Juju

Performance improvements

  • Create a proposal for using go for the cluster agent. This will reduce our memory footprint.

Bug fixes

  • Upgrade to containerd 1.5.9 to prevent user issues with large container image labels
  • API server warnings in logs (kine and disable-ha)

Sprint report - 7th to 22nd of February

Most of this work is available on the latest/edge channel and will land on the latest/stable and 1.24/stable channels when K8s v1.24 is released.

Add-ons repository

Improvements in the Cloudformation Template of MicroK8s

  • Improve queue handling
  • Joule IndexError after removing node

Core services improvements:

  • Upgrade calico to 3.21.4
  • Build dqlite from fixed commits on all tracks
  • Imporve LXD detection and support on 1.21 and 1.22 tracks

New documentation pages:

Performance improvements

  • Create a proposal for using go for the cluster agent. This will reduce our memory footprint.

Bug fixes

  • Fix cluster.yaml permissions error in microk8s status
  • Reboot does not retain host-access address

Sprint report - 22nd of February until the 7th of March

Most of this work is available on the latest/edge channel and will land on the latest/stable and 1.24/stable channels when K8s v1.24 is released.

Project improvements/updates

  • Move microk8s under the canonical github org
  • microk8s add-node has now a yaml and json output format
  • microk8s reset refactored with improved output
  • LXC profile imporved to work on the latest Ubuntu (21.10+)
  • Retry on error policy extended on Kine
  • Read only kubelet port 10255 will be closed by default

New documentation pages:

Add-ons framework

New addons and updates

  • Mayastor addon prototype. Test it with mcirok8s enable mayastor on the latest/edge channel.
  • ArgoCD community addon. Give it a try with microk8s enable argocd again on the latest/edge channel.
  • Helm3 upgrade v3.8.0

Bug fixes

  • microk8s config yields a url with https://none in it on nodes with multiple interfaces
2 Likes

Sprint report - 7th of March until the 21st

Most of this work is available on the latest/edge channel and will land on the latest/stable and 1.24/stable channels when K8s v1.24 is released.

Project improvements/updates

  • Fix kubelite patch for 1.23.5
  • Build sqlite with “SQLITE_ENABLE_DBSTAT_VTAB=1”

Add-ons framework

  • Introduce the microk8s enable community addon

Documentation

  • Add contributors in readme

Strict confinement

  • Fix git usage denials in strict

Mayastor storage addon

  • Update to the latest mayastor version
  • Push our manifest changes upstream
  • Etcd storage considerations
  • Fork dependencies into canonical org, tag images under cdkbot

New addons and updates

  • Discontinue Kubeflow Addon from the 1.21 track

Bug fixes

  • Copy API server auth arguments when clustering to fix RBAC issues

Sprint report - 21th of March until the 4th of April

Most of this work is available on the latest/edge channel and will land on the latest/stable and 1.24/stable channels when K8s v1.24 is released.

Preparing for the v1.24 release

  • Remove docker specific arguments for 1.24
  • Make sure kubelite patch apply to 1.24.0-alpha.3
  • Refactor release jenkins jobs
  • Unblock the arm64 tests

Project improvements/updates

  • Cluster agent implemented in Go
  • Cluster-agent split to separate repository
  • Investigate CLI inconsistencies

Strict confinement

  • Improve snap boot time after installation
  • Create a curl wrapper and use that for both strict and classic
  • Fix this annoying dqlite bind denial
  • Ensure account-control autoconnects
  • Core addons are used in classic and strict snaps without any patches

Documentation

Mayastor storage addon

  • Error in MayastorPool creation
  • Not creating data image if it already exists

New addons and updates

  • Correct hostpath PVC permission in multinode clusters
  • Upgrade coredns to v1.9.0
  • Upgrade keda to v2.6.1
  • Upgrade linkerd and fix its tests

Sprint report - 4th to 18th of April

Project improvements/updates

  • Fix absolute path CLI help sections
  • Containerd updated to address CVEs
  • microk8s refresh-certs to update any of the certificates used

AWS cloud formation template

Documentation

New addons and updates

  • New addon starboard
  • Update argocd to version 4.5.0
  • Update traefik to 2.5.0
  • Remove of ambassador addon

Sprint report - 18th of April until 2nd of May

Preparing for the next 6 moth cycle.

Project improvements/updates

  • Dqlite version 1.10.0 with memory usage improvements
  • Fix ip counter in render csr template function so entries do not get overwritten
  • Road-test MicroK8s with Ubuntu Jammy 22.04
  • Test MicroK8s charm with Ubuntu Jammy
  • Set “rules of engagement” in microk8s github
  • Fix the bug of ignoring the skip-verify flag
Strict confinement
  • Community addons for strict and classic are taken from the same branch

Documentation

Sprint report - 2nd to 15th of May

Release 1.24 and prepare for the next 6 months

  • Release 1.24

  • Usability fixes

    • Validate installer arguments
    • Fix inconsistent formatting in CLI help sections
    • Update issue and pull request templates
    • Fix microk8s dashboard-proxy in 1.24
  • Looking ahead

    • Spec out and size a bunch of potential work items for the next 6 months
  • Addons work

    • Upgrade nginx-ingress controller to 1.2.0
    • Mayastor for arm64
  • Bug fixes

    • Investigate the microk8s reset of statefulsets
    • Fix modprobe errors for calico
    • Fix deploments on LXC in 22.04

Sprint report - 16th to 31st of May

KubeCon EU was great, thank you all for visiting our booth.

  • Usability fixes

    • Add validations to addon add repo
    • Cleanup calico interfaces when removing microk8s
    • Cleanup leftover IPtable rules
    • Adding version command to microk8s
  • Strict confinment work

    • Handle install and configure denials
  • Image sideloading

    • Cluster agent API endpoint to import images
  • Benchmarking

    • Foundation work to setup a cluster
  • Addons work

    • Allow addons to provide microk8s.anything commands
    • Update Kubernetes Dashboard to 2.4
  • Bug fixes

    • Fix: dashboard access instructions for 1.24