Giter Club home page Giter Club logo

gitops's Issues

Bring userdb into k8s

There's an official DigitalOcean operator that can create and manage DO's hosted databases as normal k8s resources.

I think it would be useful to pivot to a userdb instance managed this way, and replace the manually-managed credentials and secrets with automatically provisioned ones.

Set up CI

Will be able to at least validate yaml.
Not sure if we'll be able to do a client side dry-run without exposing secrets to the CI server?

Hash lock all images

Many of our resources only select a particular image tag; rather than an exact hash.

  • Use kustomization image field to hashlock
  • Check any operators for additional images they may bring in

kubectl get pods --all-namespaces -o json | jq '.items[].spec.containers[].image' | grep -v sha256 | sort -u 
  • digitalocean/do-csi-plugin:v4.2.0
  • docker.io/cilium/cilium:v1.10.4
  • docker.io/cilium/operator:v1.10.4
  • docker.io/coredns/coredns:1.8.4
  • docker.io/digitalocean/arp-flusher:v0.0.2
  • docker.io/digitalocean/do-agent:3.11.0
  • docker.io/digitalocean/do-csi-plugin:v4.4.1
  • hashbang/hashbangctl
  • k8s.gcr.io/sig-storage/csi-attacher:v3.5.0
  • k8s.gcr.io/sig-storage/csi-provisioner:v3.2.1
  • k8s.gcr.io/sig-storage/csi-resizer:v1.5.0
  • k8s.gcr.io/sig-storage/csi-snapshotter:v6.0.1
  • nginx:1.21.0
  • quay.io/jetstack/cert-manager-cainjector:v1.11.2
  • quay.io/jetstack/cert-manager-controller:v1.11.2
  • quay.io/jetstack/cert-manager-webhook:v1.11.2
  • registry.k8s.io/kube-proxy:v1.24.12
  • registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.0
  • 42wim/matterbridge:1.26.0
  • drgrove/mtls-server:v0.20.0
  • drgrove/wkd:v2.2.2
  • eu.gcr.io/k8s-artifacts-prod/external-dns/external-dns:v0.13.4
  • ghcr.io/dexidp/dex:v2.36.0-distroless
  • ghcr.io/ergochat/ergo:v2.11.1
  • hashbang/book:latest
  • hashbang/hashbang.sh:latest
  • hashbang/webirc:latest
  • k8s.gcr.io/sig-storage/csi-node-driver-registrar
  • k8s.gcr.io/sig-storage/snapshot-controller
  • k8s.gcr.io/sig-storage/snapshot-validation-webhook
  • kiwigrid/k8s-sidecar:1.24.0
  • postgrest/postgrest:v11.0.1
  • quay.io/argoproj/argocd:v2.7.2
  • redis:7.0.11-alpine
  • redis:7.0.5-alpine
  • registry.k8s.io/ingress-nginx/controller:v1.7.1
  • thatonecalculator/calckey:v13.1.4.1

Update Ingress resources

v1beta1 is now dropped. I updated the ingress-nginx Kustomization. It looks like a maintenance script updated the live cluster already, but this needs to be done at some point to avoid overwriting the fixes.

ircd: want SIGHUP on TLS change but not db change

Currently we use inotifyd to watch for changes in /ircd/
We do want to fire on e.g. /ircd/ircd.yaml and /ircd/tls/tls.crt
We dont want to fire on e.g. /ircd/db/foo changes

At the moment I think its either not crossing device boundaries or not descending into sub directories.

We may need to move around our mount points to resolve this correctly.

Add Infro PR Checks?

I noticed that this repo uses Argo CD, and I thought I’d let you know that I recently released a Github app called Infro that several companies use internally that allows Argo CD users to preview Kubernetes changes in Github pull requests before they merge. I’m providing it for free to open source projects (here’s an example in the wild). Here’s a setup guide with links to documentation. It’s in early stages, so I’m sure there will be warts. All feedback is welcome!

Set up Loki to use DigitalOcean Spaces Block Storage for log storage

Or an S3 compatible API, if|when we move out of DigitalOcean.

This is useful for us due to free ingress into the system. $5/250GB per month. This is actually cheaper than the current solution using a PVC as those are dynamically generated and are $10/100GB. This also means that we can store more logs over time, and - if we want - we can apply lifecycle rules with DigitalOcean Spaces Block Storage.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

kustomize
argocd/kustomization.yaml
  • argoproj/argo-cd 6b9cd828c6e9807398869ad5ac44efd2c28422d6
  • quay.io/argoproj/argocd v2.12.3@sha256:68894064bc381c19ea951029510aa614bd26bf46c2ec65ea445c7d8d095a9417
  • ghcr.io/dexidp/dex v2.38.0@sha256:b1d793440a98d7ecde7fa5dbc8cee1204ef0e8918d9e51ef6201f50d12d55925
  • redis 7.2.0-alpine@sha256:fd5de2340bc46cbc2241975ab027797c350dec6fd86349e3ac384e3a41be6fee
  • viaductoss/ksops v4.3.2@sha256:21cb93a5a8bc8f6a9e21991fde99653728585563a879fc2f7939d96de524747c
