iohk-ops
iohk-ops copied to clipboard
NixOps deployment configuration for IOHK devops
Collection of tooling and automation to deploy IOHK infrastructure.
Structure
-
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
- Fork https://github.com/input-output-hk/iohk-ops
- Check out the
master
branch - Add your username and SSH public key to the appropriate developer
section of
lib/ssh-keys.nix
. Keys should remain sorted alphabetically by username. - Submit a PR against
master
and let DevOps know. - Wait until the DevOps team deploys the infrastructure cluster.
The io
command
Sources for the iohk-ops
tool are in the iohk
directory.
Usage
After cloning this repo, start a nix-shell
.
% nix-shell
[nix-shell:~/iohk/iohk-ops]$ io --help
For more documentation, see docs/iohk-ops-reference.md
.
Development
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: http://www.haskell.org/ghc/ :? 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 https://github.com/input-output-hk/iohk-ops/archive/master.tar.gz -A iohk-ops)/bin/iohk-ops --help