| #!/bin/bash | |
| set -euxo pipefail | |
| # Get all the Buildkite agent tokens. | |
| mkdir -p /etc/buildkite-agent-metrics | |
| cat > /etc/buildkite-agent-metrics/trusted <<EOF | |
| BUILDKITE_AGENT_TOKEN=$(gcloud secrets versions access latest --secret="bazel-trusted-buildkite-agent-token" --project bazel-public) | |
| GCP_PROJECT=bazel-public | |
| EOF | |
| cat > /etc/buildkite-agent-metrics/testing <<EOF | |
| BUILDKITE_AGENT_TOKEN=$(gcloud secrets versions access latest --secret="bazel-testing-buildkite-agent-token" --project bazel-untrusted) | |
| GCP_PROJECT=bazel-untrusted | |
| EOF | |
| cat > /etc/buildkite-agent-metrics/untrusted <<EOF | |
| BUILDKITE_AGENT_TOKEN=$(gcloud secrets versions access latest --secret="bazel-buildkite-agent-token" --project bazel-untrusted) | |
| GCP_PROJECT=bazel-untrusted | |
| EOF | |
| # Download the latest buildkite-agent-metrics release. | |
| curl -fsSL -o /usr/local/bin/buildkite-agent-metrics \ | |
| https://storage.googleapis.com/bazel-ci/buildkite-agent-metrics/20190906-8188dca2affcd2ffd45875af6761adacbe60bf28/buildkite-agent-metrics-linux-amd64 | |
| chmod +x /usr/local/bin/buildkite-agent-metrics | |
| # Create systemd unit files for each service. | |
| cat > /etc/systemd/system/buildkite-agent-metrics@.service <<'EOF' | |
| [Unit] | |
| Description=Buildkite Agent Metrics (%i) | |
| After=network.target | |
| [Service] | |
| Type=exec | |
| Restart=always | |
| RestartSec=10 | |
| StartLimitIntervalSec=0 | |
| EnvironmentFile=/etc/buildkite-agent-metrics/%i | |
| ExecStart=/usr/local/bin/buildkite-agent-metrics -token $BUILDKITE_AGENT_TOKEN -interval 30s -backend stackdriver -stackdriver-projectid $GCP_PROJECT | |
| [Install] | |
| WantedBy=multi-user.target | |
| EOF | |
| systemctl daemon-reload | |
| systemctl start buildkite-agent-metrics@trusted.service | |
| systemctl start buildkite-agent-metrics@testing.service | |
| systemctl start buildkite-agent-metrics@untrusted.service |