flux-events-pubsub

command module
v0.0.0-...-cfab337 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2020 License: Apache-2.0 Imports: 6 Imported by: 0

README

CI

Flux-events-pubsub

Let your FluxCD daemon connect to flux-events-pubsub as upstream controlplane. Flux-events-pubsub will subscribe to a Google pubsub topic and notify the FluxCD daemons upon changes which will trigger a fluxCD Sync.

FluxCD events (Commit, Sync and Release events) will also be published to pubsub topic for later consumtion of different services.

FluxCD events for Google container registry updates. (no updates are sent to other topics for this changes)

Example use cases that consume pubsub events.

  • Github WebHooks
  • Chat bots
  • Trigger test suites
  • etc.

Example PubSub conf for gcr events

gcloud pubsub topics create gcr

Example deployment

Kubernetes manifest example

---
apiVersion: v1
kind: Service
metadata:
  name: flux-events
  namespace: flux
  labels:
    app: flux-events
spec:
  type: ClusterIP
  selector:
    app: flux-events
  ports:
  - name: http
    port: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: flux-events
  namespace: flux
  labels:
    app: flux-events
spec:
  replicas: 1
  selector:
    matchLabels:
      app: flux-events
  template:
    metadata:
      labels:
        app: flux-events
    spec:
      containers:
      - image: quay.io/shelman/flux-events-pubsub:latest
        name: flux-events
        args:
          - --log-level=debug
          - --log-json
          # Optionally add labels that will be append to the FluxCD json payload event.
          - -lmy-custom-label1=foo
          - -lmy-custom-label2=bar
        env:
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PROJECT_GCR
            value: "my gcr project"
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PUBSUB_SUBSCRIPTION_GCR
            value: "gcr-events-<cluster name>"
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PUBSUB_TOPIC_GCR
            value: "gcr-events"
          - name: GOOGLE_APPLICATION_CREDENTIALS
            value: "/secrets/pubsub-credentials"
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PROJECT
            value: "my-google-project"
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PUBSUB_TOPIC
            value: "flux-events"
            # Flux-events-pubsub will subscribe to this topic to trigger FluxCD Sync Actions.
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PUBSUB_TOPIC_ACTIONS
            value: "flux-actions"
          - name: FLUX_EVENTS_PUBSUB_GOOGLE_PUBSUB_SUBSCRIPTION
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
        resources:
          requests:
            cpu: 50m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 128Mi
        volumeMounts:
          - mountPath: /secrets
            name: gcp-credentials
      volumes:
        - name: gcp-credentials
          secret:
            secretName: gcp-credentials
            defaultMode: 0600
Connect FluxCD with an upstream

Add --connect=ws://flux-events:8080 argument to fluxcd deployment manifest.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL