Go to file
Ciro S. Costa e5be5af7c4 worker: add Create, Containers, and Stop
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>
2019-11-18 14:13:21 +00:00
.github don't mark milestoned issues as stale 2019-11-05 09:22:23 -05:00
atc addressed review comments. 11/8/2019 2019-11-08 14:52:00 +08:00
cmd pull out workercmd from cmd/concourse 2019-09-12 10:00:39 -04:00
fly Merge pull request #4758 from witjem/4549-fixed-error-msg 2019-11-15 14:26:07 -05:00
go-concourse go-concourse: fix flaky tests 2019-09-19 12:03:41 -04:00
hack hack: add `vim` to dlv image 2019-11-12 09:22:15 -05:00
release-notes Add v5.5.5 release notes 2019-11-08 15:08:45 -05:00
screenshots add 2x scaled screenshot for hidpi laptops 2018-09-19 10:36:30 -04:00
skymarshal Merge pull request #4729 from concourse/fine-grain-cf-auth 2019-11-11 10:30:37 -05:00
testflight atc: initial testflight coverage for var_sources 2019-11-07 14:38:17 +08:00
topgun Same problem that #4764 tried to fix 2019-11-14 17:41:10 -05:00
tsa feat(log): Add --log-cluster-name option to enable including cluster name in log line. 2019-09-11 08:58:41 +08:00
vars ginkgo blur 2019-09-16 17:09:56 -04:00
web Avoid infinite loop in web ui when pipeline has loops 2019-11-08 14:57:49 +00:00
worker worker: add Create, Containers, and Stop 2019-11-18 14:13:21 +00:00
.dockerignore flesh out CONTRIBUTING.md 2018-09-25 14:18:48 -04:00
.env run watsjs/testflight against prebuilt Concourse 2018-10-01 17:10:35 -04:00
.gitignore ignore idea files 2019-05-10 11:07:25 +02:00
CODE_OF_CONDUCT.md move important docs to root 2018-11-20 11:17:20 -05:00
CONTRIBUTING.md fixing typo 2019-10-15 17:07:34 +03:00
Dockerfile dockerfile: fix unpacking of containerd binaries 2019-11-14 19:28:12 +00:00
LICENSE.md re-init 2018-09-18 15:26:17 -04:00
NOTICE.md say "Present" in NOTICE.md 2019-04-09 16:08:20 -04:00
README.md Remove example dir 2019-08-02 12:41:20 -04:00
docker-compose.yml Addressed review comments, 11/7/2019. 2019-11-07 15:54:42 +08:00
go.mod worker: add Create, Containers, and Stop 2019-11-18 14:13:21 +00:00
go.sum worker: add runner that brings `containerd` up 2019-11-13 14:38:52 +00:00
package.json web: upgrade dependencies 2019-10-21 11:25:12 -04:00
tools.go Add tools.go to keep track of tool versions 2019-04-08 15:57:27 -04:00
versions.go concourse/#3819 using zstd to streamIn/Out between workers 2019-06-24 23:08:10 -04:00
yarn.lock web: upgrade dependencies 2019-10-21 11:25:12 -04:00

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.

booklit pipeline

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

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.