i is an Kubernetes Operator for restarting old pod policies management.
NOTE: This is not for production usage. It is under PoC.
Every pod will be supervised by the eye...
Here, I will explain the breif design.
The controller runs syncer by the resource from input and watches the pod.
Controller --> Syncer -(watch)-> Pod
And then delete the pod and recreates.
At the time, the controller will notify via slack which will be configured by Secret resource.
First, you will need to install this CRD.
Run this command.
$ kustomize build "https://raw.githubusercontent.com/KeisukeYamashita/i/master/config/crd" | kubectl apply -f
Then, check crd status.
$ kubectl get crd
Create a secret.
apiVersion:
Kind: Secret
metadata:
app: YOUR_SECRET_NAME
data:
SLACK_URL: "https://hook.xxx.xxx"
And then apply.
$ kubectl apply -f slack-channel-1.yml
Create a custom resource. You can create many rules.
Note that spec.secrectRef
is optional.
apiVersion: i.keisukeyamashita.com/alphav1
Kind: Eye
metadata:
app: my-eye
msg: "I see you"
spec:
lifetime: "100m"
secretRef:
name: YOUR_SECRET_NAME
Then apply your resource.
$ kubectl aaply -f my-eye.yml
Check you status.
$ kubectl get eye
If you set it all correctly, you will see a post in slack at the event.
Note that this is optional.
You can create multiple eyes(policies) for multi lifetime and different slack post.
apiVersion: i.keisukeyamashita.com/alphav1
Kind: Eye
metadata:
app: my-left-eye
spec:
lifetime: "100m"
secretRef:
name: YOUR_SECRET_NAME_LEFT
---
apiVersion: i.keisukeyamashita.com/alphav1
Kind: Eye
metadata:
app: my-right-eye
spec:
lifetime: "3h"
secretRef:
name: YOUR_SECRET_NAME_RIGHT
Happy eyes:)
Copyright 2019 The i Authors.
i is released under the Apache License 2.0.