Gefyra aims to ease the burdens of K8s based development for developers. Run a container locally and connect it to a Kubernetes cluster to:
- talk to other services
- let other services talk to your local container
- debug
- faster iterations - no build/push/deploy/repeat
The extension uses gefyra-ext which is basically a wrapper around Gefyra itself. It allows leverage Gefyra as a libary and takes JSON strings as an input, which makes it easy for JS/TS based programs to use Gefyra.
The Docker Desktop extension comes with a packed binary ('gefyra-ext') and builds an UI on top of it.
Gefyra is available on the Docker Desktop extension marketplace.
You can also install via command line:
docker extension install gefyra/docker-desktop-extension:latest
To build make sure to add executable from https://github.com/gefyrahq/gefyra-ext/ to root directory.
Make sure to follow Docker's extension guidelines: https://docs.docker.com/desktop/extensions-sdk/ UI component library: https://mui.com/
Install extension:
make install-extension
Run hot reload webpack server for UI:
cd ui/
npm run start
Connect webpack server to Gefyra Docker Desktop extension:
docker extension dev ui-source gefyra/docker-desktop-extension:latest http://localhost:3000
Make Chrome devtools available:
docker extension dev debug gefyra/docker-desktop-extension:latest
Just bump the gefyra
package in the ui/package.json
file (via npm
).
Rebuild the extension - it references the version found in the package file and will download
the corresponding binary files.
The windows binary for gefyra-ext
consists out of many files. These files need to be
present in metadata.json
under the host.binaries.windows
key.
To make sure the file list and actual files in the Docker image are consistant use following command from the Makefile:
make update-windows-file-list
This command is also used in the CI when building a new image.
In case the metadata.json
file is changed the CI job for building an image fails.
- Bump package.json (
npm version
) - Commit + Tag
- Release on Github