aboutsummaryrefslogtreecommitdiff
path: root/src/deployment.lisp
Commit message (Collapse)AuthorAge
* RECONNECTS :HOSTATTRS: simplifySean Whitton2022-05-14
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* update copyright noticesSean Whitton2022-04-29
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* LOCALSUDO: update :SUDO argument :AS -> :FROMSean Whitton2022-04-28
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add PUSH-HOSTATTR, don't use &rest in PUSH-HOSTATTRS & fix docstringSean Whitton2022-04-04
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename basic propapp accessorsSean Whitton2022-04-04
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename CONNECTION-TEARDOWN -> CONNECTION-TEAR-DOWNSean Whitton2022-04-02
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* DEFAULT-DEPLOYMENT: leave unbound when not suppliedSean Whitton2022-04-02
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* in examples, use fewer of my personal hostnames & domainsSean Whitton2021-12-27
| | | | | | | Additionally, in conventions.rst, fix an example of the :SUDO connection type to use the correct hostname for looking up the password. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename combinator UNAPPLY->UNAPPLIED and add new UNAPPLY macroSean Whitton2021-12-13
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add & propagate :NO-SERVICES connattr and respect in LIBVIRT:STARTEDSean Whitton2021-10-29
| | | | | | | | | | | | | | | | | This change was prompted by the realisation that RECONNECTS nullifies any enclosing SERVICE:WITHOUT-STARTING-SERVICES because *HOST* during RECONNECTS is a distinct HOST value, computed at hostattrs time, which can't be affected by an enclosing combinator that works by temporarily pushing hostattrs at :APPLY time. So, for example, if we chroot and subsequently establish a :SETUID connection, properties might try to start services as the non-root user and there is no way for them to know they shouldn't. We can avoid this problem by using a connattr instead because we have a mechanism for propagating connattrs to subsequently established connections. And as in most cases the reason for not starting services is solely due to the way in which we're connecting to the host, a connattr is more appropriate. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* use PUSHNEW-HOSTATTRS when propagating :DATA hostattrsSean Whitton2021-10-23
| | | | | | This prevents multiple attempts to upload the same item of prerequisite data. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* UNWIND-PROTECT-IN-PARENT -> UNWIND-PROTECTSean Whitton2021-07-24
| | | | | | No longer needed thanks to f4e9170e73cb4bcfa7328422b4ff4f72d1339dd0. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* DEPLOYS-THESE: accept a string for HOST parameterSean Whitton2021-07-10
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* signal SKIPPED-PROPERTIES & factor out interpreting exit codesSean Whitton2021-07-10
| | | | | | | | | | | | Unconditionally signalling FAILED-CHANGE does not make sense because perhaps the type of condition C is not a subtype of SIMPLE-CONDITION. Moreover, when we invoke the SKIP-PROPERTY restart we do not actually pass the condition. For simplicity, and since all we need is notification that a SKIP-PROPERTY restart was invoked, instead define and signal a special-purpose condition. Additionally, use an exit code to pass the signal between Lisp images. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add AT-END, REBOOT:REBOOTED-AT-ENDSean Whitton2021-07-06
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* MAKE-PROPSPEC: propagate *CONSFIG* even when propspec expression nilSean Whitton2021-07-06
| | | | | | | | | | | | | | | Previously, MAKE-PROPSPEC would store nil for the SYSTEMS slot in the case where the PROPSPEC argument was nil. The idea behind this was that if there are no properties to apply, then there is no need to load any ASDF systems. However, the SYSTEMS slot is how a HOST value containing the propspec records the systems required not just to apply its properties, but also what's required to instantiate all of its hostattrs. For example, when some of these hostattrs are CLOS objects, the classes of those objects must be loaded. So don't set SYSTEMS to nil just because the propspec expression is nil. Also see edbba484918f6de83680a5b29e561fba981e05e9. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* don't signal FAILED-CHANGE up beyond DEPLOY*/DEPLOY-THESE*Sean Whitton2021-06-28
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* report whether FAILED-CHANGE, :NO-CHANGE or something else at endSean Whitton2021-06-28
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* DEPLOYS-THESE: fix :PREPROCESS subroutineSean Whitton2021-06-03
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* factor out ENSURE-HOST & call it in hostattrs accessorsSean Whitton2021-05-30
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add optional HOST arg to some accessors for hostattrsSean Whitton2021-05-29
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rework bootloader installation so can use property-defining macrosSean Whitton2021-05-09
| | | | | | | | | | | It is better to have the code which installs bootloaders to volumes in property definitions rather than in plain functions, as then we can specify that it's :POSIX or :LISP, specify the OS required for it to run, and similar. This commit enables that by replacing INSTALL-BOOTLOADER with a different generic which returns propspecs. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add LOCALSUDO and LOCALHDSean Whitton2021-05-06
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* replace WITH-LOCAL-... with an EVALS propertySean Whitton2021-05-06
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* chroot connections: set up bind mounts and virtual filesystemsSean Whitton2021-04-30
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* CONTINUE-DEPLOY* connections: push a new connection objectSean Whitton2021-04-30
| | | | | | This is cleaner than resetting certain slot values. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* define UNION-PROPSPEC-INTO-HOST for null second argumentSean Whitton2021-04-26
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add HOSTDEPLOY, HOSTDEPLOY-THESESean Whitton2021-04-05
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* RECONNECTS: improve descriptionSean Whitton2021-04-05
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* DEPLOY: don't accept string for hostSean Whitton2021-04-01
| | | | | | That feature makes sense only for DEPLOY-THESE. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* propagate :NO-CHANGE out of fork subdeploymentsSean Whitton2021-04-01
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add descriptions to DEPLOYS, DEPLOYS-THESE, RECONNECTSSean Whitton2021-04-01
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* RECONNECT: avoid copying all prerequisite dataSean Whitton2021-03-27
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* move copying to the inside of {union,replace}-propspec-into-hostSean Whitton2021-03-24
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* make PROPERTIES argument to DEPLOY{S,}-THESE* requiredSean Whitton2021-03-24
| | | | | | There is no point in calling either function without it. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* make dedicated RECONNECTS property rather than using DEPLOYS-THESESean Whitton2021-03-24
| | | | | | This is easier to read. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* attempt to implement :AS connection type and AS combinatorSean Whitton2021-03-24
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* fix typoSean Whitton2021-03-23
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* untabifySean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* %CONSFIGURE: accept NIL for CONNECTIONS argumentSean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* DEPLOY, DEPLOY-THESE: accept string for HOSTSean Whitton2021-03-21
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* CONTINUE-DEPLOY*: pass :LOCAL as default remaining connectionSean Whitton2021-03-21
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add and use :CONSFIGURATOR named readtableSean Whitton2021-03-20
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* %CONSFIGURE: don't prepend :LOCAL when a connection existsSean Whitton2021-03-19
| | | | | | This was breaking DEPLOYS, DEPLOYS-THESE in certain cases. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* pull MAKE-PROPSPEC out of PROPS & set SYSTEMS from *HOST*Sean Whitton2021-03-19
| | | | | | | | We want a property application specification expression to be what goes into DEFPROPSPEC because then we can set the systems slot based on the host to which the property is applied, rather than looking at *CONSFIG*. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* %CONSFIGURE no longer assumes that :HOSTATTRS have been runSean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* improve the DEFUN defined for calling properties programmaticallySean Whitton2021-03-18
| | | | | | | | | | | | | | - Move the connection type check to %CONSFIGURE, so that we're not doing the check over and over again for propapps combined by property combinators. - Splice the check back in when writing the DEFUN. - Issue a warning when a property with a :HOSTATTRS subroutine is used programmatically. - DEFUN now has property's lambda list, rather than just (&REST ARGS). Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* enable retrieving existing hostattrs in DEPLOY and DEPLOY-THESESean Whitton2021-03-18
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* call :PREPROCESS and :HOSTATTRS subroutines laterSean Whitton2021-03-15
| | | | | | | Avoids us trying to eval propspecs at DEFHOST time, which can get us into ASDF loading loops. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* attempt to implement revised propspecs specSean Whitton2021-03-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>