
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Kubetools is a tool and processes for developing and deploying microservices to Kubernetes.
Kubetools is a tool and processes for developing and deploying microservices to Kubernetes. Say that:
And you would like:
Kubetools provides the tooling required to achieve this, by way of two CLI tools:
ktd
: generates 100% local development environments using Docker/docker-composekubetools
: deploys projects to Kubernetes, handling any changes/jobs as requiredBoth of these use a single configuration file, kubetools.yml
, for example a basic django
app:
name: my-app
containerContexts:
django_app:
build:
registry: my-registry.net
dockerfile: Dockerfile
dev:
volumes:
- ./:/opt/django_app
upgrades:
- name: Upgrade database
containerContext: django_app
command: [./manage.py, migrate, --noinput]
tests:
- name: Nosetests
containerContext: django_app
command: [./manage.py, test]
deployments:
my-app-webserver:
annotations:
imageregistry: "https://hub.docker.com/"
labels:
app.kubernetes.io/name: my-app-webserver
serviceAccountName: webserver
secrets:
secret-volume:
mountPath: /mnt/secrets-store
secretProviderClass: webserver-secrets
containers:
uwsgi:
command: [uwsgi, --ini, /etc/uwsgi.conf]
containerContext: django_app
ports:
- 80
dev:
command: [./manage.py, runserver, '0.0.0.0:80']
dependencies:
mariadb:
containers:
mariadb:
image: mariadb:v10.4.1
cronjobs:
my-cronjob:
batch-api-version: 'batch/v1beta1' # Must add if k8s version < 1.21+
schedule: "*/1 * * * *"
concurrency_policy: "Replace"
containers:
hello:
image: busybox
command: [/bin/sh, -c, date; echo Hello from the Kubernetes cluster]
With this in your current directory, you can now:
# Bring up a local development environment using docker-compose
ktd up
# Deploy the project to a Kubernetes namespace
kubetools deploy my-namespace
pip install kubetools
NOTE: Since Cython 3.0 was released, the installation of kubetools
dependencies will fail
due to compatibility issues between Cython 3 and PyYaml (see
this issue). This can be worked around for example
with pip
by using a "constraints" file containing cython<3
.
Users can configure some aspects of kubetools
. The configuration folder location depends on the
operating system of the user. See the
Click documentation
to find the appropriate one for you. Note that we use the "POSIX" version (for example
~/.kubetools/
on Unix systems).
kubetools.conf
contains key-value settings, see settings.py
for the
possible settings and their meaning.scripts/
can contain scripts to be made available to ktd script
commandInstall the package in editable mode, with the dev extras:
pip install -e .[dev]
For deployment testing, you will need a kubernetes cluster and a docker registry. You can get both
easily using minikube
:
minikube start --addons registry --insecure-registry ${MINIKUBE_IP}:5000
Then you can deploy to that environment:
kubetools --context minikube deploy --default-registry ${MINIKUBE_IP}:5000 default .
MINIKUBE_IP
value can vary depending on your local environment. The easiest way to get the correct
value is to start minikube once then reset it:
minikube start
MINIKUBE_IP=$(minikube ip)
minikube delete
...
v<version>
(for example v1.2.3
)v<version>
against master
branchCHANGELOG.md
into the release descriptionWe assume that ServiceAccount
and SecretProviderClass
are already created (if needed), before deploying the project with kubetools.
kubetools
now supports passing values for ARG
parameters used in Dockerfiles, using
--build-args
. This has a couple of caveats though:
ktd
. A workaround for this is to use the default value of the ARG
instruction.FAQs
Kubetools is a tool and processes for developing and deploying microservices to Kubernetes.
We found that kubetools demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.