e5be5af7c4
Stop Add the counterpart to `Init()` so that we're able to gracefully close the connection to containerd, properly freeing resources on shutdown (mainly, the underlying `grpc` connection). Containers The implementation consists of two steps: - preparing `garden.Properties` to become a list of `k=v` strings that serve as filters to `containerd` - reaching out to containerd's containerservice, effectively listing the containers it manages in a given namespace. Also, as we have `Ping` implemented (which is used by the worker's own healthchecker), and `backend.Containers` is the very next thing to be constantly used right after registration (TSA's Healthcheckers try to list both volumes and containers), it made sense to implement this one right now. Create Add the ability to create a container from the backend. It largely relies on the fact that we can convert between `garden.ContainerSpec` down to an OCI-based configuration that `containerd` expects (via the `spec` package). The process is essentially of: 1. creating the container (oci bundle) 2. create a task 3. arrange networking step `3` is not implemented yet though. At the moment, it lacks: - limits - networking ps.: this commit might seem huuuuge, but it's mostly due to the addition of the faking of `containerd.Container`. Signed-off-by: Ciro S. Costa <cscosta@pivotal.io> |
||
---|---|---|
.github | ||
atc | ||
cmd | ||
fly | ||
go-concourse | ||
hack | ||
release-notes | ||
screenshots | ||
skymarshal | ||
testflight | ||
topgun | ||
tsa | ||
vars | ||
web | ||
worker | ||
.dockerignore | ||
.env | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
LICENSE.md | ||
NOTICE.md | ||
README.md | ||
docker-compose.yml | ||
go.mod | ||
go.sum | ||
package.json | ||
tools.go | ||
versions.go | ||
yarn.lock |
README.md
Concourse: the continuous thing-doer.
Concourse is an automation system written in Go. It is most commonly used for CI/CD, and is built to scale to any kind of automation pipeline, from simple to complex.
Concourse is very opinionated about a few things: idempotency, immutability, declarative config, stateless workers, and reproducible builds.
Installation
Concourse is distributed as a single concourse
binary, available on the Releases page.
If you want to just kick the tires, jump ahead to the Quick Start.
In addition to the concourse
binary, there are a few other supported formats.
Consult their GitHub repos for more information:
Quick Start
$ wget https://concourse-ci.org/docker-compose.yml
$ docker-compose up
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1 ... done
Concourse will be running at 127.0.0.1:8080. You can
log in with the username/password as test
/test
.
Next, install fly
by downloading it from the web UI and target your local
Concourse as the test
user:
$ fly -t ci login -c http://127.0.0.1:8080 -u test -p test
logging in to team 'main'
target saved
Configuring a Pipeline
There is no GUI for configuring Concourse. Instead, pipelines are configured as declarative YAML files:
resources:
- name: booklit
type: git
source: {uri: "https://github.com/vito/booklit"}
jobs:
- name: unit
plan:
- get: booklit
trigger: true
- task: test
file: booklit/ci/test.yml
Most operations are done via the accompanying fly
CLI. If you've got Concourse
installed, try saving the above example
as booklit.yml
, target your Concourse
instance, and then run:
fly -t $target set-pipeline -p booklit -c booklit.yml
These pipeline files are self-contained, maximizing portability from one Concourse instance to the next.
Learn More
- The Official Site for documentation, reference material, and example pipelines (which no longer live in this repository).
- The Concourse Tutorial by Stark & Wayne is great for a guided introduction to all the core concepts.
- See Concourse in action with our production pipelines
- Hang around in the forums or in Discord.
- See what we're working on on the project board.
Contributing
Our user base is basically everyone that develops software (and wants it to work).
It's a lot of work, and we need your help! If you're interested, check out our contributing docs.