Git Product home page Git Product logo

terraform-infra-common's People

Contributors

cmdpdx avatar cpanato avatar dependabot[bot] avatar found-it avatar hectorj2f avatar imjasonh avatar jdolitsky avatar jedsalazar avatar jonjohnsonjr avatar joshrwolf avatar k4leung4 avatar mattmoor avatar priyawadhwa avatar rawlingsj avatar tcnghia avatar wlynch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

terraform-infra-common's Issues

cloudevent-trigger: boolean operators

https://cloud.google.com/pubsub/docs/subscription-message-filter#boolean_operators_for_the_filter_expression

Today we have:


  filter        = { "type" : "dev.chainguard.bar" } // Only trigger on bar-type events
  filter_prefix = { "source": "baz/" }              // ...coming from baz

which translates down to

filter = "attributes.ce-type=\"dev.chainguard.bar\" AND hasPrefix(attributes.ce-source, \"baz/\")"

This means it's not possible to easily subscribe to 2+ event types, or 2+ prefixes, etc., even though this is possible from PubSub's side.

Find a better way to handle the containers schema

This came up as a concern here: #328

The schema for containers is fairly large and is used a number of places:

  • regional-go-service
  • cron
  • Github bots
  • regional-service (in the linked PR)

There are subtle (mostly intentional) differences across these today, but these are becoming an ongoing maintenance concern.

module to publish to broker on GCS events

GCS is able to publish to PubSub. We should have a lil service subscribe to those events and re-publish them (possibly without transformation?) to a cloudevent broker so that regional-go-services can subscribe in the standard way.

Inputs:

  • bucket name
  • broker name
  • regions? Should it just exist in the bucket region?
resource "google_storage_notification" "notification" {
  bucket         = data.google_storage_bucket.bucket.name
  payload_format = "JSON_API_V1"
  topic          = google_pubsub_topic.topic.name
  event_types    = ["OBJECT_FINALIZE", "OBJECT_DELETE"]
}

Create a module for auditing GSA usage via IAM audit logs

ref: #139

With this we should be able to check things like:

Tasks

Add audit log alerts for each `_iam_binding`

The basic idea here is that we use _iam_binding in places where we believe a resource is an implementation detail of a particular module, and therefore the module has complete information about how that resource should be accessed (thus the use of _iam_binding vs. _iam_member).

Build on this idea, we can actually add alert policies for each of these resources to detect and flag anomalous usage. As a proof-of-concept, I added one here (sorry, private repo): https://github.com/chainguard-dev/octo-sts/blob/c737ecae7dd57c2fc340f51bf6aa9e95adfbdd20/iac/main.tf#L124-L176

We should audit this repo for uses of _iam_binding (or cases that should be!) and add audit log alerting to each.

dashboard latencies cap at 10s

We might want to let callers specify buckets somehow, so that requests that take >10s aren't all grouped together into the largest bucket

Screenshot 2024-01-30 at 10 17 26 PM

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.