components: Expose admin's irc relay to other cluster through ingress
This:
- mainly exposes the irc relay publicly (so other clusters can push their alerts with authentication to the same irc relay than the one exposed on the admin cluster)
- adapts the alertmanager irc relay config accordingly (moving the config related to alertmanager into its own folder and its own key)
- adapts minikube configuration so we can entertain it locally to check ^ works
- adapts the alertmanager-irc-relay config actually is reloaded when a configuration change occurs
minikube testing is all good (you can check #minikube-swh-sysadm irc room).
The reverse proxy deployed in the admin cluster needs some dedicated work [1].
[1] swh/infra/puppet/puppet-swh-site!635 (merged)
End goal:
graph LR;
subgraph environment internet
irc
end
ingress[ingress <br /> alertmanager-irc-relay.internal.admin.swh.network] --> |routing rule| service;
subgraph environment admin
rp[alertmanager-irc-relay.admin.swh.network];
rp --> ingress
subgraph cluster admin
ingress;
alertmanager_adm;
alertmanager_adm --> service([alertmanager_irc_relay]);
service-->pod[Pod];
pod -.push alerts.-> irc([/join #swh-sysadm]);
end
end
subgraph environment rocq
subgraph cluster staging
alertmanager_stg;
alertmanager_stg --> ingress;
end
subgraph cluster production
alertmanager_prd;
alertmanager_prd --> ingress;
end
end
subgraph environment azure
subgraph cluster gitlab
alertmanager_glb;
alertmanager_glb --> rp;
end
subgraph cluster rancher
alertmanager_rch;
alertmanager_rch --> rp;
end
end
classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000;
classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff;
classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5;
class ingress,service,pod k8s;
class alertmanager_prd,alertmanager_stg,alertmanager_adm,alertmanager_glb,alertmanager_rch plain;
class cluster,environment cluster;
Edited by Antoine R. Dumont