Skip to content

Releases: google/kf

v2.11.17

27 Mar 22:08
f3d2bd5
Compare
Choose a tag to compare

Changelog

  • Added --no-short-circuit-wait flag (defaults to false) to many app commands which allows commands to terminate without waiting only if they are operating on an app that is in the stopped state.
  • Changed increased concurrency of app and route reconcilers to improve performance.

Risks and mitigations

The --no-short-circuit-wait flag is defaulted on and is expected to improve the performance of common kf workflows by automatically skipping unnecessary waiting. If you notice problems, test your commands with --no-short-circuit-wait=false to disable the new behavior.

Increased concurrency of app and route reconcilers is expected to improve performance at the cost of higher load on the Kubernetes control plane as well as Kf's processes. If experiencing performance problems allocate more resources to Kubernetes.

Compatibility

  • It's safe to use this version of the Kf CLI with the previous server version; it should start decreasing wait times.
  • It's safe to use the previous version of the Kf CLI with this server version.
  • It's safe to roll back this server version to the previous version of Kf.

Known issues

  • Some commands may show an incorrect text string describing why they're not waiting for the resource to be reconciled on the Kf server e.g. showing "Creating autoscaling rule for App "foo" in Space "bar" asynchronously because app is stopped" when the app is started, but instead the autoscaling isn't enabled yet.

Dependencies

Dependency Version
Tekton v0.32.1
ASM 1.15.3-asm.6+config2
Config Connector 1.66.0

v2.11.16

27 Feb 20:39
d859602
Compare
Choose a tag to compare

Changelog

  • Added controller metrics logging. Each controller will now write statistics to stdout periodically in a format like the following: {"knative.dev/controller": "spaces.kf.dev", "averageMSPerReconciliation": 0.5, "currentQueueDepth": 1, "reconciliationsPerSecond": 0.03333278317074718, "statuses": {"unknown": 0, "success": 2, "failure": 0}, "logger": "controller.spaces.kf.dev", "message": "Controller Statistics"} Fields include:
    • averageMSPerReconciliation - Average time in milliseconds each reconciliation took in the report period.
    • currentQueueDepth - The number of items waiting to be reconciled.
    • reconciliationsPerSecond - Number of reconciliations performed per second.
    • statuses - A map of reported reconciliation statuses.
    • message - always "Controller Statistics"
    • knative.dev/controller The controller the metrics belong to, each Kf type will be reported in its own controller.
  • Added new documentation about creating and using offline Java buildpacks.
  • Added additional logging to Kf CLI during push and start

Known Issues

  • None

Risks and Mitigations

  • If the new kf CLI causes failures during waits, it is safe to return to the previous version.

Dependencies

These are the minimum versions Kf is tested against, newer minor versions may be used.

Dependency Version
Tekton v0.32.1
ASM 1.15.3-asm.6+config2
Config Connector 1.66.0

v2.11.15

17 Jan 17:05
c9c1f00
Compare
Choose a tag to compare

Changelog

  • Fixed: Unneeded extra replica-set with respective pods being created and destroyed when starting a stopped application.
Dependency Version
Tekton v0.32.1
ASM 1.15.3-asm.6+config2
Config Connector 1.66.0

v2.11.14

13 Jan 23:13
72726b3
Compare
Choose a tag to compare

Changelog

  • Fixed: Segmentation fault with mapfs
  • Fixed: SIGTERM propagation to PID 1 when a replica is killed or restarted
  • Added: routeHostIgnoringPort flag to ignore ports specified in the host header when routing requests

v2.11.13

22 Nov 23:44
2721c44
Compare
Choose a tag to compare

Changelog

  • Added: Deployment viewer permission to developers and auditors.
  • Added: Start commands can be shown for apps.
  • Added: Ability to disable VirtualService retries.
  • Added: The ability for Tasks to work with NFS.
  • Added: Examples of using set-env with arguments that look like flags.
  • Added: Documents explaining how to debug Kf resources using kubectl.
  • Added: Annotation to Apps that allows kubectl to pick the user container by default for logs, exec, cp, etc.
  • Added: Documentation explaining what is tested during Kf releases.
  • Added: Command kf fix-orphaned-bindings to fix bindings without owners which dry-runs by default.
  • Fixed: Deployment Manager example creating Kubernetes with an unsupported base image.

Risks and mitigations

  • kf fix-orphaned-bindings may stop part way through if it encounters an error. If that happens, fix the broken binding or use the dry-run mode (default) and run the kubectl commands it recommends manually.
  • If NFS breaks tasks disable the feature.
  • If App start command adds too much latency to reconciliation, disable the feature.

Known issues

  • Routing retries won't be applied immediately. Instead you'll have to wait for a periodic reconciliation or force one by adding/removing a route or deleting the VirtualService.

v2.11.10

20 Oct 06:17
Compare
Choose a tag to compare

Release Notes

This is a patch of the v2.11.9 release and doesn't include all changes on the main branch.

  • Fixed RouteSpec ordering when hostname are the same and path are of same length.
  • Changed Route reconcilation to not track the status of VirtualService, which caused too many unnecessary updates to VirtualService.

Risks and Mitigations

This release changes the interaction between VirtualServices and Routes. Route statuses reflect when a VirtualService has been updated, but may indicate they're ready before the VirtualService is ready. Most route changes should take effect nearly instantly, but in rare cases may take longer. This means that Apps may also show ready before their routes are fully propagated.

To return to the old behavior set routeTrackVirtualService to true:

kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/routeTrackVirtualService','value':true}]"

This reduces the number of conflicting updates in spaces where hundreds of routes are mapped to the same domain.

v2.11.9

14 Oct 18:08
Compare
Choose a tag to compare
v2.11.9 Pre-release
Pre-release

v2.11.9

This is a patch of the v2.11.8 release and doesn't include all changes on the main branch.

Release Notes

Risks and Mitigations

  • CPU intensive apps will not get an upper bound unless explicitly set in the manifest. Operators should monitor for any intensive applications and inform the teams to set cpu-limit
  • App teams should be asked to validate their CPU requirements are correct in Kf, teams that increased CPU to account for bursts necessary during app startup may be able to reduce their requests.

v2.11.8

21 Sep 18:18
06282c4
Compare
Choose a tag to compare

Changelog

  • Changed: Apps now get a startup probe and default liveness and readiness probes that more closely match CF's Diego runtime.
  • Added: Developers can set startupProbe, livenessProbe, and readinessProbe mapping to the K8s concepts of the same name in their manifests.
  • Added: Kf manifests now support health-check-invocation-timeout which was introduced in CAPIv3.
  • Added: New validation for health check fields in manifests to catch errors earlier and provide better messages.
  • Breaking: Kf now requires a Kubernetes version that supports startupProbe in Pods (v1.20 or above).
  • Changed: Apps pushed with container images now support overriding the entrypoint so they can be used with NFS UID/GID mapping
  • Added: Platform operators can now configure default progress deadlines and termination grace periods for apps.
  • Added: Platform operators can now pin buildpacks using git tags.
  • Added: Platform operators can now configure task retention policies.
  • Fixed: Space auditors now get the same set of permissions as developers (except for secrets).
  • Fixed: Apps with bindings in their manifest will now delete the bindings when the app is deleted.
  • Fixed: kf.dev "edit this page" links now point to GitHub.

v2.11.7

21 Sep 17:57
fead48c
Compare
Choose a tag to compare
Fix webhook defaulting for probes. (#929)

This ensures probes set won't get a 1 second timeout on the probe
which is causing some applications to crash.