Giter VIP home page Giter VIP logo

infra's Introduction

nix-community infrastructure

Welcome to the Nix Community infrastructure project. This repo holds all the NixOS, nix-darwin and Terraform configuration for this organization.

You're probably looking for our website https://nix-community.org.

If you are trying to get in touch with the admins of nix-community, checkout https://nix-community.org/contact/.

See devdoc for details about deployment, hardware and onboarding admins.

infra's People

Contributors

a-kenji avatar adisbladis avatar bors[bot] avatar ckiee avatar dependabot[bot] avatar ehmry avatar github-actions[bot] avatar github-merge-queue[bot] avatar hercules-ci[bot] avatar janik-haag avatar jonringer avatar jopejoe1 avatar ma27 avatar matthiasbeyer avatar mergify[bot] avatar mic92 avatar nbraud avatar nlewo avatar pinpox avatar puckipedia avatar raitobezarius avatar rhendric avatar roberth avatar ryantm avatar stigtsp avatar timokau avatar trofi avatar vikanezrimaya avatar zimbatm avatar zowoq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

infra's Issues

monitoring

I'd like to host our own monitoring so we are self sufficient.

I guess we could switch to something else but easiest option is import the monitoring we're currently using from https://github.com/Mic92/dotfiles.

I'd focus on getting it working here first but eventually we could look at sharing the boilerplate config, maybe https://github.com/numtide/srvos or somewhere else.

Would also like set up a dashboard as well.

Security reports

https://nixos.org/community/teams/security.html

Like the nixos org I suppose we should have a method and some sort of policy for reporting potential security issues with the infra and repos that don't already have their own security reporting or aren't responsive.

Easiest may be taking reports via github itself: Private vulnerability reporting (beta)

Guess an alternative could be encrypted email but we'd probably want a dedicated address that gets forwarded to everyone rather than it potentially being sent directly to one person who isn't responsive.

Using screen or tmux

I was just thinking a bit about the deploy script a bit.
Would it be possible to extend it, so that it uses screen or tmux when executing the tasks on the remote machine.

The idea is to make it less problematic in case the connection breaks or nixos-rebuild takes a long time and you can disconnect and reconnect at a later point.

Rules for administrators

@adisbladis
@flokli
@grahamc
@Mic92
@nlewo
@ryantm
@zimbatm
@zowoq

I propose to write down a few rules for the administrators of this project for transparency reasons and to make it more democratic.

Responsibilities as an administrator

Our mission is to support the users of the org, and the Nix project in general.

This is a voluntary effort, on a best-effort basis. Things that are good to do are:

  • keep the systems updated and patched
  • reply to user requests
  • host new services that could help the project

Quorum of 5

To reduce the attack surface on the project, I propose limiting the number of administrators to 5 people.

In the current configuration, I propose to keep Mic92 and zowoq because they are actively managing the infra, and ryantm so he can deploy his bot. That leaves 2 other people from the existing list.

How to become an administrator

In order to become an administrator, we ask that you already started contributing to this repo through PRs, and that you are trustworthy. Trust is built on top of personal relationships and past behaviour.

Right now we trust everybody on this list, so that makes it easy for you to come back.


Did I miss anything? Does that sound reasonable?

S.M.A.R.T errors on build01

Result of smartctl --all /dev/sd{a,b}:

sdb.log
sda.log

Summary:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
No failed Attributes found.
# ...
202 Percent_Lifetime_Used   0x0030   001   001   001    Old_age   Offline  FAILING_NOW 99

Apparently disks are EOL, no data error visible.
Should we ask Hetzner for new drives or ignore the error?

Where could we run nixpkgs-swh?

Until recently, the nixpkgs-swh script was executed every day by a buildkite agent. However, this agent no longer exists.

Would it be possible to run a daily systemd cron jobs?
Since it evaluates the whole nixpkgs repository, it takes a bit of time (about 20min on my laptop i guess).
Moreover, we would need to expose the generated JSON file. We would then have to spawn a nginx server to serve it. Note this file doesn't strictly need to be persisted since it is generated each day.

Note that using hydra.nix-community.org seems to be difficult because the script calls hydra.nixos.org to get latest evaluated nixpkgs commits.

WDYT?

Enable discussions on the org?

Should we try to enable the discussions? This might help create a more community feel to the org. Let people raise issues, and have longer form communication than on the Matrix channel.

image

Move marvin-2k to build03

I want to move marvin-2k to build03. I saw that it currently uses webhooks as callbacks.
What domain did you configure as a callback, if it is hardcoded can we make a new subdomain just for marvin-2k?

Add settings app

Any objections to adding the https://github.com/apps/settings app to the org?

It introduces a small attack window where users with push access can change the settings of their repo. But it also makes the config more transparent and self-serving. IMO the trade-off is worth it.

Host marvin-mk2

I'd like to move the marvin-mk2 bot (repo) onto nix-community infrastructure before starting to test it on nixpkgs.

It should consume very little resources. Would that be possible? If so, how should I go about it?

removing the org wide cachix secrets

https://github.com/organizations/nix-community/settings/secrets/actions

  • CACHIX_AUTH_TOKEN
  • CACHIX_SIGNING_KEY

I think we had all agreed these needed to be removed, how to we want to do it? 60 days notice seems reasonable to me?

Projects that want to use the nix-community cachix need to move to hercules or hydra, alternatively they can create their own separate cachix.

This will mean that there is no nix-community cache for darwin as we currently don't have a builder for that platform.

Configure Github with Terraform

