Commit Graph

27 Commits

Author SHA1 Message Date
Chris Farhood 87c03682c4 feat(irc): add Istio ambient mode, waypoint, and AuthorizationPolicies
Best Practices / Polaris Audit (push) Has been cancelled
Best Practices / Resource Usage Analysis (push) Has been cancelled
Best Practices / PR Summary Report (push) Has been cancelled
Best Practices / Polaris PR Review (push) Has been cancelled
Security Scan / Trivy Security Scan (push) Has been cancelled
Security Scan / Trivy PR Review (push) Has been cancelled
Security Scan / Checkov IaC Scan (push) Has been cancelled
Security Scan / Checkov PR Review (push) Has been cancelled
Validate Manifests / YAML Lint (push) Has been cancelled
Validate Manifests / Kustomize Build Test (push) Has been cancelled
Validate Manifests / Kubernetes Schema Validation (push) Has been cancelled
Best Practices / Kube-score Analysis (push) Has been cancelled
- Add namespace.yaml with istio ambient + waypoint labels
- Add waypoint Gateway (istio-waypoint) scoped to irc namespace
- Switch thelounge HTTPRoute from Cilium external to istio-external gateway
- Add AuthorizationPolicy for thelounge (allow inbound from gateway-system only)
- Add AuthorizationPolicy for znc (allow all on port 6501 for IRC clients)
- Add namespace: irc to root kustomization, remove dependency on targetNamespace

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-05-15 21:02:10 -04:00
Chris Farhood 8a9cf61137 fix(storage): migrate znc from block-truenas to ceph-block
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 23:30:34 -04:00
Chris Farhood be697980d5 chore(irc): migrate thelounge and znc storage to block-truenas
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:09:16 -05:00
Chris Farhood a0df6cd978 chore: remove NetworkPolicy resources for IRC apps 2026-02-10 12:48:09 -05:00
Chris Farhood 89e6bd7d99 fix: allow all ingress traffic to IRC apps 2026-02-10 12:31:11 -05:00
Chris Farhood c88e6a745a chore: add comprehensive exemptions without lowering score threshold 2026-02-08 19:40:00 -05:00
Chris Farhood 991b1f4407 chore: add notReadOnlyRootFilesystem exemption and lower Polaris threshold 2026-02-08 19:38:48 -05:00
Chris Farhood 99f9ec453d chore: add comprehensive CI/CD exemptions for ZNC 2026-02-08 19:32:37 -05:00
Chris Farhood 5a5cfb2847 fix: remove PUID/PGID env vars from ZNC container
LinuxServer s6-overlay requires starting as root to fix directory
permissions (/run, etc.) before dropping privileges. Setting PUID/PGID
forces immediate UID 1000 start, causing permission errors:
"fatal: /run belongs to uid 0 instead of 1000"

Let the container run as root with existing Polaris exemptions.
The s6-overlay init system handles privilege management internally.

Fixes CrashLoopBackOff in znc-0 pod.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-08 11:12:00 -05:00
Chris Farhood a569047275 fix: revert ZNC security hardening for LinuxServer container
LinuxServer.io containers need to run init scripts with elevated
permissions before dropping to the specified PUID/PGID. Reverted to:
- Remove restrictive securityContext settings
- Use PUID/PGID environment variables (LinuxServer standard)
- Add Polaris exemptions for runAsRoot and runAsPrivileged
- Add Checkov exemption for high UID requirement

This fixes container startup issues introduced by security hardening.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-08 11:07:21 -05:00
Chris Farhood 9a6c78680b fix: correct YAML indentation and add missing newlines
- Fix indentation in service.yaml files (thelounge and znc)
- Fix indentation in statefulset.yaml (thelounge)
- Add missing newlines at end of files
- Resolves yamllint errors from CI/CD workflows

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-08 10:52:50 -05:00
Chris Farhood 6eca981e17 fix: remove serviceName from StatefulSets (not needed)
Removed serviceName field from both StatefulSets since stable pod DNS
is not required for single-replica IRC applications. StatefulSets only
need serviceName when using headless Services for stable network identities.

Also removed statefulset-has-servicename ignore since it's now properly fixed.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-08 10:40:34 -05:00
Chris Farhood a8e16c93ee fix: remove Flux validation and fix YAML linting
- Remove Flux validation job (repo doesn't contain Flux resources)
- Fix trailing spaces in best-practices workflow
- Add missing newline at end of znc/statefulset.yaml

Flux validates Kustomization CRDs, not plain manifests. Since this
repo only contains the manifests deployed by Flux (not the Flux
resources themselves), the validation doesn't apply.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-08 10:09:28 -05:00
Chris Farhood 9c70b82fb3 security: implement proper security hardening
Instead of just skipping security checks, properly fix the issues:

**Pod & Container Security Context:**
- Add runAsUser: 1000 (non-root)
- Add runAsGroup: 1000
- Add fsGroup: 1000 for volume permissions
- Add seccompProfile: RuntimeDefault
- Drop ALL capabilities (principle of least privilege)

**Resource Management:**
- Add ephemeral-storage requests (1Gi) and limits (2Gi)

**Health Checks:**
- Change thelounge liveness probe from TCP to HTTP
- Reduces false positives and provides better health signals

**Reduced Exceptions:**
- Removed 6+ security check exceptions
- Now only skip: image tags (intentional), read-only FS (apps need writes)
- Removed Polaris runAsRootAllowed exemptions

**Note:** If containers fail to start post-merge, may need to adjust UIDs
or add specific capabilities. LinuxServer images may need tweaking.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-08 10:06:36 -05:00
Chris Farhood 03f99cae2e adjust policy for dns 2026-01-17 20:33:50 -05:00
Chris Farhood 3b69cb6384 deploy with instance labels 2026-01-17 20:14:22 -05:00
Chris Farhood 36eb6e1ef0 removing unneeded namespace tag 2026-01-17 20:10:47 -05:00
Chris Farhood 531fe04ffe networkpolicy correction 2026-01-17 12:29:03 -05:00
Chris Farhood 877696c827 all done? 2026-01-17 12:27:44 -05:00
Chris Farhood 1850c12905 again 2026-01-17 11:43:19 -05:00
Chris Farhood d939b88fe4 rollback 2026-01-17 11:42:21 -05:00
Chris Farhood 71907f24dd try dropping privs for znc 2026-01-17 11:39:03 -05:00
Chris Farhood a685eca1f5 more polaris findings 2026-01-17 11:34:39 -05:00
Chris Farhood c77b0aa065 roll some back 2026-01-17 11:28:10 -05:00
Chris Farhood 2516f0a47f adjust security settings 2026-01-17 11:26:10 -05:00
Chris Farhood e2cf8ff1b0 adding kustomizations to force declaration of manifests 2026-01-17 09:12:48 -05:00
Chris Farhood 6c0c269520 initial commit 2026-01-17 08:40:50 -05:00