diff --git a/.skaffold/build b/.skaffold/build deleted file mode 100755 index 18edba1323..0000000000 --- a/.skaffold/build +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# This is called from parallel CLI and creates a docker task for each component passed -# Each component gets its own cargo cache and cargo_target_dir - -# Check if CONTEXT is set to k3s -if [ "$CONTEXT" == "k3s" ]; then - IMAGE_NAME="build-container-localdev" -else - IMAGE_NAME="registry.minikube/build-container:latest" -fi - -# get the first word from this string -COMPONENT=`echo $1 | cut -d" " -f1` - -docker run --rm -v $REPO_ROOT:/carbide \ - -e CARGO_TARGET_DIR=/target/$COMPONENT \ - -e CARGO_HOME=/cache/cargo/$COMPONENT \ - -e SCCACHE_DIR=/cache/sccache \ - -e USER=$USER \ - -v $REPO_ROOT/.skaffold/target:/target \ - -v $REPO_ROOT/.skaffold/cache:/cache \ - --user $(id -u):$(id -g) \ - --add-host urm.nvidia.com:10.124.92.246 \ - $IMAGE_NAME $1 - diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index b551cb8053..0000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,361 +0,0 @@ -# NOTE: You need the docker loki log driver: -# `docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions` - -networks: - carbide: - driver_opts: - com.docker.network.bridge.name: carbide0 - ipam: - config: - - subnet: "172.20.0.0/24" - underlay: - driver_opts: - com.docker.network.bridge.name: underlay0 - ipam: - config: - - subnet: "172.21.0.0/24" -services: - dhcp-relay: - depends_on: - - carbide-dhcp - cap_add: - - CAP_NET_ADMIN - container_name: "dhcp-relay" - networks: - carbide: - ipv4_address: 172.20.0.11 - image: carbide-runtime:latest - command: - - sh - - -c - - | - apt-get update - apt-get install libnl-3-dev libnl-route-3-dev libnl-genl-3-dev libjansson-dev libev-dev git -y - git clone https://github.com/westermo/dhcp-helper.git - cd dhcp-helper - autoreconf -i - ./configure - make - make install - echo { \"option82\": { }, \"server\": [ { \"address\": \"172.20.0.12\" }], \"group\": [ { \"giaddr\": \"172.20.0.11\" } ] } > /etc/dhcphelper.json - /usr/local/bin/dhcp-helper - - carbide-dhcp: - depends_on: - - loki - build: crates/dhcp - networks: - carbide: - ipv4_address: 172.20.0.12 - ports: - - "67:67/udp" - - 1089:1089 - volumes: - - $HOME/docker_cargo_home:/docker_cargo_home - - ./dev/certs:/opt/forge - - .:/app/code - - ca-certificate:/identity - - /var/run/carbide-dns.sock:/var/run/carbide-dns.sock - environment: - - DISABLE_TLS_ENFORCEMENT=true - - CARGO_HOME=/docker_cargo_home - - FORGE_ROOT_CAFILE_PATH=/opt/forge/forge_root.pem - command: cargo watch -C crates/dhcp -x "build --target-dir /tmp/carbide-dhcp" -s "/usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4-carbide.conf" - cap_add: - - net_bind_service - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - carbide-db-migrations: - depends_on: - - postgresql - build: crates/api - networks: - carbide: - ipv4_address: 172.20.0.13 - volumes: - - $HOME/docker_cargo_home:/docker_cargo_home - - .:/app/code - - ca-certificate:/identity - environment: - - CARGO_HOME=/docker_cargo_home - command: cargo watch -C crates/api -x "run --target-dir /tmp/carbide-db-migrations -- migrate --datastore='postgres://carbide_development:notforprod@postgresql'" - - carbide-api: - depends_on: - - carbide-db-migrations - - postgresql - - loki - build: crates/api - networks: - carbide: - ipv4_address: 172.20.0.14 - underlay: - ipv4_address: 172.21.0.14 - volumes: - - $HOME/docker_cargo_home:/docker_cargo_home - - ./dev/certs:/opt/forge - - .:/app/code - - ca-certificate:/identity - # For trace/debug mode add '-dd': - # command: cargo watch -C crates/api -x "run --target-dir /tmp/carbide-api -- -dd run [...] - # Create BMC site wide credentials to avoid Vault warnings, in container: - # cargo build -p admin --target-dir /opt/forge-admin-cli/ - # /opt/forge-admin-cli/debug/forge-admin-cli -c https://127.0.0.1:1079 --client-cert-path /opt/forge/server_identity.pem --client-key-path /opt/forge/server_identity.key credential add-bmc --kind=site-wide-root --password=password - # - # Update database extract: - # ssh to dev3/4 - # kubectl exec -i -t -n postgres forge-pg-cluster-2 -- /usr/bin/pg_dump --no-owner --rows-per-insert=100 --on-conflict-do-nothing --clean --if-exists -U postgres forge_system_carbide | tee ~grahamk/dev.sql - # scp that dev.sql file back to your local - # compress with `xz -9` - # name it correctly, commit it, and edit the xzcat line below - # xzcat /app/code/dev/dev_db_20240813.sql.xz | /usr/bin/psql -h postgresql -U carbide_development - # - # Manual (auto-load was removed): - # - Same DB export as before - # - Delete the carbide-migrations service/container definition above - # - docker-compose up - # - Once `postgresql` is up: - # `PGPASSWORD=notforprod psql -h 172.20.0.16 -U carbide_development < db.sql` - # - command: - - sh - - -c - - > - cargo build -p admin --target-dir /opt/forge-admin-cli/ - - cargo watch -C crates/api -x "run --target-dir /tmp/carbide-api -- - run --config-path=/app/code/dev/docker-env/carbide-api-config.toml" - ports: - - 1079:1079 - - 1080:1080 - - 6669:6669 - environment: - - PGPASSWORD=notforprod - - DISABLE_TLS_ENFORCEMENT=true - - CARGO_HOME=/docker_cargo_home - - CARBIDE_API_DATABASE_URL=postgres://carbide_development:notforprod@postgresql - - VAULT_KV_MOUNT_LOCATION=secret - - VAULT_PKI_MOUNT_LOCATION=unsupported - - VAULT_PKI_ROLE_NAME=unsupported - - UNSUPPORTED_CERTIFICATE_PROVIDER=true - - VAULT_TOKEN=notforprodtoken - - VAULT_ADDR=http://vault:8200 - - RUST_BACKTRACE=full - - RUST_LIB_BACKTRACE=0 - - RUST_LOG=DEBUG - extra_hosts: - - "host.docker.internal:host-gateway" - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - carbide-pxe: - depends_on: - - loki - build: pxe - networks: - carbide: - ipv4_address: 172.20.0.15 - ports: - - 1083:1080 - volumes: - - $HOME/docker_cargo_home:/docker_cargo_home - - ./dev/certs:/opt/forge - - .:/app/code - - ca-certificate:/identity - environment: - - DISABLE_TLS_ENFORCEMENT=true - - CARGO_HOME=/docker_cargo_home - - ROCKET_port=1080 - - FORGE_ROOT_CAFILE_PATH=/opt/forge/forge_root.pem - - FORGE_CLIENT_CERT_PATH=/opt/forge/server_identity.pem - - FORGE_CLIENT_KEY_PATH=/opt/forge/server_identity.key - - ARTIFACT_AUTHORIZATION_USER=$ARTIFACT_AUTHORIZATION_USER - - ARTIFACT_AUTHORIZATION_TOKEN=$ARTIFACT_AUTHORIZATION_TOKEN - command: cargo watch -C crates/pxe -x "run --target-dir /tmp/carbide-pxe" - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - postgresql: - depends_on: - - loki - image: postgres:14.1-alpine - networks: - carbide: - ipv4_address: 172.20.0.16 - volumes: - - db-data:/var/lib/postgresql/data - - ca-certificate:/identity - environment: - - POSTGRES_USER=${DBUSER:-carbide_development} - - POSTGRES_DB=${DBNAME:-carbide_development} - - POSTGRES_PASSWORD=${DBPASSWD:-notforprod} - command: -c ssl=off -c max_connections=300 -c shared_buffers=256MB - ports: - - 5432:5432 - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - ntp: - image: cturra/ntp - networks: - carbide: - ipv4_address: 172.20.0.24 - ports: - - "123:123/udp" - cap_add: - - net_bind_service - - vault: - depends_on: - - loki - image: hashicorp/vault:latest - networks: - carbide: - ipv4_address: 172.20.0.19 - cap_add: - - ipc_lock - environment: - - VAULT_DEV_ROOT_TOKEN_ID=notforprodtoken - - VAULT_KV_MOUNT_LOCATION=secret - - VAULT_TOKEN=notforprodtoken - - VAULT_ADDR=http://vault:8200 - healthcheck: - interval: 1s - timeout: 5s - retries: 5 - test: [ "CMD", "vault", "status" ] - volumes: - - vault-data:/vault/file - - ca-certificate:/identity - domainname: metal.dev - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - # Unless testing dns, this container is not necessary - # - #powerdns: - # depends_on: - # - carbide-dns - # - postgresql - # - carbide-api - # build: - # dockerfile: dev/docker/Dockerfile-powerdns - # networks: - # carbide: - # ipv4_address: 172.20.0.53 - # volumes: - # - dns_socket:/tmp - # - .:/app/code - # command: - # - sh - # - -c - # - > - # mkdir -p /etc/services.d/pdns - - # cp -f /app/code/dev/docker-env/pdns-run /etc/services.d/pdns/run - - # cp -f /app/code/dev/docker-env/pdns.conf /etc/powerdns - - # chmod +x /etc/services.d/pdns/run - - # /bin/s6-svscan /etc/services.d/ - # ports: - # - "1053:53/udp" - - carbide-dns: - depends_on: - - postgresql - - carbide-api - - loki - build: crates/dns - networks: - carbide: - ipv4_address: 172.20.0.20 - volumes: - - $HOME/docker_cargo_home:/docker_cargo_home - - .:/app/code - - dns_socket:/tmp - environment: - - RUST_LOG=debug - - DISABLE_TLS_ENFORCEMENT=true - - CARGO_HOME=/docker_cargo_home - command: cargo watch -C crates/dns -x "run --target-dir /tmp/carbide-dns -- --config-path=/app/code/dev/docker-env/carbide-dns-config.toml run" - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - prometheus: - depends_on: - - loki - image: prom/prometheus:v2.41.0 - container_name: prometheus - volumes: - - ./dev/prometheus:/etc/prometheus - - prometheus-data:/prometheus - command: - - '--config.file=/etc/prometheus/prometheus.yml' - - '--storage.tsdb.path=/prometheus' - - '--web.console.libraries=/etc/prometheus/console_libraries' - - '--web.console.templates=/etc/prometheus/consoles' - - '--storage.tsdb.retention.time=200h' - - '--web.enable-lifecycle' - restart: unless-stopped - ports: - - "9090:9090" - networks: - carbide: - ipv4_address: 172.20.0.22 - logging: - driver: loki - options: - loki-url: "http://172.20.0.25:3100/loki/api/v1/push" - - grafana: - image: grafana/grafana:9.3.2 - container_name: grafana - volumes: - - grafana-data:/var/lib/grafana - - ./dev/grafana/provisioning:/etc/grafana/provisioning - environment: - - GF_SECURITY_ADMIN_USER=forge - - GF_SECURITY_ADMIN_PASSWORD=forge - - GF_USERS_ALLOW_SIGN_UP=false - restart: unless-stopped - ports: - - "3000:3000" - networks: - carbide: - ipv4_address: 172.20.0.23 - - loki: - image: grafana/loki:2.8.0 - container_name: loki - volumes: - - ./dev/loki:/etc/loki - ports: - - "3100:3100" - command: -config.file=/etc/loki/loki-config.yml - networks: - carbide: - ipv4_address: 172.20.0.25 - -volumes: - dns_socket: - driver: local - ca-certificate: {} - db-data: {} - grafana-data: {} - prometheus-data: {} - vault-data: {} diff --git a/skaffold.yml b/skaffold.yml deleted file mode 100644 index b445524d5d..0000000000 --- a/skaffold.yml +++ /dev/null @@ -1,110 +0,0 @@ -apiVersion: skaffold/v4beta2 -kind: Config -metadata: - name: carbide -build: - tagPolicy: - sha256: {} - local: - push: false - useBuildkit: true - useDockerCLI: true - artifacts: - - image: carbide-dns - sync: - infer: - - "carbide-dns" - docker: - dockerfile: dev/deployment/localdev/Dockerfile.dns.localdev - - image: carbide-pxe - docker: - dockerfile: dev/deployment/localdev/Dockerfile.pxe.localdev - sync: - infer: - - "carbide" - - pxe/templates/* - - pxe/static/* - - pxe/scout-firmware-scripts/**/* - - image: nginx - docker: - dockerfile: dev/deployment/localdev/Dockerfile.nginx.localdev - sync: - infer: - - "carbide" - - pxe/static/* - - image: carbide-api - docker: - dockerfile: dev/deployment/localdev/Dockerfile.api.localdev - noCache: true - sync: - infer: - - "carbide-api" - - api/casbin-policy.csv - - pxe/static/* - - pxe/scout-firmware-scripts/**/* - - image: forge-admin-cli - docker: - dockerfile: dev/deployment/localdev/Dockerfile.forge-admin-cli.localdev - sync: - infer: - - "forge-admin-cli" - - image: carbide-dhcp-server - docker: - dockerfile: dev/deployment/localdev/Dockerfile.dhcpserver.localdev - sync: - infer: - - "forge-dhcp-server" - - image: carbide-dhcp - docker: - dockerfile: dev/deployment/localdev/Dockerfile.dhcp.localdev - sync: - infer: - - "libdhcp.so" - - image: bmc-mock - docker: - dockerfile: dev/deployment/localdev/Dockerfile.bmc-mock.localdev - sync: - infer: - - "bmc-mock" - - image: machine-a-tron - docker: - dockerfile: dev/deployment/localdev/Dockerfile.machine-a-tron.localdev - sync: - infer: - - "machine-a-tron" - - image: nvmetal-scout-burn-in - docker: - dockerfile: dev/deployment/localdev/Dockerfile.machine-validation-config.localdev - sync: - infer: - - "nvmetal-scout-burn-in" - - image: carbide-hardware-health - docker: - dockerfile: dev/deployment/localdev/Dockerfile.health.localdev - sync: - infer: - - "hw-health" - - image: carbide-bmc-proxy - docker: - dockerfile: dev/deployment/localdev/Dockerfile.bmc-proxy.localdev - sync: - infer: - - "carbide-bmc-proxy" - - image: ssh-console-rs - docker: - dockerfile: dev/deployment/localdev/Dockerfile.ssh-console.localdev - sync: - infer: - - "ssh-console" -manifests: - kustomize: - paths: - - forged/envs/local-dev/site/site-controller - buildArgs: ["--enable-alpha-plugins", "--enable-exec"] - -deploy: - kubeContext: k3s-dev - kubectl: - defaultNamespace: forge-system - statusCheckDeadlineSeconds: 300 - tolerateFailuresUntilDeadline: true