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”

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

Pulse Notes 2023#1 - 3rd to 13th of January

Worked on Issues

  • Number of total issues this sprint: 11
  • Non-triaged issues: 1
  • Triaged issues: 5
    • Converted to bug report: 2
    • Converted to feature request: 1
    • Assesment provided: 2
  • In-progress issues: 4
  • Closed: 1

Worked on Tasks

Completed Tasks

  • Improve gpu addon with MiG support
  • Integrated tests for ELB addon
  • Fixing resource leaks on Jenkins while testing AWS addons
  • Added documentation for the ELB addon
  • Fixed OpenEBS issue on 1.25
  • Updated Velero documentation
  • Review and merge PR for cert-manager wait ready
  • Cluster API: End to end upgrade tests

Tasks in Review

  • Cluster API PoC: In-place node upgrades
  • Improved test-upgrade-path test on strict branches

MicroK8s Pulse Notes 2023#2 - 16th to 27th of January

Worked on Issues

  • Number of total issues this sprint: 13
  • Non-triaged issues: 3
  • Triaged issues: 10
    • Converted to bug report: 0
    • Converted to feature request: 2
    • Assesment provided: 8
  • In-progress issues: 4
  • Closed: 1

Worked on Tasks

Completed Tasks

  • CAPI: v0.4.0 Release
  • Upgrade to core20 base
  • CAPI: In-place node upgrade PoC
  • Closed the gap for test-upgrade-path tests between strict and classic
  • Update and pin traefik to 20.8.0
  • Added experimental disk-only mode operation for dqlite
  • Update ingress to 1.5.1
  • Update GPU operator t o 22.9.1
  • Update containerd to 1.6.15
  • Updated hostpath-storage documentation with volume sizing limitation
  • Testing cost optimizations
  • Re-signed MicroK8s installer executables

Tasks in Review

  • Initial spec for launch configurations
  • Schema versioning for launch configurations
  • Investigating cloud controller manager integrations
  • Sanitizing arguments to help with multi-version clustering

MicroK8s Pulse Notes 2023#3 - 30th of January until the 10th of February

Worked on Issues

  • Number of total issues this sprint: 11
  • Non-triaged issues: 2
  • Triaged issues: 9
    • Converted to bug report: 3
    • Converted to feature request: 0
    • Assesment provided: 6
  • In-progress issues: 9
  • Closed: 0

Worked on Tasks

Completed Tasks

  • Initial spec for launch configurations
  • Schema versioning for launch configurations
  • CAPI: In-place upgrades
  • CAPI: Upgrade fixes
  • Initial work on MicroK8s with Fips
  • Launch configurations to enable dns by default
  • Basic MicroK8s configuration with launch configurations
  • Bug fix for calico offloading disable action
  • CoreDNS update to 1.10.0
  • Bug fix for the registry cleanup on CI/CD jobs
  • Bug fix for refresh-certs
  • Containerd 1.16.15 updates backported
  • Golang 1.19 update for 1.23 and 1.24
  • Improving AWS Appliance with SSH security group option
  • Community PR: Observabiltiy improvements
  • Community PR: Split tests in community addons
  • Community PR: Cilium for ARM
  • Community PR: Increase containerd timeout

Tasks in Review

Many thanks to our community/contributors for the feedback and PRs.

MicroK8s Pulse Notes 2023#4 - 13th to 24th of February

Worked on Issues

  • Number of total issues this sprint: 19
  • Non-triaged issues: 7
  • Triaged issues: 12
    • Converted to bug report: 0
    • Converted to feature request: 1
    • Assesment provided: 9
  • In-progress issues: 9
  • Closed: 3

Worked on Tasks

Completed Tasks

  • CAPI: Tests for in-place upgrades
  • Tests for mixed version clustering
  • CAPI: Release v0.5.0
  • Configure fips enabled microk8s snap to use FIPS openssl
  • Build cluster-agent for fips
  • PR Review: Add EasyHAProxy
  • PR Review: Add Static HTTP Server Parking Addon
  • Fix failure for addons repo commands called without sudo
  • Fail MicroK8s installation on LXD deployments without the correct profile
  • Print deprecatrion warning for chained addons operations
  • Split and configure microk8s tests so they can be called individually
  • Add a healthcheck endpoint for cluster agent and healtcheck test for MicroK8s

