- Collect additional parameters provided to kubetools cronjob spec and attach to k8s cronjob spec
- Add annotations and labels options to resources defined in kubetools.yaml file
- Fix docker-compose conflict when kubetools commands are called without activating their venv
- Add Python 3.12 to supported versions, albeit without Flake8 because of CPython bug
- Upgrade GitHub actions workflow to deal with deprecation warnings
- Add nodeSelector config to kubetools file
- Fix bug where
config
command was not printing the actualk8s
configs used bydeploy
because it did not take into account the kube-context, whether default or given with--context
.
- Cython 3.0 release is preventing this package to be released. A constraint of
cython<3
needs to be added to install this - Add ability to use secrets in "migration" jobs
- De-couple serviceAccountName and secrets
- Add support for docker build arguments
- Add support to specify SecretProviderClass
- Add support to specify ServiceAccount
- Add ability to provide a custom script to check the presence of the image on the target registry
- Re-work checking for CronJob API version compatibility against the target k8s cluster
- Fix crash where we could try to delete
default
namespace, which is forbidden by k8s - Fix crash where we tried to delete a namespace that doesn't exist
- Fix crash trying to gather annotations from k8s resource that can't have any
- Fix default registry option to not override registry for images specified directly, so they keep using the docker server default registry (dockerhub)
- No functional change, this is just validating the change of CI to Github Actions
DO NOT USE: This has a bug fixed in v13.9.6
- Allow adding a default registry in command line instead of specifying the registry in kubetools.yml file.
- Added support job time to live
- Add support for CronJob api version
batch/v1beta1
- Ensure Resources within Job containers are parsed correctly, optimise
passing resources through
job_spec
- Allow jobs to specify Resources within Job spec
- Add support for creating CronJob objects in k8s
- Fix bug where 2 concurrent
ktd
commands could create a duplicateddev
network - Small optimisation for checking presence of image in registry
- Pin docker-compose as v2 breaks docker naming convention
- Allow customisation of naming in job configuration
- Ensure command format is correct for full command strings
- Avoid shell escaping full command strings
- Add option to cleanup command for cleaning up completed jobs
- Shell-escape command in run container entrypoint
- Only build/push images relevant to relevant container contexts during a deploy
- Convert timeout envvar to int
- Add envvar to set timeouts for waiting for k8s funcs to complete
- Fix defaulting of propagation_policy param in k8s api job deletion
- Update push command to allow additional tags for image
- Fix regression from 13.0.0 causing upgrades and tests to fail when using an image with an entrypoint, or specifying one with "command" in the config
- Expose propagation_policy param in k8s api job deletion
- Add cli command for building and pushing app images to docker repo
- Add function to kubernetes api to list running jobs
- Update kubernetes api create job with non-blocking option
-
Translate k8s-style
command
/args
options to docker[-compose]-styleentrypoint
/command
This is breaking backwards compatibility for any project using
entrypoint
/command
options in adev
section. These need to be renamed resp.command
/args
to be picked up. The bright side of this is that these cases will now only require 1 copy of the options when the same values were just repeated underdev
to get them to work withktd
(docker-compose
)
- Ignore pods with no owner metadata when restarting a service
- Fix call to check if service exists
- Remove Kubernetes jobs after they complete successfully
- Allow to run upgrades and tests on any container using a containerContext. Especially allows containers that use a released image rather than a Dockerfile
- Ensure docker compose configs are always generated relative to the kubetools config file
- Fix use of
--debug
when usingktd
- Fix issue when creating new deployments alongside existing ones
- Fix
kubetools restart
- Fix cleanup failure in removing namespaces which contain replica sets
Breaking note: this change passes all non Kubetools specific container config through to the generated K8s container spec. Any invalid/unused data would have previously been ignored will now be passed to K8s and throw an error.
- Pass any non-Kubetools specific container config through to K8s container spec
- Implicitly create target namespace if it does not exist
- The
--cleanup
flag will now remove the target namespace if empty - Add
-f
/--force
argument tokubetools restart
- Add
-e KEY=VALUE
flag to inject environment variables when usingkubetools deploy
- Replace
yaml.load
withyaml.safe_load
to avoid CLI warning - Fix issues with listing objects in
kubetools restart
- Fix the test condition for upgrades
- Fix
-f
/--file
handling NoneType attribute error (introduced in v11.1)
- Add
-f
/--file
argument to specify customkubetools.yml
file location forkubetools deploy
andkubetools config
- Add
--ignore-git-changes
argument to skip git check for uncommitted files forkubetools deploy
This release follows a major overhaul of Kubetools - most notably moving all of the server/build logic down into this library (to deprecate/remove the server). The kubetools
command can now deploy direct to Kubernetes.
- Migration to client-only (no more server), meaning new/changed commands:
kubetools deploy <namespace> <app_path> [<app_path>...]
kubetools remove <namespace> [<app>...]
kubetools restart <namespace> <app>
kubeotols cleanup <namespace>
kubetools show <namespace> [<app>]
- Commands removed:
kubetools wait
kubetools list *
kubetools job *
- Remove Python 2 support
- Uses
kubeconfig
and Kubernetes contexts - Correctly uses Kubernetes deployment objects for proper rolling updates
- This also adds rollback compatability
- Improved replica control in
kubetools.yml
:deployments.NAME.minReplicas
(max exists already)deployments.NAME.replicaMultiplier
- Support deployment strategy in
kubetools.yml
:deployments.NAME.updateStrategy
-> K8sDeployment.spec.strategy
- Add
--annotation
argument tokubetools deploy
- Add
--shell
argument toktd enter
- Always ensure deployment names start with the project name
- Fix Python 2 compatability (broken in v10)
- Add
KTD_ENV
environment variable indocker-compose
dev backend - Print out all injected environment variables in
docker-compose
dev backend - Replace
envars
withenvvars
everywhere (w/backwards compatability)
- Fix issue where stdout from a kubetools dev exception would not be formatted properly
- Add "dev backends" support for future work (alternatives to
docker-compose
) - Add kubernetes config generation from the kubetools server
- adds
kubetools configs
command to generate/view them by hand
- adds
- Add ability to define number of retries on readinessProbe
- Add
ktd restart
command - Search for
kubetools.yml
"up" the directory tree, similar to.git
- Bump min click version to 7
- Fix clashes between two projects starting with the same name
- Version bump for pypi release
- Initial public release