Commit Graph

694 Commits

Author SHA1 Message Date
Simone Gotti 0e2b01a586 runservice: correctly handle skipped tasks in fetcher
skip fetching of tasks with status skipped, not only tasks marked as skip.
This avoid many wrong an noisy logs of type "executor task with id taskid
doesn't exist. This shouldn't happen. Skipping fetching"
2020-03-02 10:40:59 +01:00
Simone Gotti eb180da914
Merge pull request #225 from sgotti/runservice_fix_handling_of_wrong_executortask_status
runservice: fix handling of wrong executortask status
2020-03-02 10:26:32 +01:00
Simone Gotti 4da7c23bb8
Merge pull request #224 from sgotti/executor_use_cancellable_context_in_executetask
executor: use cancellable context in executetask
2020-03-02 10:26:16 +01:00
Simone Gotti 382705bde9
Merge pull request #223 from sgotti/executor_fix_stopping_of_not_running_task
executor: fix stopping of not running tasks
2020-03-02 09:45:39 +01:00
Simone Gotti cf8884d43a
Merge pull request #220 from sgotti/runservice_use_all_scheduled_tasks_in_scheduleRun
runservice: use all scheduled tasks in scheduleRun
2020-02-28 15:03:39 +01:00
Simone Gotti 19611c18e7 runservice: fix handling of wrong executortask status
updateRunTaskStatus should also accept transitions from not started to a
finished state like "success", "failed", "stopped" since we could miss some
status updates from the executor for many reasons.
2020-02-28 13:02:35 +01:00
Simone Gotti e4507446ed executor: use cancellable context in executetask
Use a cancellable context to handle running task stop.
When the context is done the pod will be stopped.
2020-02-28 10:52:36 +01:00
Simone Gotti 97d145a9d3 executor: fix stopping of not running tasks
When a related runningTask doesn't exist and the executor task status is
running just report it as failed ignoring if it's marked to stop.
2020-02-28 10:45:07 +01:00
Simone Gotti 3ac018e6e5 runservice: use all scheduled tasks in scheduleRun
rename activeExecutorTasks to scheduledExecutorTasks and don't filter out
finished tasks.
In some logic we need all the scheduled tasks and not only the not finished
ones.
2020-02-28 09:56:12 +01:00
Simone Gotti a4e280cd7d
Merge pull request #222 from sgotti/executor_fix_reporting_of_stopped_tasks_and_steps
executor: fix reporting of stopped tasks and steps
2020-02-28 09:55:40 +01:00
Simone Gotti ab33bae35f
Merge pull request #221 from sgotti/executor_serialize_task_handling
executor: serialize task handling
2020-02-28 09:54:35 +01:00
Simone Gotti 19b8c7f427 executor: fix reporting of stopped tasks and steps
In executeTask set the executor task and step phase to stop if task spec Stop is
true.
2020-02-27 17:38:00 +01:00
Simone Gotti 88dbca15a3 executor: serialize task handling
taskUpdater will be called serially and won't block. It'll execute a goroutine
for executing the task and for sending the task state to the scheduler.

executeTask will just start task execution, all the logic of choosing if
starting a task is moved inside taskUpdater

In this way we avoid concurrency issues when handling the same executorTask
in parallel
2020-02-27 17:19:42 +01:00
Simone Gotti 268a2b83ea
Merge pull request #218 from sgotti/runservice_minimize_scheduling_of_tasks_that_will_be_queued_by_the_executor
runservice: minimize scheduling of tasks that will be queued by the executor
2020-02-27 16:08:48 +01:00
Simone Gotti 145c87b4c0 runservice: minimize scheduling of tasks that will be queued by the executor
Since the executor only periodically updates its state we could end up
scheduling much more tasks than the executor ActiveTasksLimit. This will happen
in the case of many parallel tasks that can all start at the same time.

To avoid this also considere the executor tasks saved in etcd that represent
the real view of scheduled tasks.
2020-02-27 11:03:03 +01:00
Simone Gotti e8fdb8dfae
Merge pull request #219 from sgotti/runservice_mark_not_running_tasks_skipped_when_run_stop
runservice: mark not running tasks as skipped when run marked to stop
2020-02-27 09:34:27 +01:00
Simone Gotti 5dd9e587fe runservice: mark not running tasks as skipped when run marked to stop
Currently when a run is marked to stop we are going to stop currently running
tasks and then their childs will be marked as skipped.

But tasks not depending on a stopped task (root task or childs with a finished
parent) that are just waiting for an executor slot, will be scheduled when
there will be a free slot also if the run is marked to stop (and then the
scheduler will stop them after some seconds).

