NixOps deployment configuration for IOHK devops
Switch branches/tags
PR-benchmarks110 automated-testing-more-nodes avm-deployer bazel-cache benchmarking bors-staging bors-trying buildkite-improvements cardano-wallet-submodularised cryptonite-gold deserokell develop-master-sync develop devenv-fixes devops-77 devops-82-deploy-cardano-sl-0-4-4 devops-120-backups devops-120-monad-restacking devops-157-devnet devops-171-hydra-prs devops-208-mvdns devops-302-only-required-cardano-platforms devops-382-mainnet-infra-from devops-382-mainnet-infra-to devops-395-document-separation-of-concerns devops-398-testnet devops-623-stale-state devops-674-buildkite-clean devops-674-buildkite-git-clean devops-678 devops-738/hydra-jobs-only-on-slaves devops-779-burn-sh devops-797-staging-zendesk devops-819-asset-locking devops-827-global-terraform devops-827-iam devops-854-hydra-metrics-patch devops-862-tarsnap devops-907-fix-cardano-sl-src devops-923 devops-979-remove-benchmark-ci devops-987-ci-refactor devops-1012 devops-1039-influxdb-ci-time-github-webhook devops-1144-dev-cluster-practice devops-1168-windows-dev devops-1182-nix-darwin disable-bench-ci exp-subdirs faucet fix-config-parsing fix-hydra-jobsets hotfix/mainnet-add-relays-2017-12-13 hotfix/relays6 io-bash-completion job-subsetting-by-github-tag krisajenkins-mantis mantis-staging-deployer master packet-nixops philipp/policy-experiments policy-experiments-additional-edgenodes policy-experiments relays5-test release-testnet-0.6 release/mainnet-2017-10-16 release/mainnet-2017-12-08 release/1.1.1 release/2018-01-09 release/2018-01-31 release/2018-04-13 report-server-hotfix rvl/hydra-cardano-sl-1-2 rvl/jobset-cardano-submodules rvl/testnet-fixes sam-ssh-key-typo sayonara-cardano-deployer serge/authority shell_update shellcheck-hydra slow-fallocate stack2nix-breakage staging-new-s2n teamspeak testnet
Nothing to show
Clone or download
iohk-bors[bot] and rvl Merge #506
506: [DEVOPS-1112] Bump cardano-sl version to 2.0.0 r=rvl a=rvl

