Commit Graph

134 Commits (583774e32a796e104b971f32ee318187858d1759)

Author SHA1 Message Date
Thomas E Lackey 583774e32a ; 2024-03-04 23:42:45 -06:00
Thomas E Lackey f91329eef0 lint 2024-03-04 23:41:31 -06:00
Thomas E Lackey 7f0b82b9a9 Update status cmd 2024-03-05 05:40:15 +00:00
Thomas E Lackey 64b395f15a more oops 2024-03-04 23:05:35 -06:00
Thomas E Lackey 240db3ca4c oops 2024-03-04 22:52:57 -06:00
Thomas E Lackey d09fbc3ac4 TLS options 2024-03-04 22:01:09 -06:00
Thomas E Lackey 3c7ff76a83 fmt 2024-03-04 17:09:11 -06:00
Thomas E Lackey 53b29ff69b fmt 2024-03-04 17:08:08 -06:00
Thomas E Lackey 4ec0e38b77 Fix configmaps constant. 2024-03-04 22:01:01 +00:00
Thomas E Lackey 14ee4da1fc comment 2024-03-04 15:27:36 -06:00
Thomas E Lackey e81c95a920 Support wildcard certs. 2024-03-04 15:24:14 -06:00
Thomas E Lackey cc541ac20f Use -slim variant for Dockerfile (#773)
Webapp Test / Run webapp test suite (push) Successful in 2m56s Details
Smoke Test / Run basic test suite (push) Successful in 4m39s Details
Lint Checks / Run linter (push) Failing after 4s Details
Publish / Build and publish (push) Successful in 1m39s Details
Deploy Test / Run deploy test suite (push) Successful in 4m11s Details
This saves about 1GB of space in the image.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/773
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-28 04:37:57 +00:00
Thomas E Lackey 10e2311a8b Add timed logging for the webapp build (#771)
Add lots of log and timer output to webapp builds.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/771
2024-02-28 00:38:11 +00:00
David Boreham 64cec163b3 Sort order was backwards 2024-02-27 09:00:36 -07:00
David Boreham 170ad71397 fetch-containers-fixes (#769)
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/769
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-27 15:53:05 +00:00
David Boreham da1ff609fe fetch-images command (#768)
Deploy Test / Run deploy test suite (push) Successful in 3m35s Details
Lint Checks / Run linter (push) Failing after 3s Details
Publish / Build and publish (push) Successful in 52s Details
Webapp Test / Run webapp test suite (push) Successful in 3m5s Details
Smoke Test / Run basic test suite (push) Successful in 4m3s Details
Implementation of a command to fetch pre-built images from a remote registry, complementing the --push-images option already present on build-containers.

The two subcommands used together allow a stack to be deployed without needing to built its images, provided they have been already built and pushed to the specified container image registry.

This implementation simply picks the newest image with the right name and platform (matches against the platform Python is running on, so watch out for scenarios where Python is an x86 binary on M1 macs).

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/768
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-27 15:15:08 +00:00
Thomas E Lackey 21eb9f036f Add support for pnpm as a webapp build tool. (#767)
Lint Checks / Run linter (push) Failing after 4s Details
Publish / Build and publish (push) Successful in 51s Details
Deploy Test / Run deploy test suite (push) Successful in 3m37s Details
Smoke Test / Run basic test suite (push) Successful in 3m50s Details
Webapp Test / Run webapp test suite (push) Successful in 2m54s Details
This adds support for auto-detecting pnpm as a build tool for webapps.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/767
Reviewed-by: David Boreham <dboreham@noreply.git.vdb.to>
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-26 23:31:52 +00:00
Thomas E Lackey a0413659f7 Check for existing tag in remote repo before building. (#764)
Webapp Test / Run webapp test suite (push) Successful in 4m5s Details
Smoke Test / Run basic test suite (push) Successful in 3m55s Details
Deploy Test / Run deploy test suite (push) Successful in 5m13s Details
Publish / Build and publish (push) Successful in 1m5s Details
Lint Checks / Run linter (push) Failing after 3s Details
webapps are meant to be build-once/deploy-many, but we were rebuilding them for every request.  This changes that, so that we rebuild only for every unique ApplicationRecord.

When we push the image, we now tag it according to its ApplicationRecord.

We don't want to use that tag directly in the compose file for the deployment, however, as the deployment needs to be able to adjust to new builds w/o re-writing the file all the time.  Instead, we use a per-deployment unique tag (same as before), we just update what image it references as needed.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/764
2024-02-24 03:22:49 +00:00
zramsay a16fc657bf clarify uniswap urbit readme (#766)
Co-authored-by: zramsay <zach@bluecollarcoding.ca>
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/766
2024-02-24 00:15:53 +00:00
Thomas E Lackey 704c42c404 Use a catchall for single page apps. (#763)
Deploy Test / Run deploy test suite (push) Successful in 3m32s Details
Webapp Test / Run webapp test suite (push) Successful in 2m42s Details
Smoke Test / Run basic test suite (push) Successful in 4m3s Details
Publish / Build and publish (push) Successful in 52s Details
Lint Checks / Run linter (push) Failing after 4s Details
This creates a new environment variable, CERC_SINGLE_PAGE_APP, which controls whether a catchall redirection back to / is applied.

If the value is not explicitly set, we try to detect if the page looks like a single-page app.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/763
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-23 20:32:24 +00:00
David Boreham 202f187172 Fix copy/paste error 2024-02-23 13:15:37 -07:00
David Boreham aaed356d32 Simple container image publication (#762)
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/762
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-23 19:57:47 +00:00
Thomas E Lackey 2af6ffce77 Tweaks for running the container registry in k8s (#760)
Lint Checks / Run linter (push) Failing after 3s Details
Publish / Build and publish (push) Successful in 52s Details
Deploy Test / Run deploy test suite (push) Successful in 3m31s Details
Webapp Test / Run webapp test suite (push) Successful in 2m47s Details
Smoke Test / Run basic test suite (push) Successful in 3m52s Details
Fixturenet-Eth-Plugeth-Arm-Test / Run an Ethereum plugeth fixturenet test (push) Has been cancelled Details
Minor tweaks for running the container-registry in k8s.  The big change is not requiring --image-registry.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/760
Reviewed-by: David Boreham <dboreham@noreply.git.vdb.to>
2024-02-22 21:11:06 +00:00
David Boreham 642c0ead0d Add test for two config parameters (#758)
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/758
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-22 19:35:55 +00:00
Thomas E Lackey 6bd77c893a Even more logging fixes (#757)
Smoke Test / Run basic test suite (push) Successful in 4m30s Details
Publish / Build and publish (push) Successful in 1m36s Details
Webapp Test / Run webapp test suite (push) Successful in 2m42s Details
Lint Checks / Run linter (push) Failing after 3s Details
Deploy Test / Run deploy test suite (push) Successful in 3m29s Details
Hopefully the last one for a bit.

This only output the cmdline if log_file is present (ie, not to stdout).  It also fixes a bug where the log_file was not passed in one line.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/757
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-22 01:24:44 +00:00
Thomas E Lackey 4a4d48ddb9 Fix error when logging exception. (#756)
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/756
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-22 00:11:06 +00:00
Thomas E Lackey 08438b1cd5 More logging for webapp deployments (#755)
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/755
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-21 23:48:52 +00:00
Thomas E Lackey 9f1dd284a5 Better error logging for registry deployments. (#754)
Publish / Build and publish (push) Successful in 52s Details
Lint Checks / Run linter (push) Failing after 3s Details
Webapp Test / Run webapp test suite (push) Successful in 2m43s Details
Smoke Test / Run basic test suite (push) Successful in 3m51s Details
Deploy Test / Run deploy test suite (push) Successful in 3m35s Details
We were missing errors related to registration, this should fix that.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/754
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-21 20:12:52 +00:00
Thomas E Lackey db4986dcc6 snowballtool-base backend stack (#751)
Publish / Build and publish (push) Successful in 51s Details
Webapp Test / Run webapp test suite (push) Successful in 2m46s Details
Lint Checks / Run linter (push) Failing after 4s Details
Deploy Test / Run deploy test suite (push) Successful in 3m47s Details
Smoke Test / Run basic test suite (push) Successful in 3m55s Details
This adds a stack for the backend from snowball/snowballtools-base.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/751
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-21 04:45:46 +00:00
Thomas E Lackey 65f05ea80c Run a manual build script, if present. (#750)
Publish / Build and publish (push) Successful in 1m31s Details
Deploy Test / Run deploy test suite (push) Successful in 3m34s Details
Webapp Test / Run webapp test suite (push) Successful in 6m1s Details
Smoke Test / Run basic test suite (push) Successful in 4m4s Details
Lint Checks / Run linter (push) Failing after 3s Details
If the tree has a 'build-webapp.sh' script, use that.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/750
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-21 00:20:50 +00:00
zramsay 01f9fe67ed add Mars v2 interface (#744)
Lint Checks / Run linter (push) Failing after 4s Details
Publish / Build and publish (push) Successful in 51s Details
Deploy Test / Run deploy test suite (push) Successful in 3m38s Details
Webapp Test / Run webapp test suite (push) Successful in 2m42s Details
Smoke Test / Run basic test suite (push) Successful in 3m47s Details
Tested on DO with real funds on mainnet

Co-authored-by: zramsay <zach@bluecollarcoding.ca>
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/744
2024-02-19 19:11:59 +00:00
David Boreham 39f4fa4487 Container Registry Stack (#747)
Smoke Test / Run basic test suite (push) Successful in 3m57s Details
Lint Checks / Run linter (push) Failing after 3s Details
Publish / Build and publish (push) Successful in 50s Details
Webapp Test / Run webapp test suite (push) Successful in 2m42s Details
Container Registry Test / Run contaier registry hosting test on kind/k8s (push) Failing after 1m5s Details
Deploy Test / Run deploy test suite (push) Successful in 3m36s Details
Co-authored-by: David Boreham <david@bozemanpas.com>
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/747
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-18 18:55:55 +00:00
David Boreham 37b9500483 Support non-tls ingress for kind (#748)
Publish / Build and publish (push) Successful in 3m2s Details
Smoke Test / Run basic test suite (push) Successful in 4m16s Details
Webapp Test / Run webapp test suite (push) Successful in 11m15s Details
Lint Checks / Run linter (push) Failing after 4s Details
Deploy Test / Run deploy test suite (push) Successful in 3m34s Details
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/748
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-17 01:54:30 +00:00
Thomas E Lackey 3c3e582939 Minor envsubst improvements. (#746)
Lint Checks / Run linter (push) Failing after 3s Details
Publish / Build and publish (push) Successful in 50s Details
Deploy Test / Run deploy test suite (push) Successful in 3m32s Details
Webapp Test / Run webapp test suite (push) Successful in 2m39s Details
Smoke Test / Run basic test suite (push) Successful in 3m49s Details
Minor fixes to envsubst for webapps.  Somewhat specially treated is `LACONIC_HOSTED_CONFIG_homepage` which can be used to replace the homepage in package.json.  With react, this gets an extra `/` though, which we need to remove.

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/746
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-16 04:11:09 +00:00
David Boreham d9bb6b3588 Test Database Stack (#737)
Smoke Test / Run basic test suite (push) Successful in 3m54s Details
Deploy Test / Run deploy test suite (push) Successful in 3m40s Details
Publish / Build and publish (push) Successful in 50s Details
Webapp Test / Run webapp test suite (push) Successful in 2m33s Details
Lint Checks / Run linter (push) Failing after 3s Details
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/737
2024-02-15 05:26:29 +00:00
Thomas E Lackey b22c72e715 For k8s, use provisioner-managed volumes when an absolute host path is not specified. (#741)
In kind, when we bind-mount a host directory it is first mounted into the kind container at /mnt, then into the pod at the desired location.

We accidentally picked this up for full-blown k8s, and were creating volumes at /mnt.  This changes the behavior for both kind and regular k8s so that bind mounts are only allowed if a fully-qualified path is specified.  If no path is specified at all, a default storageClass is assumed to be present, and the volume managed by a provisioner.

Eg, for kind, the default provisioner is: https://github.com/rancher/local-path-provisioner

```
stack: test
deploy-to: k8s-kind
config:
  test-variable-1: test-value-1
network:
  ports:
    test:
     - '80'
volumes:
  # this will be bind-mounted to a host-path
  test-data-bind: /srv/data
  # this will be managed by the k8s node
  test-data-auto:
configmaps:
  test-config: ./configmap/test-config
```

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/741
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-14 21:45:01 +00:00
Thomas E Lackey c9444591f5 Fix default webapp port number. (#740)
Lint Checks / Run linter (push) Failing after 3s Details
Deploy Test / Run deploy test suite (push) Successful in 3m27s Details
Smoke Test / Run basic test suite (push) Successful in 3m54s Details
Publish / Build and publish (push) Successful in 51s Details
Webapp Test / Run webapp test suite (push) Successful in 2m41s Details
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/740
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-09 01:20:41 +00:00
Thomas E Lackey 903f3b10e2 Add support for annotations and labels in spec. (#739)
```
stack: webapp-deployer-backend
deploy-to: k8s
annotations:
  foo.bar.annot/{name}: baz
labels:
  a.b.c/{name}.blah: "value"
```

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/739
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-09 00:11:07 +00:00
Thomas E Lackey 72ed2eb91a Fix bad test in tag check. (#738)
Publish / Build and publish (push) Successful in 50s Details
K8s Deploy Test / Run deploy test suite on kind/k8s (push) Failing after 1m3s Details
Webapp Test / Run webapp test suite (push) Successful in 3m2s Details
Smoke Test / Run basic test suite (push) Successful in 3m48s Details
Lint Checks / Run linter (push) Failing after 3s Details
Deploy Test / Run deploy test suite (push) Successful in 3m30s Details
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/738
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-08 20:38:41 +00:00
David Boreham 2104eb5f30 Merge pull request 'Add Mars stack' (#725) from zach/mars into main
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/725
Reviewed-by: David Boreham <dboreham@noreply.git.vdb.to>
2024-02-08 20:30:47 +00:00
zramsay afd6be3b13 Ping pub (#663)
for #170, revives #190
uses https://github.com/LaconicNetwork/explorer/pull/1

Co-authored-by: zramsay <zach@bluecollarcoding.ca>
Co-authored-by: David Boreham <david@bozemanpass.com>
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/663
Co-authored-by: zramsay <zramsay@noreply.git.vdb.to>
Co-committed-by: zramsay <zramsay@noreply.git.vdb.to>
2024-02-08 20:13:12 +00:00
David Boreham f914baa913 Merge branch 'main' into zach/mars 2024-02-08 19:52:49 +00:00
David Boreham 8be1e684e8 Process environment variables defined in compose files (#736)
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/736
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-08 19:41:57 +00:00
Thomas E Lackey 3309782439 Refactor 2024-02-08 00:47:46 -06:00
Thomas E Lackey 4b3b3478e7 Switch to Docker-style limits 2024-02-08 00:43:41 -06:00
Thomas E Lackey 2a9955055c debug 2024-02-07 16:56:35 -06:00
Thomas E Lackey 8964e1c0fe Add resource limit options to spec. 2024-02-07 16:48:02 -06:00
Thomas E Lackey d2ebb81d77 Tags for undeploy (#734)
Publish / Build and publish (push) Successful in 50s Details
Deploy Test / Run deploy test suite (push) Successful in 3m14s Details
Smoke Test / Run basic test suite (push) Successful in 3m53s Details
Lint Checks / Run linter (push) Failing after 4s Details
Webapp Test / Run webapp test suite (push) Successful in 2m42s Details
```
  --include-tags TEXT             Only include requests with matching tags
                                  (comma-separated).
  --exclude-tags TEXT             Exclude requests with matching tags (comma-
                                  separated).
```

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/734
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-07 21:45:16 +00:00
Thomas E Lackey 4a981d8d2e Fix repo URL (#733)
Needs a '/' (http) not ':' (ssh).

Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/733
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-07 18:52:07 +00:00
Thomas E Lackey 88a0236ca9 Add the ability to filter deployment requests by tag. (#730)
Lint Checks / Run linter (push) Failing after 10s Details
Deploy Test / Run deploy test suite (push) Successful in 3m5s Details
Smoke Test / Run basic test suite (push) Successful in 3m55s Details
Publish / Build and publish (push) Successful in 53s Details
Webapp Test / Run webapp test suite (push) Successful in 2m37s Details
Reviewed-on: https://git.vdb.to/cerc-io/stack-orchestrator/pulls/730
2024-02-07 03:12:40 +00:00