This patch will mark all not started tasks as skipped when the run is marked to
stop.
2020-02-26 16:45:09 +01:00
Simone Gotti 3e611f6cd1
Merge pull request #215 from sgotti/gateway_move_auth_api
gateway: move authentication apis to /api/v1alpha/auth
2020-02-20 09:53:52 +01:00
Simone Gotti eb48e73a54 gateway: move authentication apis to /api/v1alpha/auth
Move the various authentication apis to /api/v1alpha/auth since they should be
versioned like other apis.
2020-02-19 10:48:14 +01:00
Simone Gotti 42785a1aee
Merge pull request #213 from sgotti/update_deps
go.mod: update dependencies
2020-02-18 22:49:32 +01:00
Simone Gotti ed53183431 go.mod: update dependencies
Update all the updatable dependencies
2020-02-18 13:55:50 +01:00
Simone Gotti 375d8ed168
Merge pull request #212 from sgotti/release_v0.5.0
Release v0.5.0
2020-02-18 09:27:04 +01:00
Simone Gotti 3fd32a4d32 Release v0.5.0 2020-02-17 15:14:24 +01:00
Simone Gotti 109d488aba
Merge pull request #208 from sgotti/gitsource_oauth2_skipverify
gitsources: handle skipverify also in oauth2 requests
2020-02-11 22:28:15 +01:00
Simone Gotti dad7447989 gitsources: handle skipverify also in oauth2 requests
Pass a custom http client set to skip tls verification if required to oauth2
calls.
2020-02-11 21:49:32 +01:00
Simone Gotti 6c9105ddd2
Merge pull request #207 from sgotti/github_handle_empty_user_email
github: handle nil user email
2020-02-11 17:53:29 +01:00
Simone Gotti 2750598a86
Merge pull request #205 from sgotti/remotesource_create_fix_forced_github_defaults
cmd: remotesource create don't force github defaults
2020-02-11 16:16:33 +01:00
Simone Gotti 0611b5cc67 github: handle nil user email 2020-02-11 15:59:30 +01:00
Simone Gotti 996e2a54ab
Merge pull request #206 from sgotti/github_use_provided_api_url
github: use the provided api url
2020-02-11 15:59:02 +01:00
Simone Gotti 59463944db github: use the provided api url
we were always setting the public github url in the github client instead of the
provided api url.
2020-02-11 09:10:09 +01:00
Simone Gotti 75541ad730 cmd: remotesource create don't force github defaults
Use default public github api only if no api-url is provided.
Use default public github ssh host key only if the public github api url is
provided and no ssh host key is provided.
2020-02-10 09:58:08 +01:00
Simone Gotti 3b09cfd6a6
Merge pull request #203 from 6543-forks/vendor-gitea-sdk
vendor: update gitea sdk
2020-02-06 22:31:59 +01:00
6543 f92619d423
vendor: update gitea sdk 2020-02-06 18:56:46 +01:00
Simone Gotti 0b25a3841a
Merge pull request #202 from sgotti/makefile_remove_test_target
makefile: remove test target
2020-01-29 09:19:48 +01:00
Simone Gotti ec53a63053
Merge pull request #198 from camandel/cmd_disable_vars_pr
cmd: project option to disable passing variables to PR from forked repo
2020-01-28 15:08:58 +01:00
Simone Gotti c775918747 makefile: remove test target
There's no test script. Full tests can be easily executed inside a local
running agola instance using an agola "direct run".
Single package tests can be executed using a manual go test invocation based on
the kind of package we want to test (since some of them require a running etcd,
a running docker, a running k8s cluster, a gitea binary etc...)
2020-01-28 14:59:22 +01:00
Carlo Mandelli 182eb14b20 cmd: project option to disable passing variables to PR from forked repo 2020-01-28 09:02:37 +01:00
Simone Gotti c6d7936cc8
Merge pull request #201 from sgotti/doc_add_supported_go_versions_policy
doc: document supported go versions.
2020-01-27 10:14:30 +01:00
Simone Gotti 15bd82b143 doc: document supported go versions.
We usually test and support the latest two major versions of Go like in the [Go
release policy](https://golang.org/doc/devel/release.html#policy).
2020-01-24 13:54:47 +01:00
Simone Gotti ef8235d78d
Merge pull request #195 from MitaliBo/master
Update github.com/opencontainers/runc
2020-01-20 11:58:08 +01:00
Simone Gotti 114b5cb8d8
Merge pull request #196 from camandel/cmd_fix_token_help
cmd: fix token create help message
2020-01-17 09:20:12 +01:00
Simone Gotti abb44b483b
Merge pull request #197 from camandel/tests_unique_name_cs3
tests: add unique name for logs of the third ConfigStore instance
2020-01-17 09:19:40 +01:00
Carlo Mandelli d049782e29 tests: add unique name for logs of the third ConfigStore instance 2020-01-16 13:54:13 +01:00
Carlo Mandelli 806c516ac7 cmd: fix token create help message 2020-01-16 11:30:37 +01:00
MitaliBo 5fa977d05a
Update go.mod 2020-01-15 11:57:45 -08:00
Simone Gotti fd9a69bbb2
Merge pull request #194 from sgotti/tests_improve_services_logging
tests: improve services logging
2020-01-15 15:01:19 +01:00
Simone Gotti 2de91549a3 tests: improve services logging
During tests provide a zaptest Logger so all services output will be redirected
to golang testing logger.

When multiple services of the same type are provided add a unique name field to
distinguish them.
2020-01-15 12:30:34 +01:00
Simone Gotti 180d8dd819
Merge pull request #193 from sgotti/executor_docker_toolbox_volume
docker: create a toolbox volume for every pod
2020-01-13 09:57:55 +01:00
Simone Gotti ecf355721f docker: create a toolbox volume for every pod
Instead of doing the current hack of copying the agola toolbox inside the host
tmp dir (always done but only needed when running the executor inside a docker
container) that has different issues (like tmp file removal done by
tmpwatch/systemd-tmpfiles), use a solution similar to the k8s driver: for every
pod create a volume containing the agola-toolbox and remove it at pod removal.

We could also use a single "global" volume but we should handle cases like
volume removal (i.e. a docker volume prune command). So for now just create a
dedicated per pod volume.
2020-01-10 12:25:12 +01:00
Simone Gotti a438a065a1
Merge pull request #189 from sgotti/datamanager_dont_wait_etcd_down
datamanager tests: don't wait for etcd down
2019-12-02 15:06:16 +01:00