INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / Thingiverse / RSS / GPG

Vault secret retrieve and save to JSON file

№ 10280 В разделах: Programming Sysadmin от September 1st, 2019,
В подшивках: , ,

I wrote small program to retrieve secrets from Vault and provide them to my PHP and Python apps. ENV variables with connection credentials is useful with Docker containers and even Kubernetes, list of secrets to retrieve can be stored inside Docker image.

Secret stored in Vault

Result file on disk

Source code and binary release

Нет комментариев »

Fast bootstrap of Operator SDK and your first project

№ 10268 В разделе "Programming" от August 30th, 2019,
В подшивках: ,

1) Install operator-sdk on your computer I prefer to install into $GOPATH/bin.
2) create script somewhere like /opt/

set -e


# operator sdk
export GO111MODULE=on
echo "Bootstraping ${NAME}"
operator-sdk new ${NAME} --git-init --repo ${REPO} --verbose
cd ${NAME}
echo "Adding API ${API_VERSION}"
operator-sdk add api --api-version=${API_VERSION} --kind=${KIND} --verbose
echo "Creating controller"
operator-sdk add controller --api-version=${API_VERSION} --kind=${KIND} --verbose

3) change directory to your “~/dev” and run script bash /opt/, it will create new directory “~/dev/redis-operator

4) build your new operator, pack to image operator-sdk build redis-operator

5) push new image to registry with docker push

Нет комментариев »

Redis operator for Kubernetes

№ 10254 В разделах: Programming Sysadmin от August 27th, 2019,
В подшивках: , , , ,

Redis operator runs Sentinel and Redis, makes Redis high available with HAProxy.

Нет комментариев »

MQTT operator for Kubernetes

№ 10248 В разделах: Programming Sysadmin от August 23rd, 2019,
В подшивках: , , , ,

Run multiple MQTT instances in your Kubernetes cluster. Can store persistent database.

Documentation and download here

Нет комментариев »

Django operator for Kubernetes

№ 10240 В разделах: Programming Sysadmin от August 22nd, 2019,
В подшивках: , , , ,

You can run projects with collectstatic and migrations at init stage, provide ENVs, service and pods annotations.

Full Spec:

image specific settings

PullPolicy: imagePullPolicy, default IfNotPresent
Image: string, required, format “image:tag”
Replicas: integer, default 1

manage resources

Read more about resources limiting here

PodRequests: default is empty
PodLimits: default is empty

Affinity and antiaffinity manual

Affinity: default is empty

set annotations to service and pod

ServiceAnnotations: key: value dict, default is empty
PodAnnotations: key: value dict, default is empty

application specific configuration

AppPort: integer, internal application port, default 8000
AppEnv: EnvVar array, default is empty
AppStaticPath: string, path to static files, default /app/static
RunMigrate: bool, run migrations at init stage, default False
RunCollectStatic: bool, run collectstatic at init stage, default False

Нет комментариев »


Fortune cookie: I went to church to confess my sins to God And then I realized there was no God and I had no sins.