We have the Settings app for repository owners to self-configure their repos.

What's missing is to describe all of the teams and members as code to increase transparency even further.

That also helps create a membership list, potentially allow members to send PRs to add new repos, ...

macos build box for community use

It's come up in the poetry2nix matrix chat that a build box for macos would be useful for debugging, as macos builds are causing some blockers currently. Would both aarch64-darwin and x86_64-darwin be needed? I'm happy to help sponsor some of the costs of this.

make build01 a community builder

similar to the aarch64 community builder it would be nice to offer the same service for x86.
This is especially interesting for people with less capable hardware (but potentially more time)
to help pushing the project.

niv-updater-action without PR description

Dear nix-community team,

I've noticed that you're running niv-updater-action without PR descriptions (the changelog). As I'm constantly looking to improve my software and help people, I'm wondering why you're doing it that way? Would you prefer to have something else in the PR description?

I've created an issue for your usecase: knl/niv-updater-action#51

Thanks,
Nikola

Move the domains to Gandi

I want to avoid hidden dependencies. Right now the domains are held by numtide. We need a credit card for this.

queue-build-hook is not efficient

Right now it seems to spawn a new cachix instance for every derivation
instead of passing multiple derivation at the time.
This is very slow for to big amount of emacs derivation in our hydra.

hydra-send-stats fails on build01

cc @grahamc

Since the last nixpkgs upgrade hydra-send-stats.service fails like this:

โ— hydra-send-stats.service
     Loaded: loaded (/nix/store/ws5saprglyw83al17hwpzvsnllf78h39-unit-hydra-send-stats.service/hydra-send-stats.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2021-03-20 05:40:50 UTC; 1min 51s ago
    Process: 28067 ExecStart=hydra-send-stats (code=exited, status=25)
   Main PID: 28067 (code=exited, status=25)
         IP: 0B in, 0B out
        CPU: 92ms

Mar 20 05:40:50 nix-community-build01 systemd[1]: Started hydra-send-stats.service.
Mar 20 05:40:50 nix-community-build01 hydra-send-stats[28067]: Undefined subroutine &main::getHydraConfig called at /nix/store/m3mz9nv3wad8qigf9mb88k8adk6pwacm-hydra-2021-03-10/bin/.hydra-se>
Mar 20 05:40:50 nix-community-build01 systemd[1]: hydra-send-stats.service: Main process exited, code=exited, status=25/n/a
Mar 20 05:40:50 nix-community-build01 systemd[1]: hydra-send-stats.service: Failed with result 'exit-code'.

Hydra builds doesn't seem to be pushed to cachix nor signed for fetching from Hydra

It looks like the builds are intended to end up in Cachix:

<runcommand>
command = ${pkgs.writeShellScript "cachix-upload" ''
export PATH=${config.nix.package}/bin
${pkgs.jq}/bin/jq -r '.outputs | .[] | .path' < $HYDRA_JSON | \
${pkgs.cachix}/bin/cachix -c ${config.sops.secrets.nix-community-cachix.path} push nix-community
''}

However, I've tried to check it with Kittybox. The build output is present in the Hydra, but is not signed. Cachix doesn't contain the output.

Is this intentional?

admin access to services

  • buildkite - not currently in use (looks like we could use terraform for this)
  • cachix
  • cloudflare - #408
  • #425
  • hercules - looks like org owners get admin automatically
  • matrix
    • #community-monitoring:nixos.dev
    • #nix-community:nixos.org
  • open collective
  • terraform cloud - #394, #404
  • gitlab

I'll leave the server hardware off this list as we have do have access via sops secrets and consolidating those accounts is more a finance issue.

on build01, nix-build seems to hang

nixpkgs-update has been stuck for a day trying to do nixpkgs-review for pythonPackages.fastapi, a package with only 10 reverse dependencies. It seems like nix-build is not reliably running. I've left it in this state in case someone with more knowledge about the nix-daemon or nix-build can diagnose the problem more.

@zimbatm thinks it might be a problem with the nix-daemon having trouble with man concurrent builds

cc @adisbladis

nixpkgs-update logs backup

https://r.ryantm.com/log/

I was going to do a manual backup of these logs before reinstalling build02 but I suppose we should really be doing regular backups so they aren't all lost if build02 dies.

If we don't have somewhere external to nix-community to back them up to I guess we'd want backups on a couple of our machines?

cc @nix-community/admin

Deployment permissions for timokau

Since nix-community now hosts marvin-mk2, it would be nice if I could deploy new versions myself. This is especially relevant on major changes where I'd like to control the timing and fixes which should be deployed quickly.

In addition to that, I'd like to transfer the bot instance itself (https://github.com/apps/marvin-mk2) to nix-community to reduce dependency on a single person, but to do that I while maintaining access to the admin interface I think I would need to be a member.

Previously discussed in #24 and privately with @adisbladis.

CC @adisbladis @flokli @grahamc @nlewo @ryantm @zimbatm

Create a bot Github profile for nix-community

We have a workflow in ethereum.nix that needs to sign commits: nix-community/ethereum.nix#165

Ideally there would be a Github profile for a nix-community account against which gpg keys can be added. If a repository requires signing they would generate a gpg key and set it as a repo secret, then also create a PR against this project to have that GPG key added to the bot profile.

Relevant background:

Move servers to the collective

I would like to move the funding from GitHub to Open Collective to be more transparent. Open Collective also allows acquiring virtual credit cards, so we could use that to pay for them. We also have an admin@ address that we can use to forward billing emails.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.