Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/upciti/quitquitquit
Docker image to ease the use of K8S jobs within an istio mesh
https://github.com/upciti/quitquitquit
Last synced: about 1 month ago
JSON representation
Docker image to ease the use of K8S jobs within an istio mesh
- Host: GitHub
- URL: https://github.com/upciti/quitquitquit
- Owner: upciti
- Created: 2021-10-12T14:52:14.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T08:28:19.000Z (about 1 year ago)
- Last Synced: 2023-12-15T09:35:01.761Z (about 1 year ago)
- Language: Shell
- Size: 5.86 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# quitquitquit
Docker image to ease the use of K8S jobs within an istio mesh.
This image is intended to be placed in initContainer of a pod in a job/cronjob.
## Why?
Currently, istio is a bit complicated to use
in `strict mode` for jobs and cronjobs.The job remains in `NotReady` even after the job is executed.
```console
NAME READY STATUS RESTARTS AGE
demo-4cbb2 1/2 NotReady 0 12s
```The solution is to make a POST request to proxy-agent.
This small image allows the use of istio in jobs using containers without curl
or wget.See: [istio/issues/6324](https://github.com/istio/istio/issues/6324)
## xh
`xh` is a alternative to curl written in rust and
does not require any dependencies.See: [ducaale/xh](https://github.com/ducaale/xh)
## Example
```yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
creationTimestamp: null
name: my-cronjob
spec:
jobTemplate:
metadata:
creationTimestamp: null
name: my-cronjob
spec:
template:
metadata:
creationTimestamp: null
spec:
volumes:
- name: shared
emptyDir: {}
initContainers:
- name: init-shared
image: docker.io/upciti/quitquitquit:latest
command: ["cp", "-r", "/shared/", "/volume/"]
volumeMounts:
- name: shared
mountPath: "/volume"
containers:
- image: image_without_curl:latest
name: job
command:
- /volume/shared/entrypoint.sh
args:
- "ls -la /"
volumeMounts:
- name: shared
mountPath: "/volume"
restartPolicy: OnFailure
schedule: 0 * * * *
status: {}
```