Commit Graph

559 Commits

Author SHA1 Message Date
346e36f52b Add a script to retry docker push when deploying 2015-10-13 13:45:04 -03:00
77ae12f0fb Changelog for container restart 2015-10-13 13:45:04 -03:00
53ed41a4e2 Allow lockfile force to be specified in the request body 2015-10-13 13:45:04 -03:00
d5ddad914e Add /v1/restart API endpoint 2015-10-13 13:45:04 -03:00
a15c9e636e Add additional mount for the host's docker.sock 2015-10-13 13:45:04 -03:00
b78fe94d0b Update CHANGELOG 2015-10-13 13:45:04 -03:00
efc272533c Also mount the host dbus on host_run/dbus 2015-10-13 13:45:04 -03:00
27a8ee2b19 Use golang 1.5.1 for compiling 2015-10-13 13:45:04 -03:00
54d25f5202 Fix Makefile and env to handle changes in resin-vars 2015-10-13 13:45:04 -03:00
6e62366541 Always unlock the lockfile when killing the app.
Otherwise, we have a deadlock whenever the lock is forced: the app
will be restarted, and will find the lockfile is already there so it won't be
able to lock/unlock it. The supervisor will have the same problem.
So the solution is that, whenever we kill the app, that is the lock owner, we also unlock the file.
2015-10-13 13:45:04 -03:00
752c43f628 Changelog for update locking 2015-10-13 13:45:04 -03:00
233004d130 Download/update/remove/install all apps in a map 2015-10-13 13:45:03 -03:00
4aea117330 Purge handles strings and numbers, and is tested with a table 2015-10-13 13:45:03 -03:00
3da961d4fd Use env var for force, and don't touch lockfile on force
Also:

* Force lock when purging

* Use updateStatus object to keep update state
2015-10-13 13:45:03 -03:00
c7c4aed746 Use rwlock together with lockfile
Select app to kill from DB within lock (otherwise, if some other part kills and restarts the app, the
containerId will have changed and the real container will not be removed).
2015-10-13 13:45:03 -03:00
d1b317399e Updates by appId and use Promise.using for lock
Change the update cycle to go by appId instead of imageId.
Use Promise.using for lockFile locks and unlocks.
Now updates shouldn't stop if one of the apps fails to update
(it's a step towards better supporting multiple apps).

Forcing the lock now works.

Remove unnecessary require fs

Nicer assignment for s in joinErrorMessages
2015-10-13 13:45:03 -03:00
1eb31ce5f6 Apply coffeelint everywhere 2015-10-13 13:45:03 -03:00
c52c2c0bd9 First attempt at locking updates with files 2015-10-13 13:45:03 -03:00
9bbb0be536 Update resin-base for supervisor-dind to include ifupdown for the vpn. 2015-10-13 13:45:03 -03:00
7b02c067ac Use the endpoint settings from config.json 2015-10-13 13:45:01 -03:00
fdf4f50691 0.0.16 v0.0.16 2015-10-13 13:43:37 -03:00
a8e1d476e3 Change to use 204 for API, Remove extra space in upscript.sh and Make fswatch start only on EEXIST error 2015-10-13 13:43:37 -03:00
7b8ca9fd73 Start the fs watch after the VPN directory has been created - Use finally and not then 2015-10-13 13:43:37 -03:00
ac545ccc52 Change the EEXIST to a function 2015-10-13 13:43:37 -03:00
a57c723e8a Remove inotify and lint changes 2015-10-13 13:43:37 -03:00
a4966a798a Change the fs functions to promise 2015-10-13 13:43:37 -03:00
0213916b90 Style changes 2015-10-13 13:43:37 -03:00
8642371094 Pause TCP Pings on VPN connection 2015-10-13 13:43:37 -03:00
d6b6d2d73b Distinguish betweek - permanent TCP check disable and pausing tcp check 2015-10-13 13:43:37 -03:00
03299d77f5 API to pause TCP checks 2015-10-13 13:43:37 -03:00
177e9ddd7c Specify vpn endpoint in the config file 2015-10-13 13:43:37 -03:00
c250ff483c Fix double app start (app.id = null after kill) 2015-10-13 13:43:37 -03:00
2f09413096 gosuper for other GOARCH should never get to the supervisor image 2015-10-13 13:43:37 -03:00
c2496d30c2 Use Promise Disposer for lock, + cleanup 2015-10-13 13:43:36 -03:00
685af77007 Reorganize files, and purge sends 404 when there's no directory.
* 404 when no directory
* fix go-supervisor.conf location
* Use /var/run/resin for gosuper socket
* Remove potential spurious gosuper binaries
2015-10-13 13:43:36 -03:00
6d54e6663e Lock app restart, cleanup and better testing 2015-10-13 13:43:36 -03:00
9bc2f6212d Handle App not found in purge, + cleanup
* gosuper in dockerignored folder
* correctly handle app not found in purge
* test formatting in test-gosuper
* Fix test-gosuper
* DRY up test-integration
2015-10-13 13:43:36 -03:00
53668647c8 Integration test is now working.
* More work on the integration test
* Correctly get supervisor IP
* Use Fatal for test errors
* test-integration working separate from run-supervisor
* Use jenkins' JOB_NAME to identify and remove containers with their volumes
* Document testing procedure
* Document the assume-unchanged tip
* Use /mnt/root for data path
* Nicer secret assignment
2015-10-13 13:43:36 -03:00
513cc24d1c Purge restarts app, and first attempt at integration testing
* Restart app when purging
* Use log.Fatal to exit with status 1
* Quotes in entry.sh
* Use JSON for request body
* Handle errors for parseJsonBody
* Better error printing in main
* First attempt at testing nodesuper from Go
* Cleaner build
* Use ARCH to differentiate concurrent tests/builds
* Use --rm to autoremove containers
2015-10-13 13:43:36 -03:00
dd53bbd1db Call the gosuper from node via unix socket + http. 2015-10-13 13:43:36 -03:00
300067febe Correctly integrate Go unit tests with Jenkins 2015-10-13 13:43:36 -03:00
30ce6f77c4 Gosuper Integration into supervisor image and Jenkins 2015-10-13 13:43:36 -03:00
0587858f69 First API implementation with purge and unit testing. 2015-10-13 13:43:36 -03:00
ed8adcdda9 Initial structure with Godeps and build Dockerfile 2015-10-13 13:43:36 -03:00
8f8e6f9a1b Rename assets/etc to config 2015-10-13 13:43:36 -03:00
e3264effe3 Mount tmpfs for supervisor sockets 2015-10-13 13:43:36 -03:00
5d5f38ea69 Add /lib/firmware to the app bind mounts 2015-10-13 13:43:36 -03:00
5ae28e9348 Use overlayfs for the supervisor dind. 2015-10-13 13:43:36 -03:00
fecf906ce5 enter.sh: Split env vars by NULL byte instead of whitespace 2015-10-13 13:43:36 -03:00
0703759782 Try to populate the docker cache before building. 2015-10-13 13:43:35 -03:00