New Features

  • When deploying an update, kotsadm operator removes old resources no longer exist in the new version
  • Added support for optional resources in KOTS applications. This is specified using an annotation, documented https://kots.io/vendor/packaging/optional-resources/
  • Added KOTS Hooks to manage job lifecycle. KOTS will now be able to delete a job on success or failure, and Helm Hooks will be respected. Documented at https://github.com/replicatedhq/kots.io/pull/61 (merged in at release)
  • KOTS Operator now handle CRDs and Custom Resources deployed to the same application. Nothing needed to enable this, kots detects this and handles it. Side effect: dry run is not executed if the application contains custom resource definitions for now.
  • KOTS application can now specify a namespace hard-coded (or templated) in the YAML. This isn’t recommended for most applications and we can’t guarantee that “existing cluster” installations will have proper RBAC set up. But this will work in kURL installs, and was required to handle scenarios where a CRD and custom resource was deployed at the same time (CRDs aren’t deployed to a namespace).
  • When the operator doesn’t have permissions to execute preflight checks, we show the error, and allow the user to execute manually using the kubectl plugin, try again, or run with the limited preflights.
  • KOTS install will now respect LimitRanges defined in the Kubernetes namespace, when deploying to a new namespace. This is useful in managed services (i.e. OpenShift Online) that have a strict 1Gi limit on PVCs.
  • Removed the binary rendering from the diff tab when using a Helm chart

Bug Fixes

  • Application update via airgap bundle does not work.
  • Errors while injecting image pull secrets into Helm charts that contain private images
  • kots download CLI command showing invalid errors