Simone Gotti
e970e217e2
config: add global agola id field
2019-04-30 12:08:59 +02:00
Simone Gotti
559a389b59
gitsources: add ListUserRepos method
2019-04-29 17:36:29 +02:00
Simone Gotti
507a9edb87
gitsources: add CreateCommitStatus method
2019-04-29 17:35:07 +02:00
Simone Gotti
2fab8ad85b
configstore: check token name is not empty
2019-04-29 16:59:09 +02:00
Simone Gotti
cbd971619b
gateway: refresh oauth2 token when needed
...
refresh the oauth2 access token when needed and update the related linked
account.
2019-04-29 15:42:10 +02:00
Simone Gotti
9393830207
gitsource: add RefreshOauth2Token method to Oauth2Source
2019-04-29 15:39:59 +02:00
Simone Gotti
95e73e66a0
oauth2: correctly populate token expiry data
...
* Populate the field when needed
* Convert it to a time instead of a duration
2019-04-29 14:57:07 +02:00
Simone Gotti
52bcf096c7
gitea source: add custom http transport
2019-04-29 11:24:03 +02:00
Simone Gotti
a5d6ac85a6
configstore: namespace changegroups
2019-04-29 10:37:23 +02:00
Simone Gotti
159abffa06
configstore: fix changegroup names
...
changegroup names are based on names that will contain slashes and could be very
long. So calculate the sha256 sum of the starting name and use it as the
changegroup name.
2019-04-29 10:24:05 +02:00
Simone Gotti
da6aefa7e2
runservice readdb: also resync changegroups
2019-04-29 10:16:19 +02:00
Simone Gotti
19877e679c
configstore readdb: also resync changegroups
2019-04-29 10:15:44 +02:00
Simone Gotti
2634f7a3a0
datamanager: add function to get changegroups from etcd
2019-04-29 10:13:13 +02:00
Simone Gotti
f5cf3b9fa7
runservice: check changegroup name
2019-04-29 10:12:34 +02:00
Simone Gotti
b85786dc56
datamanager: check changegroup name
2019-04-29 10:12:03 +02:00
Simone Gotti
340cc15268
scheduler: fix changegroup names
...
run changegroup names are based on the run path but it will contain slashes and
could be very long. So calculate the sha256 sum of the path and use it as the
changegroup name.
2019-04-29 10:14:10 +02:00
Simone Gotti
2c3e6bf9e4
wal: update and rename to datamanager
...
* Rename to datamanager since it handles a complete "database" backed by an
objectstorage and etcd
* Don't write every single entry as a single file but group them in a single
file. In future improve this to split the data in multiple files of a max size.
2019-04-26 16:00:03 +02:00
Simone Gotti
41e333d7ec
*: rename "lts" to "ost"
...
`lts` was choosen to reflect a "long term storage" but currently it's just an
object storage implementation. So use this term and "ost" as its abbreviation
(to not clash with "os").
2019-04-27 15:16:48 +02:00
Simone Gotti
33c328b3f5
runservice: move all scheduler etcd data to own dir
2019-04-27 08:59:47 +02:00
Simone Gotti
e1368d18d6
runservice: add etcd pinger loop
2019-04-27 08:50:25 +02:00
Simone Gotti
9c7c589bba
runservice executor: use k8s client informers/listers
...
Use k8s client informers/listers instead of polling the api every time
2019-04-26 10:15:23 +02:00
Simone Gotti
8989bd0e8e
runservice: pass arch to driver
...
k8s driver: use the provided arch and set the related nodeselector label
(`kubernetes.io/arch`) when not empty.
2019-04-25 13:42:34 +02:00
Simone Gotti
6f88bd3d53
runservice: handle multiple executor archs
...
An executor can handle multiple archs (an executor that talks with a k8s cluster
with multi arch nodes). Don't use a label for archs but a custom executor
field.
2019-04-25 13:30:46 +02:00
Simone Gotti
e0d37b08f2
runservice: add k8s driver
2019-04-22 17:54:24 +02:00
Simone Gotti
90d129750d
util: add pointer utils
2019-04-24 16:31:14 +02:00
Simone Gotti
07bc4a21ff
runservice scheduler: automatically remove dynamic executors
2019-04-24 13:25:41 +02:00
Simone Gotti
7c9be9b57d
runservice executor: remove unused GetPodByID method
2019-04-24 15:53:03 +02:00
Simone Gotti
a0d69f4bc3
runservice executor: update for executor groups
...
* Add the concept of executor groups and siblings executors
* Add the concept of dynamic executor: an executor in an executor group that
doesn't need to be manually deleted from the scheduler since the other sibling
executors will take care of cleaning up its pods.
* Remove external labels visibility from pod.
* Add functions to return the sibling executors and the executor group
* Delete pods of disappeared sibling executors
2019-04-24 12:37:55 +02:00
Simone Gotti
4da4f48f98
runservice executor: rename pod labels
...
* Use a command namespaced prefix
* Add executor id label for future usage
2019-04-22 18:19:43 +02:00
Simone Gotti
abf908bcad
runservice executor: rename makeEnv to makeEnvSlice
2019-04-22 18:19:13 +02:00
Simone Gotti
7e9abbf529
runservice executor: add driver Setup method
...
Remote custom `copytoolbox` hack and use a generic `Setup` function in the
driver interface
2019-04-22 18:17:55 +02:00
Simone Gotti
7ebc436854
runservice executor: generate pod id outside driver
2019-04-22 17:53:34 +02:00
Simone Gotti
17f3dc89f2
runservice executor: remove unused CopyTo method from driver
2019-04-22 18:27:48 +02:00
Simone Gotti
f85ffb594f
runservice toolbox: add exec command
2019-04-22 17:49:18 +02:00
Simone Gotti
dfeba334f6
runservice: update docker registry auth
2019-04-22 14:38:25 +02:00
Simone Gotti
d91bb36ccb
cmd serve: update parse config error
2019-04-21 15:27:35 +02:00
Simone Gotti
9c74b4ddc1
runservice scheduler: choose scheduler only if it has capacity
2019-04-17 20:59:28 +02:00
Simone Gotti
1ac139434e
runservice scheduler: cancel unscheduled root tasks when run has result
...
When run has a result set, root tasks not yet scheduled must be cancelled.
2019-04-17 18:00:34 +02:00
Simone Gotti
9f89a923c0
runservice scheduler: take a copy of run in advanceRunTasks
...
take and change a copy of the current run so we'll change newRun and use curRun
status for logic decision. In this way result are reproducible or they will be
affected by the random run.Tasks map iteration order.
2019-04-17 18:06:31 +02:00
Simone Gotti
4dd89646af
runservice executor: report ActiveTasksLimit
...
Add a config option to set the active tasks limit and report it.
2019-04-17 15:51:20 +02:00
Simone Gotti
455623e58a
runservice executor: report running tasks
2019-04-17 15:47:58 +02:00
Simone Gotti
adf9c73518
runservice scheduler: choose executor with right arch
...
Choose an executor matching the required arch or any if no arch is required
2019-04-17 15:26:09 +02:00
Simone Gotti
f3e583bb40
config: check Runtime.Arch
2019-04-17 15:24:37 +02:00
Simone Gotti
22f0865aa3
runconfig: add and populate Runtime.Arch
2019-04-17 15:23:50 +02:00
Simone Gotti
a511fbf10c
runservice: executor: provide architecture information
2019-04-17 15:22:26 +02:00
Simone Gotti
d3e95ba665
runservice config: set executor labels
2019-04-17 15:25:11 +02:00
Simone Gotti
d3f658c5ad
runservice: add run cache cleaner
...
Removes old cache entries (defaults to 7 days)
2019-04-17 13:58:41 +02:00
Simone Gotti
4c19ea3e91
remove .agola/config.yml
...
since we use the jsonnet format
2019-04-16 17:51:39 +02:00
Simone Gotti
fcba3ccfad
tests: add config.jsonnet
...
Use a jsonnet config that make creating matrix build and tests a breeze
2019-04-16 15:37:23 +02:00
Simone Gotti
ebe34ba1fa
runservice: set default config task working_dir
...
Set default task working_dir to ~/project
2019-04-16 15:20:45 +02:00