Co-authored-by: Rodney Lorrimar <>
Latest commit d1482c6 Dec 13, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.buildkite buildkite job to build jobsets Nov 16, 2018
benchmarks [CBR-275] Adapt to new logging Oct 11, 2018
deployments Merge #465 Nov 10, 2018
docs [DEVOPS-1165] Fix io update-proposal voter index Dec 3, 2018
github-webhook-util [DEVOPS-1039] Filter statuses for success/fail before writing to infl… Sep 17, 2018
iohk Merge #489 Dec 12, 2018
jobsets [DEVOPS-1174] jobsets: Increase priority of Bors staging jobs Dec 7, 2018
lib ssh-key for karknu Dec 10, 2018
modules also report github status correctly for chain Nov 29, 2018
nix-darwin Merge pull request #458 from input-output-hk/rvl/buildkite-agent-env Nov 6, 2018
scripts [CGKIELE-758] A separate Github token for Mantis hydra Oct 10, 2018
static [CBR-275] Adapt to new logging Oct 11, 2018
terraform [DEVOPS-827] terraform: fix install_aws_credentials script Nov 15, 2018
tests global: split out config from options Sep 5, 2017
.gitattributes Ignore diff changes in autogenerated pkgs/default.nix Jun 19, 2017
.gitignore [DEVOPS-1126] only notify required attribute for iohk-ops, plutus and… Nov 9, 2018 [DEVOPS-1165] docs: Update instructions for ghci Dec 3, 2018
bors.toml fix bors to work with single required notification Nov 16, 2018
cardano-sl-src.json [DEVOPS-1112] Bump cardano-sl version to 2.0.0 Dec 13, 2018
default.nix [DEVOPS-1165] Fix nix-shell for cabal development Dec 3, 2018
fetch-nixpkgs.nix [DEVOPS-779] Remove and fetchNixpkgs.nix Sep 30, 2018
globals.nix fix a conflict and refactor all the things Aug 16, 2018
lib.nix [DEVOPS-779] checks: Use Hydra-friendly source cleaning method Oct 1, 2018
mainnet-infra.yaml [DEVOPS-398] Remove unused keys from yaml Aug 13, 2018
mainnet.yaml mainnet, staging: set installer-url-base; become suspicious of simila… Aug 10, 2018
nixpkgs-src.json fix the hydra eval Sep 25, 2018
production-infra.yaml [DEVOPS-1047] enroll 4 c1-small-x86 slaves Oct 10, 2018
relay-batch-3.yaml bulk relays: add the missing `installer-url-base` field Oct 15, 2018
relay-batch-4.yaml bulk relays: add the missing `installer-url-base` field Oct 15, 2018
relay-batch-5.yaml bulk relays: add the missing `installer-url-base` field Oct 15, 2018
relay-batch-6.yaml bulk relays: add the missing `installer-url-base` field Oct 15, 2018
shell.nix [DEVOPS-1165] shell.nix: ioSelfBuild wasn't working Dec 3, 2018
staging-infra.yaml [DEVOPS-382] staging infra config: reduce delta with production infra… Jan 31, 2018
staging-testnet.yaml Rollback changes to staging-testnet Aug 13, 2018
testnet.yaml [DEVOPS-398] testnet.yaml: Update systemStart Nov 10, 2018
topology-benchmark.yaml [PB-13] Added benchmark environment. May 7, 2018
topology-bulk3.yaml fix the northeast zones Dec 17, 2017
topology-bulk4.yaml the 40s relays Dec 17, 2017
topology-bulk5.yaml the p-{b,c}-50's batch Dec 17, 2017
topology-bulk6.yaml Add relays6 topology for new public relays cluster. Jan 3, 2018
topology-development.yaml [DEVOPS-157] topology | development: the devnet configuration key has… Nov 10, 2017
topology-edgenode.yaml [PB-44] cumulative commit to reenable edgenodes in benchmarking Mar 6, 2018
topology-min.yaml topologies: add the now-mandatory zone specs Sep 23, 2017
topology-production.yaml [DEVOPS-398] topology-production.yaml: fix relay count in comment Aug 13, 2018
topology-staging.yaml change zone/region in staging to test relay migration Sep 28, 2017
topology-testnet.yaml [DEVOPS-398] Initial testnet deployment Aug 13, 2018

Build status

Collection of tooling and automation to deploy IOHK infrastructure.


  • deployments - includes all NixOps deployments controlled via .hs scripts
  • modules - NixOS modules
  • lib.nix - wraps upstream <nixpkgs/lib.nix> with our common functions
  • scripts - has bash scripts not converted to Haskell/Turtle into Cardano.hs yet
  • default.nix - is a collection of Haskell packages
  • static includes files using in deployments
  • jobsets is used by Hydra CI
  • terraform - other AWS infrastructure
  • nix-darwin - deployment script and configurations for MacOS X machines

Getting SSH access

  1. Fork
  2. Check out the master branch
  3. Add your username and SSH public key to the appropriate developer section of lib/ssh-keys.nix. Keys should remain sorted alphabetically by username.
  4. Submit a PR against master and let DevOps know.
  5. Wait until the DevOps team deploys the infrastructure cluster.

The io command

Sources for the iohk-ops tool are in the iohk directory.


After cloning this repo, start a nix-shell.

% nix-shell
[nix-shell:~/iohk/iohk-ops]$ io --help

For more documentation, see docs/


To hack on the iohk-ops tool, use

% nix-shell -A ioSelfBuild
[nix-shell:~/iohk/iohk-ops]$ type io
io is a function
io ()
    cabal exec iohk-ops -- "$@"
[nix-shell:~/iohk/iohk-ops]$ io --help

This will provide a Haskell environment where you can use io to run the script or ghci for development:

[nix-shell:~/iohk/iohk-ops]$ ghci -iiohk/common
GHCi, version 8.2.2:  :? for help
Loaded GHCi configuration from /home/rodney/config/.ghc/ghci.conf
λ> :l iohk/iohk-ops.hs

Run from anywhere

$(nix-build --no-out-link -A iohk-ops)/bin/iohk-ops --help