Nikolay Edigaryev
732c8244a4
Run garbage collection after each symlink and expose --gc in tart prune ( #191 )
2022-08-23 17:31:02 +04:00
Nikolay Edigaryev
9e69c8c161
testGetAndSetAccessTime: fix flakiness ( #187 )
2022-08-18 14:42:54 -04:00
Nikolay Edigaryev
e4ac2275b9
tart ip: show a warning when DHCP lease and ARP cache entries mismatch ( #186 )
2022-08-18 22:25:02 +04:00
Nikolay Edigaryev
1a1f19e169
Implement garbage collection when deleting cached OCI VMs ( #185 )
...
* Properly calculate remotely-retrieved manifest digests
* Implement garbage collection when deleting cached OCI VMs
2022-08-18 17:13:06 +04:00
Nikolay Edigaryev
fea916dacc
OCI blob compression: fix Data memory leak when using InputFilter ( #183 )
...
* OCI blob compression: fix Data memory leak when using InputFilter
* Rename mappedDiskOffset to mappedDiskReadOffset
* Update progress.completedUnitCount differently
2022-08-17 12:57:39 -04:00
Fedor Korotkov
b1be9730c7
Build and release from Ventrura ( #182 )
...
Might be related to #180
2022-08-17 17:42:24 +04:00
Nikolay Edigaryev
14059a1d6f
tart {pull,clone}: add missing --insecure support ( #181 )
...
Co-authored-by: Nikolay Edigaryev <edi@microsun.local>
2022-08-17 01:31:19 +04:00
Nikolay Edigaryev
440681320a
Introduce "tart prune" command ( #164 )
2022-08-12 16:43:04 +03:00
Fedor Korotkov
a80954c888
Do not include Content-Range for monolithic uploads ( #179 )
...
* Do not include Content-Range for monolithic uploads
Some registries still assumes it's a chunked upload and verifies the "chunk" size which is too big.
* Update Sources/tart/OCI/Registry.swift
Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com>
2022-08-12 16:33:15 +03:00
Nikolay Edigaryev
cc8201dee6
OCI: support insecure registries and custom ports ( #174 )
2022-08-12 16:24:14 +03:00
Fedor Korotkov
2cab49b3f1
Use Ventura APIs for recovery mode ( #175 )
2022-08-12 08:02:44 +03:00
Fedor Korotkov
131827802a
Friendly error message on Intel ( #177 )
...
In case someone tries to install Tart. Fixes #176
2022-08-10 11:13:21 -04:00
Fedor Korotkov
e2b7f12388
Support chunked uploads ( #159 )
...
* Support chunked uploads
* Rebase fixes
* Bump swift http client
2022-08-08 10:16:47 -04:00
Fedor Korotkov
617a5d02dc
Fixed potential infinity auth ( #173 )
...
Follow up to an attempt in #169
2022-08-08 16:50:13 +03:00
Nikolay Edigaryev
b83bce4544
tart login: read whole stdin contents instead of just a line ( #170 )
2022-08-02 16:52:35 +03:00
Nikolay Edigaryev
7d16516b6a
OCI: gcr.io fixes ( #169 )
...
* Make sure we don't craft an URLComponents with an empty query items
* Prevent auth() infinite loop
* OCI: ignore invalid RFC 3339 formatted dates
2022-08-01 19:24:11 -04:00
Nikolay Edigaryev
56ddd8df75
OCI's HTTP client: prevent the usage of NIO Transport Services ( #168 )
2022-08-01 18:17:50 -04:00
Fedor Korotkov
b1534a05d5
Configure audio devices to pass through the signal from/to the host ( #163 )
...
Fixes #161
2022-08-01 17:54:55 +03:00
Nikolay Edigaryev
f54e7c2cab
tart login: only store one credential per registry ( #162 )
2022-08-01 09:55:37 +03:00
Nikolay Edigaryev
85dfa961c9
tart run: introduce --disk option ( #156 )
...
* tart run: introduce --disk option
* Document how to create disks using Disk Utility
2022-07-26 09:25:23 -04:00
Nikolay Edigaryev
3a74fc35e6
Introduce TART_HOME ( #157 )
2022-07-25 17:01:46 +03:00
Nikolay Edigaryev
7bf7f890c4
tart run: return exit status 2 when VM is already running ( #155 )
2022-07-21 07:53:47 -04:00
Nikolay Edigaryev
48cd4b47e4
Move full-fledged VNC support to --experimental-vnc ( #154 )
2022-07-21 12:37:43 +03:00
Nikolay Edigaryev
c1dee4f9b2
Credentials: update Keychain entry if it already exists ( #149 )
2022-07-13 12:35:44 -04:00
Fedor Korotkov
116dc01f55
Document how to retrieve artifacts ( #146 )
2022-07-08 18:45:14 +03:00
Nikolay Edigaryev
52abb7589c
OCI: support Basic authentication scheme ( #145 )
...
* OCI: support Basic authentication scheme
* .isValid → .isValid()
* tart login: make --username optional
2022-07-08 16:36:00 +03:00
Nikolay Edigaryev
4386192161
tart login: introduce --username and --password-stdin flags ( #143 )
2022-07-05 16:32:20 +03:00
Nikolay Edigaryev
85429cea0a
Retrieve IP from DHCPD leases file instead of ARP cache ( #141 )
...
* Retrieve IP from DHCPD leases file instead of ARP cache
* Reference PLCache_read() from the retrieveRawLeases() parsing function
2022-06-30 17:58:52 +03:00
Nikolay Edigaryev
384abcd0bd
OCI: make sure annotations are sorted ( #138 )
2022-06-27 16:25:52 +03:00
Fedor Korotkov
92529afa23
Handle `tart run --no-graphics --vnc` properly ( #137 )
...
Let's start a VNC server but not force open Screen Sharing if `--no-graphics` is also passed.
2022-06-24 22:54:41 +03:00
Nikolay Edigaryev
c25364b2d4
Homebrew: depend on Softnet package ( #136 )
2022-06-21 14:55:51 -04:00
Nikolay Edigaryev
e12f95878e
Softnet: an alternative to built-in NAT with better isolation ( #48 )
...
* Softnet: an alternative to built-in NAT with better isolation
* Softnet: increase socketpair(2) socket buffer sizes to 1 MiB
* Pass VM's FD and MAC address to the Softnet
* Softnet: implement graceful shutdown
* Bring back the dispatchMain() and task cancellation
* tart pull: check for cancellation when pulling response body
* Don't dispatchMain() in withTaskCancellationHandler()
* Move VNC URL opening logic into VNCWrapper.open()
2022-06-21 19:17:02 +03:00
Fedor Korotkov
7efef28250
Allow VNC for Recovery mode ( #134 )
2022-06-20 20:08:31 +03:00
Nikolay Edigaryev
1e90752ded
Full-fledged VNC support ( #126 )
2022-06-20 18:53:17 +03:00
Fedor Korotkov
2020324ef5
Fixed --no-graphics ( #132 )
...
Followup to #129 which broke CLI integration because `--no-graphics` option didn't wait for anything.
2022-06-20 10:28:10 -04:00
Nikolay Edigaryev
b581db5be4
OCI: make annotations optional ( #130 )
...
* OCI: make annotations optional
* Don't initialize annotations by default
2022-06-17 10:53:52 -04:00
Fedor Korotkov
8ed2ce159f
Install Go
2022-06-17 10:33:32 -04:00
Fedor Korotkov
89217c23a2
Fixes for Ventura ( #129 )
...
* Fixes for Ventura
Still a noob in SwiftUI and Swift concurrency, but it seems on Ventura a task group is not actually running on main or something. Either way I think this change simplifies things but launching a VM in a task and then just continuing with either VNC or built-in graphics.
* Check VM's state
2022-06-17 10:04:57 -04:00
Fedor Korotkov
0d633de04a
Build Tart inside a Tart VM ( #127 )
2022-06-17 11:18:26 +03:00
Nikolay Edigaryev
f59ef2722d
OCI: store uncompressed disk size in manifest ( #128 )
2022-06-17 11:14:28 +03:00
Fedor Korotkov
7759c72a76
Don't use dispatchMain ( #123 )
2022-06-14 11:31:31 -04:00
Raymond
4cc8a9925a
accept larger disk size ( #122 )
2022-06-10 09:05:57 -04:00
Nikolay Edigaryev
b16bbf587a
Registry: log upload location when encountering blob pushing error ( #121 )
2022-06-08 17:23:16 +03:00
Fedor Korotkov
022317bc17
Build Debug Binary ( #117 )
...
* Build Debug Binary
Xcode 14 Beta breaks something when building with a production configuration and Tart can't run a VM.
* Fixed path
2022-06-07 18:14:52 +03:00
Fedor Korotkov
87733290e7
Smaller icon ( #116 )
...
Initially it wasn't fully following the [guidelines](https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/ ).
Fixes #112
2022-06-06 18:38:30 +03:00
Fedor Korotkov
c14b46adc3
Make sure VM directory exists before moving ( #111 )
2022-06-03 23:22:11 +03:00
Nikolay Edigaryev
63329ef363
Atomic tart {create,clone,pull} operations using rename(2) ( #109 )
...
* tart clone: always re-generate MAC-address
This is not really an issue for non-enterprise users[1].
[1]: https://github.com/cirruslabs/tart/issues/20#issuecomment-1136944455
* Atomic tart {create,clone,pull} operations using rename(2)
* Print a nicer error message when attempting to double-run a VM
* tart clone: bring back the old MAC-address generation logic
* Ensure VMDirectory.temporary() will be deleted on failure
2022-06-01 11:02:31 -04:00
Nikolay Edigaryev
5446164a36
tart pull: introduce --populate-cache flag ( #103 )
...
* tart pull: introduce --populate-cache flag
* VMStorageOCI: introduce cache() method
* Review comments (#107 )
* Rename SetCommand back to Set
Co-authored-by: Fedor Korotkov <fedor.korotkov@gmail.com>
2022-05-28 23:20:24 -04:00
Nikolay Edigaryev
f3068b9055
tart login: verify credentials ( #102 )
...
* tart login: verify credentials
* Make DictionaryCredentialsProvider fileprivate to Login.swift
2022-05-26 09:31:46 -04:00
Fedor Korotkov
afa6b7b46c
Auto-detect screen DPI ( #106 )
...
* Auto-detect screen DPI
Fixes #104
* Added a comment
2022-05-26 12:23:13 +03:00