- Updated on May 29 to accommodate etcd container not having
/bin/sh
available anymore.
curl -sL https://get.rke2.io | sh
systemctl daemon-reload
systemctl start rke2-server
Implementing business transactions that span multiple services is not straightforward. Distributed transactions are best avoided because of the CAP theorem. Moreover, many modern (NoSQL) databases don’t support them. The best solution is to use the Saga Pattern.
[...]
The repository for the assignment is public and Github does not allow the creation of private forks for public repositories.
The correct way of creating a private frok by duplicating the repo is documented here.
For this assignment the commands are:
git clone --bare [email protected]:usi-systems/easytrace.git
When attempting to remove all of the data in the Nomad data directory, several directories and files are unable to be deleted. Many messages are logged to the console like:
rm: cannot remove ‘alloc/736f61b9-d7dc-cb73-0dd1-76b1b2ba032d/nomad-ui/secrets’: Device or resource busy
rm: cannot remove ‘alloc/ddcf5a78-5497-f4a4-a101-221fc4e0180b/fabio/alloc’: Device or resource busy
rm: cannot remove ‘alloc/ddcf5a78-5497-f4a4-a101-221fc4e0180b/fabio/secrets’: Device or resource busy
[SERVICE] | |
Flush 1 | |
Log_Level info | |
Parsers_File parsers.conf | |
[INPUT] | |
Name tail | |
# Log file will be placed at: /tmp/fluent-bit/logs/<app_name>/<file_name>.log | |
Path /tmp/fluent-bit/logs/*/*.log | |
Path_Key LogSource |
job "minio" { | |
datacenters = ["dc1"] | |
type = "service" | |
group "minio1" { | |
ephemeral_disk { | |
size = 10000 | |
sticky = true | |
migrate = false | |
} |
scrape_configs: | |
- job_name: 'consul_sd' | |
consul_sd_configs: | |
- server: '{{ env "NOMAD_IP_http"}}:8500' | |
services: [] | |
relabel_configs: | |
- source_labels: [__meta_consul_service_metadata_prometheus_enable] | |
regex: true | |
action: keep | |
- source_labels: [__meta_consul_service_metadata_prometheus_path] |
# Disable the Gradle daemon for Continuous Integration servers as correctness | |
# is usually a priority over speed in CI environments. Using a fresh | |
# runtime for each build is more reliable since the runtime is completely | |
# isolated from any previous builds. | |
variables: | |
GRADLE_OPTS: "-Dorg.gradle.daemon=false" | |
DOCKER_TLS_CERTDIR: "" | |
before_script: | |
- export GRADLE_USER_HOME=`pwd`/.gradle |
service { | |
name = "go-demo" | |
port = "http" | |
address_mode = "driver" | |
tags = [ | |
"traefik.enable=true", | |
"traefik.http.middlewares.strip-go-demo.stripprefix.prefixes=/go-demo", | |
"traefik.http.routers.go-demo.entrypoints=http", | |
"traefik.http.routers.go-demo.rule=PathPrefix(`/go-demo`)", | |
"traefik.http.routers.go-demo.middlewares=strip-go-demo" |