jindra's People
jindra's Issues
self-host jindra
meaning: write a pipeline for jindra itself and deploy it
run out resources even with debug container
pod should not be deleted by job though
save logs in transit folder
save them in /opt/resource/transit/.jindra/<stage>/logs/<container>.log
fail if init container fails
implement jindra.io/build-no-offset
support updating pipeline
- store new pipeline config in k8s
- update, don’t delete and create due to ownership references
- copy Status
- update check cron jobs
- copy version annotation
implement final stage
make sure transit-out always pushes current state
delete files, which are not in the out resource ... if files should survive more than one stage, it's necessary to use transit as input and output resource
trigger pipeline run when k8s trigger is created
A pipeline run should be triggered, if an event gets created.
Event structure: tbd
implement modifying / validating webhook
validating:
- trigger resource only allowed on first stage
- disallow duplicate input/output resource names in annotation
- disallow duplicate resource naming
- only allow existent resource names in resource annotations
- check that services annotation container exists
- no owner references in stages pod specs
- restart policy not set or set to never
modifying:
- set default names for
onSuccess
,onError
,onFinal
integration test:
- for modifying webhook
- for validating webhook
- for validating a pod via pod validation
- updating pipeline, check that status remains
Make pipeline pausible
check validation tags
properly structure jindra repo
playground aint good
save build number in pipeline status
- update status before build ist startet
- take
jindra.io/build-no-offset: "42"
into account
- take
implement github checks support
set and document env variables that get set automatically
(tbd) from Concourse: https://concourse-ci.org/implementing-resource-types.html#resource-metadata
- $BUILD_ID
The internal identifier for the build. Right now this is numeric but it may become a guid in the future. Treat it as an absolute reference to the build. - $BUILD_NAME
The build number within the build's job. - $BUILD_JOB_NAME
The name of the build's job. - $BUILD_PIPELINE_NAME
The pipeline that the build's job lives in. - $BUILD_TEAM_NAME
The team that the build belongs to. - $ATC_EXTERNAL_URL
The public URL for your ATC; useful for debugging.
create rsync ssh keys secret
- create secret object
- write tests
extend cli to create usable pipeline yamls from pipeline file
rename & move env-to-json
- the name doesn't reflect what it does
- the options are not well named
- it does not belong in the playground folder
Implement proper logging
with error / info / debug level ... configurable
make operater namespace-scope configurable
- namespaces as array or cluster (==
*
?)
Tool for outro containers
Go tool like crij that looks after semaphores
Support max history
use transit dir in rsync container
so logs can be placed there from the runner
note: must be done before on-success, on-error, final container
create job object
- create job object
- make pipeline the owner
- test correctness
implement cron job for trigger resources
- create kubernetes object
- make pipeline the owner
- test kubernetes object
- create on pipeline creation
- update on pipeline destruction
Automate naming for runner script & jindra
So they make changes don’t break runner
... use go generate
Annotation for debugging resources
ensure that runner job is owned by a pipeline
- implement
- create integration test
create service account & rbac rules for pipeline run job
- create service account, role, rolebinding
- permissions for k8s-pod-status
- permissions to create and delete pods with dedicated names (possible?)
- let runner own sa, role, rolebinding
Validate name length with kubebuilder
Signal handling in crij
delete rsync keys when pipeline is finished
allow offline testing
by using kind and setting all jindra-generated containers imagePullPolicy: IfNotPresent
allow env file for out- and in-resources
this way, we can pass data, that is only available during run (git commit, etc.)
- extend crij: add parameter for allowing env file
- add annotation for resources where you can define, where the env file lies
- delete env file after reading (to keep resource directory clean)
make sure stage init-containers are included
and between tools-setup and resource init containers ... or should this be configurable 🧐? ... via annotation?
- do it
- test it
- document it
save resource outputs in resource folder
save them in resource folder under .resource-stdout
and .resource-stderr
make sure debug container keeps running until the end
even if other containers fail (apart from init containers)
create transit integration test with kind
... using kind (kubernetes in docker)
- start pipeline, create a file in stage 1 & stage 2, copy files from transit to local filesystem and check whether all files are there with correct content
Output resource Logs + create debug file
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.