Skip to content

Releases: configurator/kubefs

v0.4

25 May 15:46
9cdeaf6
Compare
Choose a tag to compare

Readonly mode

Due to popular demand, this release adds the --readonly flag. With this flag,
it is safe to use kubefs with any kubernetes environment, as it will never make
any changes - you can still view the yaml files, but you cannot write, delete,
or create new ones.

A finishing touch

In v0.3, the linux command touch would fail because it tries to set the file's
modification time as well as create it (if it doesn't exist). We've fixed that by
adding the modification time functionality - it is a noop, but will no longer
break touch.

Logs

We've added lots of logging; the process will now output every fuse system call
as it happens.

v0.3

01 May 00:15
67ff090
Compare
Choose a tag to compare

Writable fs

This release expends the fs so it is no longer read-only. Now you can:

  • Delete objects by deleting the .yaml files
  • Duplicate objects by copying .yaml files into new ones
  • Create new objects from scratch by copying files into the right place in the file system

Warning

⚠️ The file system is now writable, and can change or delete things in your kubernetes cluster. Be careful not to run any tools that might, for example rm -rf your entire cluster. ⚠️

Some notes

When writing a file, the apiVersion, kind, name and namespace are completely ignored and replaced by whatever is appropriate to that file's location and name. This means if I write a file into <context>/deployment/ns/my-deployment.yaml, I will always get the following header:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: ns
  name: my-deployment

The end result is that copying yaml (or json) files around will create new objects rather than overwriting the old ones - because we changed the filename.

Things to try

  • Duplicate a deployment
    cp $context/deployments/default/app.yaml $context/deployments/default/app-copy.yaml
  • Create a new secret - since these don't have default values, we don't actually need to include anything in the file to create an empty object
    echo > $context/secrets/default/my-secret
    # Now edit it in our favorite IDE
    code $context/secrets/default/my-secret
    nano $context/secrets/default/my-secret
    vi $context/secrets/default/my-secret

What we're working on next

See our roadmap for some missing functionality - for example:

  • you can't create new files with vs code, because it tries to read the file and errors out
  • file system watchers aren't implemented yet, so IDEs can't show updated object values
  • some quirks still exist in how missing fs functionality is worked around
  • we'd like to add comments to the yaml when applying them fails, showing hints on how to fix them

v0.2

29 Apr 22:59
cfdae33
Compare
Choose a tag to compare

In this release:

  • Windows support

    The entire project was rewritten to use a different backend which supports running on Windows.

  • Auth plugins

    Auth plugins from kubectl are now loaded, so working with external authorization mechanisms,
    such as those needed to connect to GCP and Azure clusters, is fully supported.

  • New command line options

    • It is now possible to see json files in directory listings with --show-json-files
    • You can now hide yaml files from directory listings with --show-yaml-files=false
    • You can now pretty print all json files by using --pretty-json
  • Minor bugfixes

    • Missing files now correctly report file not found instead of I/O error

    • Namespace directories, which can be listed for any name and don't check for existance, wreak
      havoc with some third-party programs that check for file existance and break when it is a
      directory (see for example b-ryan/powerline-shell#495).

      The fix is to now allow opening such directories when they contain a . character, which isn't
      allowed in namespace names anyway.

    • Attempting to open files with unknown extensions will now result in a file not found instead
      of defaulting to yaml.

v0.1 - public beta

28 Apr 23:07
0cc63aa
Compare
Choose a tag to compare
Sensible short flag for --kubeconfig