book/kustomization.yaml
  • hashbang/book latest@sha256:95eea06a0186245aa329da9185c963bf66e9ed447ae2c54fc6973aa2a2dab68e
cert-manager/kustomization.yaml
  • cert-manager v1.15.2
external-dns/kustomization.yaml
  • registry.k8s.io/external-dns/external-dns v0.14.2@sha256:3fcad62c4a9a8a72cb2db5ce7adeb121be66cac5f7f5ddad43684c2b20c72aa5
ingress-nginx/controller/kustomization.yaml
  • registry.k8s.io/ingress-nginx/controller v1.11.2@sha256:d5f8217feeac4887cb1ed21f27c2674e58be06bd8f5184cacea2a69abaf78dce
ircd/kustomization.yaml
  • ghcr.io/ergochat/ergo v2.14.0@sha256:ef4040d18044a53c8c995defb3159018cf2e83030e5db068c3976d9343c826a5
keycloak/kustomization.yaml
  • quay.io/keycloak/keycloak 25.0.4@sha256:bf788a3b7fd737143f98d4cb514cb9599c896acee01a26b2117a10bd99e23e11
matterbridge/kustomization.yaml
  • 42wim/matterbridge 1.26.0@sha256:ba9ae3b54776d4e4a1317cd7929d62326f7d3dd75e37eb038e01e33e18e41164
mtls/kustomization.yaml
  • drGrove/mtls-server 124865fadd23dca58f74064c681fd3830aac5b59
  • drgrove/mtls-server v0.20.0@sha256:78a5fd3f56ca9034a4a326d598c7a3a43414b57b7f0b4f8d4a579d0df4b2b0ea
site/kustomization.yaml
  • hashbang/hashbang.sh latest@sha256:2d4e1d56586732715a2dd07cc5c4349fec6de13148ded0535e6d8ffeb884a14d
userdb-api/kustomization.yaml
  • postgrest/postgrest v12.2.3@sha256:729bf65c733b73f5b52777f0e4b853f22ed73aa67a22d38269d289779b0a8401
webirc/kustomization.yaml
  • hashbang/webirc latest@sha256:5b5d8a7b0e84fa4c5e03643c2feff0ef45a209b5e3613fd98a65a80b30007470
wkd/kustomization.yaml
  • drGrove/docker-wkd c47ec975fa0a46f5e7671750254380dfa39c6fc2
  • drgrove/wkd v2.2.2@sha256:b00e9e42486efa6e8601f4aff3d61c9417dcaba993411905a4b63cd2dee72f42
  • kiwigrid/k8s-sidecar 1.27.5@sha256:1fc88232e223a6977c626510372a74ca1f73af073e3c361719ccf02f223c8a12
regex
argocd/kustomization.yaml
  • argoproj/argo-cd v2.12.3@6b9cd828c6e9807398869ad5ac44efd2c28422d6
mtls/kustomization.yaml
  • drGrove/mtls-server v0.20.0@124865fadd23dca58f74064c681fd3830aac5b59

  • Check this box to trigger a request for Renovate to run again on this repository

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error near ],

Set up Dendrite-based IRC bridge

Thoughts for consideration:

  • Should we use hashbang.sh for this or irc.hashbang.sh?
    • If we use irc.hashbang.sh for this, how can we set up hashbang.sh in a way where IRC won't lose out on messages created on a potential hashbang.sh matrix server
    • If we don't use irc.hashbang.sh, we need a good way to set up either SRV records or well-known, with the former being defined in admin-tools and the latter probably being done via an Ingress. I believe we can have separate Ingress on the same domain name defined across namespaces, so this should be a valid option
  • Should this be tested to see if we can use a temporary database?
  • Should we use Dendrite in monolith or polylith mode? Polylith mode probably won't give us any advantage, and given this only needs to scale to the size of the IRC server, I think the IRC server will fall over first.

add IRC auth to userdb

I just merged ergochat/ergo#1111, which adds support for authentication plugins via subprocess invocation. The goal in this issue is to start managing IRC authentication credentials in userdb, then get everyone using SASL. Here's a tentative plan:

  1. hashbangctl should generate a strong, secret password on new account creation (@benharri was uncomfortable with this? I definitely want to hear any objections out)
  2. Write a script to check this password against userdb
  3. Turn off account registration in oragono, and instead configure this script (in the new accounts.auth-script config block), with autocreate enabled
  4. New account creation should automatically initialize ~/.weechat/irc.conf to use SASL PLAIN with the autogenerated password. We could write a script like enable-irc-sasl that does this for existing users.

Logging solution

I have a bit of a pet hate for kibana and to a less degree, elastic-search. Lets set up loki (to be used from grafana).

TODO list:

  • collect logs (fluent-bit vs promtail?)
  • rotate logs (? is this automatic?)
  • make logs searchable
  • collect node logs (e.g. dmesg)
  • look into @fatalbanana 's ideas below (boltdb?)
  • set up ingress for local logcli usage

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.