chore: drop private cluster, host and personal names from the tree

Private infrastructure names, a real hostname, a commented-out
internal mirror block, an internal product name, and a reviewer's
name in a comment do not belong in a public repository; drop them
and replace what needs a stand-in with neutral placeholders.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
This commit is contained in:
Aleksei Sviridkin committed 2026-10-07 04:38:06 +03:00
1 parent d2e3eb4f82
commit 520af57905
18 files changed
+47 -70

No files matched your search

+2 -2
View File
@@ -107,8 +107,8 @@ type EtcdTemplate struct {
// Until the upstream gains symmetric semantics (or surfaces the final
// file path via the equivalent of BackupSnapshot.URI for PVC), this
// driver intentionally narrows the API contract to S3 only. The S3
// path is fully exercised end-to-end on dev7 and covered by unit +
// e2e tests.
// path is fully exercised end-to-end on a test cluster and covered by
// unit + e2e tests.
// +kubebuilder:validation:XValidation:rule="has(self.s3)",message="s3 destination is required (PVC is intentionally not supported by this strategy until upstream restore-agent reads the same path the backup-agent writes; see the strategy comments)"
type EtcdDestinationTemplate struct {
// S3 configures an S3-compatible storage target. Templating is
+1 -1
View File
@@ -122,7 +122,7 @@ func TestInstallPlatformPackageSource_Updates(t *testing.T) {
// TestInstallPlatformPackageSource_RefusesTapOwned asserts that when a
// marketplace tap has materialized a PackageSource under a name the platform
// later ships, the platform refuses to overwrite it, names the conflict, and
// leaves the object untouched (kvaps' review point).
// leaves the object untouched.
func TestInstallPlatformPackageSource_RefusesTapOwned(t *testing.T) {
s := newTestScheme()
tapOwned := &cozyv1alpha1.PackageSource{
+1 -1
View File
@@ -96,7 +96,7 @@ CR:
`user.Groups` slice empty regardless of what the userinfo endpoint
returns, and the gate rejects every login with "user not a member
of one of the required groups" — even when the token carries the
correct claim (verified end-to-end on dev3 with Grafana v11.6.15).
correct claim (verified end-to-end on a test cluster with Grafana v11.6.15).
The JMESPath expression `groups` reads the top-level `groups`
array from userinfo, matching the shape Keycloak's
`oidc-group-membership-mapper` emits.
+1 -1
View File
@@ -415,7 +415,7 @@ A `recoveryTime` **before the earliest base backup** fails differently: PostgreS
### Discovering the earliest / latest restorable time
CNPG's `Cluster.status.firstRecoverabilityPoint` exists in the status schema but is unreliable under the barman-cloud plugin — it was observed empty on every plugin-backed cluster on the dev7 test cluster (CNPG 1.28.1) — so read the window from the backup catalog instead. Each completed base backup records its WAL range and timestamps on the underlying `cnpg.io/Backup`:
CNPG's `Cluster.status.firstRecoverabilityPoint` exists in the status schema but is unreliable under the barman-cloud plugin — it was observed empty on every plugin-backed cluster in a test environment (CNPG 1.28.1) — so read the window from the backup catalog instead. Each completed base backup records its WAL range and timestamps on the underlying `cnpg.io/Backup`:
```bash
# Completed base backups, oldest first: STOP plus one second is the earliest
-21
View File
@@ -153,27 +153,6 @@ machine:
docker.io:
endpoints:
- https://mirror.gcr.io
#docker.io:
# endpoints:
# - https://dockerio.nexus.aenix.org
#cr.fluentbit.io:
# endpoints:
# - https://fluentbit.nexus.aenix.org
#docker-registry3.mariadb.com:
# endpoints:
# - https://mariadb.nexus.aenix.org
#gcr.io:
# endpoints:
# - https://gcr.nexus.aenix.org
#ghcr.io:
# endpoints:
# - https://ghcr.nexus.aenix.org
#quay.io:
# endpoints:
# - https://quay.nexus.aenix.org
#registry.k8s.io:
# endpoints:
# - https://k8s.nexus.aenix.org
files:
- content: |
[plugins]
@@ -139,8 +139,8 @@ const (
cnpgWALArchiveDeadline = 3 * time.Minute
// Both constants below couple to CNPG/PostgreSQL internals. Verified
// against CNPG 1.28.1 + barman-cloud plugin (postgresql:18.1) on the dev7
// test cluster. The negative e2e in examples/backups/postgres/run-all.sh
// against CNPG 1.28.1 + barman-cloud plugin (postgresql:18.1) on a test
// cluster. The negative e2e in examples/backups/postgres/run-all.sh
// (step 46: a recoveryTime past the archive must fail with reason
// RecoveryTargetUnreachable) is what catches a drift in either string on
// a future CNPG/PostgreSQL bump - if it regresses, this fail-fast silently
@@ -559,7 +559,7 @@ func TestS3KeyFromArtifactURI(t *testing.T) {
}
// TestResolveEtcdRestoreDestination_PrefersArtifactURIForRevSuffix is
// the integration test for the bug found on dev7: with a v0.4.4
// the integration test for the bug found on a test cluster: with a v0.4.4
// operator (BACKUP_INCLUDE_REVISION=true), the agent wrote
// "etcd/etcd-backup-job-6gghq-rev2.db" but the driver's
// buildEtcdRestoreS3Key would emit "etcd/etcd-backup-job-6gghq.db" —
@@ -714,7 +714,7 @@ func TestReconcile_DeletionTimestamp_EarlyReturn(t *testing.T) {
}
// TestUpdateStatus_UnknownWithinGrace_SchedulesFollowUp locks in the fix for
// the dormancy bug caught on dev3: when Ready=Unknown but grace hasn't elapsed
// the dormancy bug caught on a test cluster: when Ready=Unknown but grace hasn't elapsed
// yet, artifactGeneratorStuck returns false, we fall through to the copy path
// and — without an explicit RequeueAfter — the reconciler would sleep until
// the AG's next status change (which may never come if it's exactly the
@@ -37,12 +37,12 @@ User identity claim: `email`, not `preferred_username`.
The design doc example used `claim: preferred_username`, but in the
cozystack `cozy` realm `preferred_username` is the Keycloak *username*
(`kvaps`, `i.okhotnikov`), NOT the email — and the operator-facing
(`alice`, `j.doe`), NOT the email — and the operator-facing
`users[].email` field asks for the email address. Matching the `User:`
subject in the ClusterRoleBinding to `preferred_username` would
silently misidentify every user whose Keycloak username differs from
their email — verified on dev3 where token auth succeeded but the CRB
match failed with 403.
their email — verified on a test cluster where token auth succeeded
but the CRB match failed with 403.
Switching the claim to `email` aligns the apiserver-visible identity
with the operator's declared `users[].email` value. Requires the
@@ -286,7 +286,7 @@ tests:
- matchRegex:
path: stringData["config.yaml"]
pattern: "url: https://keycloak.example.org/realms/cozy"
# Verified end-to-end on dev3: cozy realm's preferred_username is the
# Verified end-to-end: cozy realm's preferred_username is the
# Keycloak *username* (not the email), so a CRB subject sourced from
# users[].email would silently mis-authenticate. Lock the claim name.
- matchRegex:
@@ -314,7 +314,7 @@ tests:
# The groups range MUST be wrapped in dyn(): claims.groups is statically
# `any`, and the apiserver rejects a comprehension over `any` at startup
# (CrashLoop). Pinning dyn() here makes a regression fail the unit suite
# instead of only surfacing on a live apiserver. Verified on dev3 v1.32.
# instead of only surfacing on a live apiserver. Verified on Kubernetes v1.32.
- matchRegex:
path: stringData["config.yaml"]
pattern: 'expression: .+has\(claims\.groups\).+dyn\(claims\.groups\)\.exists\(g, g in .+tenant-foo-view.+tenant-foo-use.+tenant-foo-admin.+tenant-foo-super-admin'
+1 -1
View File
@@ -197,7 +197,7 @@ quorum:
## CNPG webhook rejects under quorum, and — worse — under server-side apply the phase-2
## omit prunes the field whenever KEDA has not yet written /scale (e.g. a cluster idle at
## its floor), collapsing it to 1 and decommissioning every replica PVC (see community
## design proposal §Upgrade "Implementation update 2026-09-02"; validated live on dev9).
## design proposal §Upgrade "Implementation update 2026-09-02"; validated live on a test cluster).
## Seeding max(replicas, effectiveMin) — rather than effectiveMin alone — keeps the active
## branch equal to the disabled/dryRun/transition branch (which renders `instances:
## replicas`) whenever `replicas` sits at or above the floor, so enabling, dry-running, or
@@ -9,12 +9,12 @@ spec:
platform:
values:
publishing:
host: "dev5.infra.aenix.org"
apiServerEndpoint: "https://api.dev5.infra.aenix.org"
host: "example.org"
apiServerEndpoint: "https://api.example.org"
externalIPs:
- 10.4.0.94
- 10.4.0.179
- 10.4.0.26
- 192.0.2.10
- 192.0.2.11
- 192.0.2.12
authentication:
oidc:
enabled: true
@@ -3,8 +3,6 @@ import { tenantDisplayName, useTenantContext } from "../lib/tenant-context.tsx"
/**
* Subtitle bar that sits under the header and surfaces the active tenant.
* In cozyportal-ui this is where the account/project selectors live; for
* Cozystack we only need the tenant picker.
*/
export function Breadcrumb() {
const { tenants, selectedTenant, selectTenant, isLoading } = useTenantContext()
@@ -69,7 +69,7 @@ const ICON_BY_SLUG: Record<string, SimpleIconData> = Object.fromEntries(
/**
* Lucide fallbacks for kinds that don't have a canonical brand logo in
* Simple Icons. These use the same pack as cozyportal-ui.
* Simple Icons.
*/
const KIND_TO_LUCIDE_ICON: Record<string, LucideIcon | ComponentType<{ className?: string }>> = {
BootBox: Server,
+1 -1
View File
@@ -107,7 +107,7 @@ keda:
# at the default QPS those polls queue in the client rate limiter ahead of the
# leader-election lease renewal, which then misses its deadline and the manager
# exits with "leader election lost" (observed crash-looping the single-replica
# operator on dev9). A higher ceiling keeps the renewal call from starving.
# operator on a test cluster). A higher ceiling keeps the renewal call from starving.
extraArgs:
keda:
kube-api-qps: 50
@@ -43,7 +43,7 @@ tests:
template: templates/ingress.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
expose-services: "dashboard,linstor-gui"
expose-ingress: "tenant-root"
@@ -57,7 +57,7 @@ tests:
value: tenant-root
- equal:
path: spec.rules[0].host
value: linstor-gui.dev10.example.org
value: linstor-gui.example.org
- equal:
path: spec.rules[0].http.paths[0].backend.service.name
value: linstor-gui-gatekeeper
@@ -99,7 +99,7 @@ tests:
template: templates/gatekeeper.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
oidc-insecure-skip-verify: "false"
keycloak-internal-url: ""
@@ -121,10 +121,10 @@ tests:
content: --upstream=http://linstor-gui.cozy-linstor.svc:80
- contains:
path: spec.template.spec.containers[0].args
content: --redirect-url=https://linstor-gui.dev10.example.org/oauth2/callback
content: --redirect-url=https://linstor-gui.example.org/oauth2/callback
- contains:
path: spec.template.spec.containers[0].args
content: --oidc-issuer-url=https://keycloak.dev10.example.org/realms/cozy
content: --oidc-issuer-url=https://keycloak.example.org/realms/cozy
- contains:
path: spec.template.spec.containers[0].args
content: --scope=openid email profile groups
@@ -151,7 +151,7 @@ tests:
template: templates/gatekeeper.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
keycloak-internal-url: http://keycloak-http.cozy-keycloak.svc:8080/realms/cozy
expose-services: "linstor-gui"
@@ -173,19 +173,19 @@ tests:
content: --backend-logout-url=http://keycloak-http.cozy-keycloak.svc:8080/realms/cozy/protocol/openid-connect/logout?id_token_hint={id_token}
- contains:
path: spec.template.spec.containers[0].args
content: --redirect-url=https://linstor-gui.dev10.example.org/oauth2/callback
content: --redirect-url=https://linstor-gui.example.org/oauth2/callback
- contains:
path: spec.template.spec.containers[0].args
content: --login-url=https://keycloak.dev10.example.org/realms/cozy/protocol/openid-connect/auth
content: --login-url=https://keycloak.example.org/realms/cozy/protocol/openid-connect/auth
- contains:
path: spec.template.spec.containers[0].args
content: --oidc-issuer-url=https://keycloak.dev10.example.org/realms/cozy
content: --oidc-issuer-url=https://keycloak.example.org/realms/cozy
- it: an explicit keycloak-internal-url override wins over the default
template: templates/gatekeeper.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
keycloak-internal-url: http://keycloak.example.test:8080/realms/other
expose-services: "linstor-gui"
@@ -220,7 +220,7 @@ tests:
template: templates/gatekeeper.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
keycloak-internal-url: ""
expose-services: "linstor-gui"
@@ -230,10 +230,10 @@ tests:
content: --skip-oidc-discovery
- contains:
path: spec.template.spec.containers[0].args
content: --oidc-issuer-url=https://keycloak.dev10.example.org/realms/cozy
content: --oidc-issuer-url=https://keycloak.example.org/realms/cozy
- contains:
path: spec.template.spec.containers[0].args
content: --backend-logout-url=https://keycloak.dev10.example.org/realms/cozy/protocol/openid-connect/logout?id_token_hint={id_token}
content: --backend-logout-url=https://keycloak.example.org/realms/cozy/protocol/openid-connect/logout?id_token_hint={id_token}
- notContains:
path: spec.template.spec.containers[0].args
content: --redeem-url=http://keycloak-http.cozy-keycloak.svc:8080/realms/cozy/protocol/openid-connect/token
@@ -254,7 +254,7 @@ tests:
- v1.edp.epam.com/v1
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
asserts:
- hasDocuments:
count: 3
@@ -282,7 +282,7 @@ tests:
- documentIndex: 2
contains:
path: spec.redirectUris
content: "https://linstor-gui.dev10.example.org/oauth2/callback/*"
content: "https://linstor-gui.example.org/oauth2/callback/*"
- it: skips the KeycloakClient CRD when the API is absent, still creates Secrets
template: templates/keycloakclient.yaml
@@ -307,7 +307,7 @@ tests:
template: templates/gatekeeper.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
oidc-realm-name: acme
keycloak-internal-url: http://keycloak-http.cozy-keycloak.svc:8080/realms/acme
@@ -315,13 +315,13 @@ tests:
asserts:
- contains:
path: spec.template.spec.containers[0].args
content: --oidc-issuer-url=https://keycloak.dev10.example.org/realms/acme
content: --oidc-issuer-url=https://keycloak.example.org/realms/acme
- contains:
path: spec.template.spec.containers[0].args
content: --login-url=https://keycloak.dev10.example.org/realms/acme/protocol/openid-connect/auth
content: --login-url=https://keycloak.example.org/realms/acme/protocol/openid-connect/auth
- notContains:
path: spec.template.spec.containers[0].args
content: --oidc-issuer-url=https://keycloak.dev10.example.org/realms/cozy
content: --oidc-issuer-url=https://keycloak.example.org/realms/cozy
# The external-discovery branch (empty internal URL) builds its own
# backend-logout-url on the browser host; its realm segment must follow
@@ -330,7 +330,7 @@ tests:
template: templates/gatekeeper.yaml
set:
_cluster:
root-host: dev10.example.org
root-host: example.org
oidc-enabled: "true"
oidc-realm-name: acme
keycloak-internal-url: ""
@@ -341,7 +341,7 @@ tests:
content: --skip-oidc-discovery
- contains:
path: spec.template.spec.containers[0].args
content: --backend-logout-url=https://keycloak.dev10.example.org/realms/acme/protocol/openid-connect/logout?id_token_hint={id_token}
content: --backend-logout-url=https://keycloak.example.org/realms/acme/protocol/openid-connect/logout?id_token_hint={id_token}
- notContains:
path: spec.template.spec.containers[0].args
content: --backend-logout-url=https://keycloak.dev10.example.org/realms/cozy/protocol/openid-connect/logout?id_token_hint={id_token}
content: --backend-logout-url=https://keycloak.example.org/realms/cozy/protocol/openid-connect/logout?id_token_hint={id_token}
@@ -140,7 +140,7 @@ spec:
userinfo endpoint returns, and the `allowed_groups` gate rejects
every login with "user not a member of one of the required
groups" — even when the token carries the correct claim. Verified
end-to-end on dev3 with Grafana v11.6.15: id_token AND userinfo
end-to-end on a test cluster with Grafana v11.6.15: id_token AND userinfo
both contained `groups: [<ns>-super-admin, ...]`, `allowed_groups`
listed `<ns>-super-admin`, but login failed until
`groups_attribute_path=groups` was added. JMESPath expression
@@ -102,7 +102,7 @@ tests:
name: GF_PATHS_CUSTOM_INI
- it: mode=None does NOT render the users-Job (upgrade safety guard)
# Regression guard against the dev3 test finding: if the Job were
# Regression guard against a test-cluster finding: if the Job were
# rendered in mode=None, the post-upgrade prune pass would silently
# delete every non-admin Main-Org member on any monitoring HR
# reconcile — clobbering users added manually through the Grafana
@@ -273,7 +273,7 @@ tests:
# groups_attribute_path is REQUIRED alongside allowed_groups on
# Grafana v11.x+ — without it Grafana leaves the extracted
# user.Groups slice empty and the allowed_groups gate rejects
# every login (verified end-to-end on dev3 with v11.6.15). "groups"
# every login (verified end-to-end on a test cluster with v11.6.15). "groups"
# points at the top-level `groups` array from userinfo — the
# shape Keycloak's oidc-group-membership-mapper emits.
- equal: