Description

The goal of this project is to begin the initial phase of development of an all-in-one Cloud-Native Policy Engine that notifies resource owners when their resources infringe predetermined policies. This was inspired by a current issue in the CES-SRE Team where other solutions seemed to not exactly correspond to the needs of the specific workloads running on the Public Cloud Team space.

The initial architecture can be checked out on the Repository listed under Resources.

Among the features that will differ this project from other monitoring/notification systems:

  • Pre-defined sensible policies written at the software-level, avoiding a learning curve by requiring users to write their own policies
  • All-in-one functionality: logging, mailing and all other actions are not required to install any additional plugins/packages
  • Easy account management, being able to parse all required configuration by a single JSON file
  • Eliminate integrations by not requiring metrics to go through a data-agreggator

Goals

  • Create a minimal working prototype following the workflow specified on the documentation
  • Provide instructions on installation/usage
  • Work on email notifying capabilities

Resources

Looking for hackers with the skills:

golang cloud aws

This project is part of:

Hack Week 25

Activity

  • 26 days ago: baldarn liked this project.
  • about 1 month ago: gbazzotti started this project.
  • about 1 month ago: gbazzotti added keyword "golang" to this project.
  • about 1 month ago: gbazzotti added keyword "cloud" to this project.
  • about 1 month ago: gbazzotti added keyword "aws" to this project.
  • about 1 month ago: gbazzotti originated this project.

  • Comments

    • gbazzotti
      17 days ago by gbazzotti | Reply

      Development Update: this week has been great for development, with many changes to the core architecture being noticed as required to depart from the original vision to enhance core functionality. Several packages were introduced to modularize the project to make it easier to develop new policies, such as logging config, errors, policies and utils.

      Key functional updates include the implementation of email sending capabilities through SES, the addition of notify and version commands, and refinements to identity checks and JSON marshalling.

    • gbazzotti
      15 days ago by gbazzotti | Reply

      Final HackWeek Development Update: today was a very productive day with the e-mail template being updated, as well as adding a lot of documentation regarding the current policies, different installation methods and overall general housekeeping changes to put the program to the test.

      Although HackWeek is over, this project really made me get in touch with something I'm passionate about and that I think I could create value and save a lot of time for my team, so I will definitely keep working on this project for months to come and try to make it a used tool by the SRE teams across CES. Next steps will be to prevent emails going to spam by configuring DKIM, developing new policies to fit the needs of those who test the tool, and using GoReleaser to automatically create new binary releases

    Similar Projects

    Contribute to terraform-provider-libvirt by pinvernizzi

    Description

    The SUSE Manager (SUMA) teams' main tool for infrastructure automation, Sumaform, largely relies on terraform-provider-libvirt. That provider is also widely used by other teams, both inside and outside SUSE.

    It would be good to help the maintainers of this project and give back to the community around it, after all the amazing work that has been already done.

    If you're interested in any of infrastructure automation, Terraform, virtualization, tooling development, Go (...) it is also a good chance to learn a bit about them all by putting your hands on an interesting, real-use-case and complex project.

    Goals

    • Get more familiar with Terraform provider development and libvirt bindings in Go
    • Solve some issues and/or implement some features
    • Get in touch with the community around the project

    Resources


    go-git: unlocking SHA256-based repository cloning ahead of git v3 by pgomes

    Description

    The go-git library implements the git internals in pure Go, so that any Go application can handle not only Git repositories, but also lower-level primitives (e.g. packfiles, idxfiles, etc) without needing to shell out to the git binary.

    The focus for this Hackweek is to fast track key improvements for the project ahead of the upstream release of Git V3, which may take place at some point next year.

    Goals

    Stretch goals

    Resources

    • https://github.com/go-git/go-git/
    • https://go-git.github.io/docs/


    Play with the userfaultfd(2) system call and download on demand using HTTP Range Requests with Golang by rbranco

    Description

    The userfaultfd(2) is a cool system call to handle page faults in user-space. This should allow me to list the contents of an ISO or similar archive without downloading the whole thing. The userfaultfd(2) part can also be done in theory with the PROT_NONE mprotect + SIGSEGV trick, for complete Unix portability, though reportedly being slower.

    Goals

    1. Create my own library for userfaultfd(2) in Golang.
    2. Create my own library for HTTP Range Requests.
    3. Complete portability with Unix.
    4. Benchmarks.
    5. Contribute some tests to LTP.

    Resources

    1. https://docs.kernel.org/admin-guide/mm/userfaultfd.html
    2. https://www.cons.org/cracauer/cracauer-userfaultfd.html


    Rewrite Distrobox in go (POC) by fabriziosestito

    Description

    Rewriting Distrobox in Go.

    Main benefits:

    • Easier to maintain and to test
    • Adapter pattern for different container backends (LXC, systemd-nspawn, etc.)

    Goals

    • Build a minimal starting point with core commands
    • Keep the CLI interface compatible: existing users shouldn't notice any difference
    • Use a clean Go architecture with adapters for different container backends
    • Keep dependencies minimal and binary size small
    • Benchmark against the original shell script

    Resources

    • Upstream project: https://github.com/89luca89/distrobox/
    • Distrobox site: https://distrobox.it/
    • ArchWiki: https://wiki.archlinux.org/title/Distrobox


    Q2Boot - A handy QEMU VM launcher by amanzini

    Description

    Q2Boot (Qemu Quick Boot) is a command-line tool that wraps QEMU to provide a streamlined experience for launching virtual machines. It automatically configures common settings like KVM acceleration, virtio drivers, and networking while allowing customization through both configuration files and command-line options.

    The project originally was a personal utility in D, now recently rewritten in idiomatic Go. It lives at repository https://github.com/ilmanzo/q2boot

    Goals

    Improve the project, testing with different scenarios , address issues and propose new features. It will benefit of some basic integration testing by providing small sample disk images.

    Updates

    • Dec 1, 2025 : refactor command line options, added structured logging. Released v0.0.2
    • Dec 2, 2025 : added external monitor via telnet option
    • Dec 4, 2025 : released v0.0.3 with architecture auto-detection
    • Dec 5, 2025 : filing new issues and general polishment. Designing E2E testing

    Resources