input-output-hk/iohk-ops

NixOps deployment configuration for IOHK devops

Nix

115

2,532 commits

updated Mar 5, 2020

See the code

README

Build status

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

  1. Fork https://github.com/input-output-hk/iohk-ops
  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.

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
ami
nix
nixops
nixos

Contributors

(top 30 of 40)

deepfire

887 commits

domenkozar

478 commits

rvl

322 commits

cleverca22

222 commits

input-output-hk/iohk-ops

NixOps deployment configuration for IOHK devops

Nix

115

2,532 commits

updated Mar 5, 2020

See the code

README

Build status

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

  1. Fork https://github.com/input-output-hk/iohk-ops
  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.

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
ami
nix
nixops
nixos

Contributors

(top 30 of 40)

deepfire

887 commits

domenkozar

478 commits

rvl

322 commits

cleverca22

222 commits

Languages

Nix

55.2%

Haskell

16.9%

HTML

15.8%

Shell

6.2%

HCL

2.7%

R

1.8%