imfreedom/k8s-cluster

4e5cc0ed6a50
Remove the wasdead bot as it's being retired
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: newissue-redirect
namespace: roost
spec:
redirectRegex:
regex: ^https?:\/\/[^\/]+(\/.+)?
replacement: |
https://issues.imfreedom.org/newIssue?project=PIDGIN&description=What%20version%20of%20pidgin%20are%20you%20using%3F%20(please%20provide%20the%20actual%20version%20number%20from%20Help%20-%3E%20About%3B%20latest%20is%20not%20a%20version%20number).%0A%0AWhat%20operating%20system%20are%20you%20running%20(for%20example%20Debian%20Buster%2C%20Fedora%2032%2C%20Ubuntu%20Focal)%3F%0A%0AHow%20did%20you%20install%20Pidgin%20(from%20source%2C%20package%20manager%2C%20appimage%2C%20flatpak%2C%20snap%2C%20other)%3F%0A%0A%5BPlease%20describe%20your%20issue%20in%20more%20detail%5D
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: nest-redirects
namespace: roost
spec:
redirectRegex:
regex: ^https?:\/\/[^\/]+(\/.+)?
replacement: https://pidgin.im${1}
permanent: true
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: nest-redirects
namespace: roost
spec:
entryPoints:
- https
routes:
- match: Host(`nest.pidgin.im`) || Host(`pidg.in`) || Host(`www.pidg.in`)
kind: Rule
services:
- name: nest
port: 3000
middlewares:
- name: hsts-headers
- name: nest-redirects
tls:
secretName: nest-redirects-tls
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
namespace: roost
name: nest-redirects-tls
spec:
secretName: nest-redirects-tls
issuerRef:
name: letsencrypt
commonName: pidg.in
dnsNames:
- pidg.in
- www.pidg.in
- nest.pidgin.im
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: nest-redirect-documentation
namespace: roost
spec:
redirectRegex:
regex: ^https?:\/\/[^\/]+(\/documentation(\.php)?)$
replacement: https://pidgin.im/help
permanent: true
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: nest-redirect-pipermail-support
namespace: roost
spec:
redirectRegex:
regex: ^https?:\/\/[^\/]+(\/pipermail\/support)$
replacement: https://lists.pidgin.im/pipermail/support/
permanent: true
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: nest-http
namespace: roost
spec:
entryPoints:
- http
routes:
- match: Host(`pidgin.im`) || Host(`www.pidgin.im`)
kind: Rule
services:
- name: nest
port: 3000
middlewares:
- name: nest-redirect-documentation
- name: nest-redirect-pipermail-support
- name: common-headers
- match: (Host(`pidgin.im`) || Host(`www.pidgin.im`)) && PathPrefix(`/win32`)
kind: Rule
services:
- name: oldsite
port: 80
middlewares:
- name: common-headers
- match: (Host(`pidgin.im`) || Host(`www.pidgin.im`)) && Path(`/version.php`)
kind: Rule
services:
- name: oldsite
port: 80
middlewares:
- name: common-headers
- match: (Host(`pidgin.im`) || Host(`www.pidgin.im`)) && Path(`/newissue`)
kind: Rule
services:
- name: nest
port: 3000
middlewares:
- name: newissue-redirect
- match: (Host(`pidg.in`) || Host(`www.pidg.in`))
kind: Rule
services:
- name: nest
port: 3000
middlewares:
- name: nest-redirects
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: nest
namespace: roost
spec:
entryPoints:
- https
routes:
- match: Host(`pidgin.im`) || Host(`www.pidgin.im`)
kind: Rule
services:
- name: nest
port: 3000
middlewares:
- name: nest-redirect-documentation
- name: nest-redirect-pipermail-support
- name: common-headers
- name: hsts-headers
- match: (Host(`pidgin.im`) || Host(`www.pidgin.im`)) && PathPrefix(`/win32`)
kind: Rule
services:
- name: oldsite
port: 80
middlewares:
- name: common-headers
- name: hsts-headers
- match: (Host(`pidgin.im`) || Host(`www.pidgin.im`)) && Path(`/version.php`)
kind: Rule
services:
- name: oldsite
port: 80
middlewares:
- name: common-headers
- name: hsts-headers
- match: (Host(`pidgin.im`) || Host(`www.pidgin.im`)) && Path(`/newissue`)
kind: Rule
services:
- name: nest
port: 3000
middlewares:
- name: newissue-redirect
- name: hsts-headers
tls:
secretName: nest-tls
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
namespace: roost
name: nest-tls
spec:
secretName: nest-tls
issuerRef:
name: letsencrypt
commonName: pidgin.im
dnsNames:
- pidgin.im
- www.pidgin.im
- conference.pidgin.im
- xmpp.pidgin.im
---
apiVersion: v1
kind: Service
metadata:
namespace: roost
name: nest
labels:
app: nest
spec:
ports:
- port: 3000
protocol: TCP
selector:
app: nest
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
namespace: roost
name: nest
labels:
app: nest
spec:
podSelector:
matchLabels:
app: nest
ingress:
- from:
- namespaceSelector:
matchLabels:
name: kube-public
podSelector:
matchLabels:
app: traefik
role: controller
ports:
- port: 3000
protocol: TCP
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
namespace: roost
name: nest
spec:
minAvailable: 1
selector:
matchLabels:
app: nest
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: roost
name: nest
labels:
app: nest
keel.sh/policy: force
keel.sh/trigger: poll
annotations:
keel.sh/pollSchedule: "@every 10m"
spec:
replicas: 2
selector:
matchLabels:
app: nest
template:
metadata:
labels:
app: nest
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- nest
topologyKey: failure-domain.beta.kubernetes.io/region
weight: 100
containers:
- name: nest
image: pidgin/nest:latest
imagePullPolicy: Always
ports:
- containerPort: 3000
resources:
limits:
cpu: 100m
memory: 96Mi
requests:
cpu: 50m
memory: 64Mi
---
apiVersion: v1
kind: Service
metadata:
namespace: roost
name: oldsite
labels:
app: oldsite
spec:
ports:
- port: 80
protocol: TCP
selector:
app: oldsite
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
namespace: roost
name: oldsite
labels:
app: oldsite
spec:
podSelector:
matchLabels:
app: oldsite
ingress:
- from:
- namespaceSelector:
matchLabels:
name: kube-public
podSelector:
matchLabels:
app: traefik
role: controller
ports:
- port: 80
protocol: TCP
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
namespace: roost
name: oldsite
spec:
minAvailable: 1
selector:
matchLabels:
app: oldsite
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: roost
name: oldsite
labels:
app: oldsite
spec:
replicas: 2
selector:
matchLabels:
app: oldsite
template:
metadata:
labels:
app: oldsite
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- oldsite
topologyKey: failure-domain.beta.kubernetes.io/region
weight: 100
containers:
- name: oldsite
image: pidgin/www:latest
imagePullPolicy: Always
ports:
- containerPort: 80
resources:
limits:
cpu: 100m
memory: 96Mi
requests:
cpu: 50m
memory: 64Mi
---