Tasks in Review

  • Launch configurations: side-load images into containerd
  • Initial spec for CIS
  • CAPI: Second-day operations enable/disable addons

Many thanks to our community/contributors for the feedback and PRs.

MicroK8s Pulse Notes 2023#5 - 27th of February until the 10th of March

Worked on Issues

  • Number of total issues this sprint: 7
  • Non-triaged issues: 2
  • Triaged issues: 5
    • Converted to bug report: 0
    • Converted to feature request: 0
    • Assesment provided: 5
  • In-progress issues: 0
  • Closed: 5

Worked on Tasks

Completed Tasks

  • Launch configurations: Image sideloading
  • Launch configurations documentation
  • Initial spec for CIS
  • CAPI: Second-day operations enable/disable addons
  • CAPI: Snap-store proxy option
  • CAPI: Documentation
  • Initial spec for dual-stack networking
  • FIPS: Build containerd/runc
  • Review for Shifu PR
  • Pin helm chart versions for addons in the core repository
  • Close code gap between eksd and main tracks
  • Updating docs to not promote multi-addon operations

Tasks in Review

  • Update Calico to 3.25.0
  • Preperation for 1.25-eksd release
  • GitHub Actions backport workflow for MicroK8s repository

Many thanks to our community/contributors for the feedback and PRs.

MicroK8s Pulse Notes 2023#6 - 13th to 24th of March

Worked on Issues

  • Number of total issues this sprint: 11
  • Non-triaged issues: 3
  • Triaged issues: 4
    • Converted to bug report: 0
    • Converted to feature request: 0
    • Assesment provided: 4
  • In-progress issues: 0
  • Closed: 4

Worked on Tasks

Completed Tasks

  • CAPI: Bug fix on worker leave
  • Update Mayastor to 2.0.0
  • Update Calico to 3.25.0
  • Backport action for MicroK8s repository
  • Kine unit tests and benchmark for Create
  • Kine unit tests and benchmark for Update
  • Kine unit tests and benchmark for Get
  • Kine unit tests and benchmark for Delete
  • Kine unit tests and benchmark for Watch
  • Kine unit tests and benchmark for Leases
  • Kine unit tests and benchmark for List
  • Community PR Review: Regenerate API Server Certificate
  • Community PR Review: Specifying image used by Multipass
  • Community PR Review: Fixes #3243
  • Statically linking containerd and runc
  • Metallb image repository update
  • TLS config fixes for dqlite

Tasks in Review

  • Nginx-ingress addon for community
  • EKS-D 1.25 Release

Many thanks to our community/contributors for the feedback and PRs.

MicroK8s Pulse Notes 2023#7 - 27th of March until the 7th of April

Worked on Issues

  • Number of total issues this sprint: 18
  • Non-triaged issues: 1
  • Triaged issues: 9
    • Converted to bug report: 1
    • Converted to feature request: 1
    • Assesment provided: 7
  • In-progress issues: 0
  • Closed: 8

Worked on Tasks

Completed Tasks

  • EKS-D 1.25 Release
  • CNI options documentation for MicroK8s
  • Bugfix MicroK8s status takes a long time when dqlite is not running
  • Bugfix Handle case where dqlite IP is unknown
  • Update go to 1.20 for 1.27 release
  • Testing 1.27 release candidate
  • CI fixes
  • Kine optimizations migration strategy
  • Kine testing with dqlite
  • Measuring CPU and memory utilization in Kine tests
  • Investigation Mayastor issues
  • Non-default CIDR guards
  • Clustering launch configurations
  • Finalizing launch configurations feature
  • Enable setting MinTLSVersion for cluster-agent

Tasks in Review

Many thanks to our community/contributors for the feedback and PRs.