changelog

shipped.

every release, latest first. major versions land with a heavier border. an atom feed lives at /changelog/feed.xml for your reader of choice.

v1.1.6

latest
9d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.6

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.6 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.6 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.5...v1.1.6

v1.1.6-rc1

prerelease
9d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.6-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.6-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.6-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.5...v1.1.6-rc1

v1.1.5

10d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.5

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.5 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.5 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.4...v1.1.5

v1.1.5-rc3

prerelease
10d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.5-rc3

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.5-rc3 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.5-rc3 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.5-rc1...v1.1.5-rc3

v1.1.5-rc2

prerelease
10d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.5-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.5-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.5-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.5-rc1...v1.1.5-rc2

v1.1.5-rc1

prerelease
10d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.5-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.5-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.5-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.4...v1.1.5-rc1

v1.1.4

23d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.4

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.4 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.4 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.3...v1.1.4

v1.1.4-rc2

prerelease
23d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.4-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.4-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.4-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.4-rc1...v1.1.4-rc2

v1.1.4-rc1

prerelease
23d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.4-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.4-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.4-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.3...v1.1.4-rc1

v1.1.3

26d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.3

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.3 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.3 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.2...v1.1.3

v1.1.3-rc1

prerelease
26d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.3-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.3-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.3-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.2...v1.1.3-rc1

v1.1.2

28d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.1...v1.1.2

v1.1.2-rc2

prerelease
28d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.2-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.2-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.2-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.2-rc1...v1.1.2-rc2

v1.1.2-rc1

prerelease
29d agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.2-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.2-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.2-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.1...v1.1.2-rc1

v1.1.1

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.1.0...v1.1.1

v1.1.0

What's new in v1.1.0 — AWS Access surfaces

v1.1 ships three new surfaces that answer the EKS-IAM questions operators get paged for in seconds instead of a 20-minute kubectl + IAM-console excavation.

  • Cluster Access page (#178) — reconciles EKS Access Entries with the legacy kube-system/aws-auth ConfigMap, builds a unified SA → IAM Role index across IRSA and Pod Identity, surfaces the Pod Identity view by role, and rolls migration health into one chip on the header (aws-auth-only · dual · entries-only counts).
  • AWS Access tab (#188) on every Pod / ServiceAccount / Deployment / StatefulSet / DaemonSet detail pane — resolves the workload's identity chain, fetches every inline + managed IAM policy attached to bound roles, groups by AWS service, and chips against an 18-action sensitive-permissions catalog (categories: privilege-escalation, data, cross-account, destructive, cluster self-modify, wildcard).
  • Reverse lookup (#188) at /clusters/{c}/reverse-lookup — answers "which workloads can perform action X?" with one-row-per-matched-pod results and binding-source attribution (IRSA / Pod Identity). One-click chip pre-fill from any sensitive-permission chip on the AWS Access tab.
  • IAM policy resolution engine (#187) — server-side resolver fetches every IAM policy attached to a role, parses statements, matches against the embedded 17-action sensitive-permissions catalog (internal/awseks/iam/sensitive.yaml, catalogVersion: 1.0.0). Three new public endpoints: /identity/workload-permissions, /identity/sensitive-catalog, /identity/capabilities.
  • Locked-feature pane — when a surface isn't available (non-EKS, RBAC denied, missing IAM perms, informer warming, Pod Identity not configured), the tab still renders with a structured reason code, the exact missing permissions, a docs link, and a Re-check button that bypasses the 5-minute capabilities cache.
  • Configurable IAM probePERISCOPE_AWS_ACCESS_IAM_PROBE=true|false (default on). The capabilities response calls iam:SimulatePrincipalPolicy against periscope-server's own caller identity to populate the exact Missing[] list shown on the locked pane. Falls back to optimistic available: true when the probe itself is denied.

Launch announcement: discussion #216 — the longer-form "five questions every EKS SRE bounces tabs to answer" framing. Operator walkthrough: docs/usage/aws-access. IAM grant needed by the server role: docs/setup/cluster-rbac.

Wire-shape changes (heads-up)

  • New audit verb aws_iam_read (#187 / #188). The IAM policy resolution engine and the new AWS Access surfaces emit this verb; the four cluster-identity endpoints continue to emit aws_identity_read. Operator audit-feed filters keyed on aws_identity_read should add aws_iam_read to capture IAM-engine activity.
  • Reverse-lookup wire shape: GET /api/clusters/{c}/iam/reverse-lookup now returns rows: ReverseLookupPodRow[] (one row per matched pod, with binding-source attribution) instead of matches: ReverseLookupMatch[]. Carries truncated + totalPods. Downstream scripts / MCP wrappers keyed on the old matches field need updating.
  • Sidebar / route rename: IdentityCluster Access (#199). The intermediate /identity route is gone; bookmarks 404 — update to /cluster-access.

Fixed

  • AWS Access tab: null-bindings crash (#199). The backend returns bindings: null (not []) when a SA has no IAM bindings; the SPA called .length without a guard and crashed the detail pane with Cannot read properties of null (reading 'length'). Three call sites in AWSAccessTab.tsx now normalize via bindings ?? [] / groups ?? [] before any property access.

Maintenance

  • CI workflows: every third-party Action pinned by SHA with a version comment, per OpenSSF Scorecard's pinned-dependencies check (#193).
  • Go module dependencies: 10 patch / minor bumps across the go-minor-and-patch Dependabot group (#196).
  • Backend code-format cleanup across handlers + cmd/ entrypoint (#197).

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.0

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.0 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.0 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed (this minor)

The feature work for the AWS Access surfaces (#178, #187, #188, #189, #190, #192, #198, #199) landed on develop across the cycle and reached main via the single release PR #200 above — see the v1.0.8…v1.1.0 compare view for the full git history, or the CHANGELOG entry for the human-readable feature breakdown.

Full changelog (this minor): https://github.com/gnana997/periscope/compare/v1.0.8...v1.1.0 Upgrading directly from v1.0.0? See the v1.0.0…v1.1.0 cumulative diff, or read the CHANGELOG.md sections from v1.0.0 forward for the patch-by-patch story.

v1.1.0-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.1.0-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.1.0-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.1.0-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.8...v1.1.0-rc1

v1.0.8

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.8

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.8 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.8 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.7...v1.0.8

v1.0.8-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.8-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.8-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.8-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.7...v1.0.8-rc1

v1.0.7

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.7

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.7 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.7 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.6...v1.0.7

v1.0.7-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.7-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.7-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.7-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.6...v1.0.7-rc1

v1.0.6

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.6

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.6 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.6 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.5...v1.0.6

v1.0.6-rc2

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.6-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.6-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.6-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.6-rc1...v1.0.6-rc2

v1.0.6-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.6-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.6-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.6-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.5...v1.0.6-rc1

v1.0.5

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.5

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.5 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.5 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.4...v1.0.5

v1.0.5-rc3

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.5-rc3

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.5-rc3 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.5-rc3 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.5-rc1...v1.0.5-rc3

v1.0.5-rc2

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.5-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.5-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.5-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.5-rc1...v1.0.5-rc2

v1.0.5-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.5-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.5-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.5-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.4...v1.0.5-rc1

v1.0.4

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.4

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.4 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.4 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.3...v1.0.4

v1.0.4-rc4

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.4-rc4

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.4-rc4 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.4-rc4 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.4-rc3...v1.0.4-rc4

v1.0.4-rc3

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.4-rc3

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.4-rc3 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.4-rc3 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.4-rc2...v1.0.4-rc3

v1.0.4-rc2

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.4-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.4-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.4-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.4-rc1...v1.0.4-rc2

v1.0.4-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.4-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.4-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.4-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.3...v1.0.4-rc1

v1.0.3

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.3

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.3 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.3 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

New Contributors

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.2...v1.0.3

v1.0.3-rc2

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.3-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.3-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.3-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.3-rc1...v1.0.3-rc2

v1.0.3-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.3-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.3-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.3-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

New Contributors

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.2...v1.0.3-rc1

v1.0.2

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.1...v1.0.2

v1.0.2-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.2-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.2-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.2-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.1...v1.0.2-rc1

v1.0.1

1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

New Contributors

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0...v1.0.1

v1.0.1-rc1

prerelease
1mo agoon github →diff vs v1.0.0

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.1-rc1

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.1-rc1 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.1-rc1 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

New Contributors

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0...v1.0.1-rc1

v1.0.0

1mo agoon github →announcement →

Periscope v1.0.0 — first stable release

A multi-cluster Kubernetes console with no static AWS credentials: keyless on EKS via Pod Identity / IRSA, anywhere via the periscope-agent tunnel. OIDC user identity, per-user K8s impersonation, structured audit log. Apache 2.0, no telemetry.

Highlights

  • Multi-cluster, one-command onboarding. Install periscope-agent on the managed cluster (one helm install), it dials out to the central server over a long-lived mTLS-pinned WebSocket, registers itself, and the operator's fleet view picks it up. Works on EKS / GKE / AKS / on-prem k3s / kind — anything with outbound HTTPS. No IAM trust per cluster, no inbound network access needed.
  • Pod exec on every backend. WS / SPDY upgrade flows transparently through the agent tunnel via a loopback HTTP CONNECT proxy that works around client-go's hard-coded transport behaviour. See RFC 0004 for the design and the two production bugs validation surfaced.
  • OIDC user identity, per-user impersonation. Every K8s call carries the human user's Impersonate-User / Impersonate-Group headers. The audit log shows alice@corp, never periscope-bot. Auth0 and Okta tested; three authorization modes (shared, tier, raw).
  • First-class audit log. SQLite-backed (with in-app /audit page), also streamed to stdout for SIEM. Every privileged action audited before-and-after, so denied / errored actions still leave a row.
  • Live everything. 21+ resource list pages stream over SSE with Last-Event-ID resume; per-user concurrency caps protect apiserver watch budgets.
  • Apply-as-code. Inline Monaco YAML editor with schema-aware autocomplete, Server-Side Apply, field-ownership glyphs, drift detection while editing.

Install

Server (central cluster)

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version 1.0.0 \
  --namespace periscope --create-namespace \
  --values my-values.yaml

See docs/setup/deploy.md for the full prerequisites + OIDC wiring.

Agent (per managed cluster, optional)

helm install periscope-agent \
  oci://ghcr.io/gnana997/charts/periscope-agent \
  --version 1.0.0 \
  --namespace periscope --create-namespace \
  --set agent.serverURL=wss://agents.example.com:8443/api/agents/connect \
  --set agent.clusterName=prod-eu-west-1 \
  --set agent.registrationToken=<paste-from-spa>

Walkthrough: docs/setup/agent-onboarding.md.

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0

Multi-arch (linux/amd64, linux/arm64). Distroless static base, non-root UID 65532, read-only root filesystem.

Supply-chain verification

cosign verify ghcr.io/gnana997/periscope:v1.0.0 \
  --certificate-identity-regexp "https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Both the image and the chart are cosign-signed (keyless via Sigstore). SPDX SBOM attached to the image.

Documentation

Full v1.0.0 entry in CHANGELOG.md.

What's not in v1.0 (post-1.0 work)

  • HA / multi-replica with peer routing (single-replica only today)
  • Helm release write paths (rollback / upgrade / install)
  • Federated search across clusters (#62 — feedback-gated)
  • Agent cert auto-rotation (operators re-register manually for now)

Thanks

To everyone who tested the RCs, filed issues, and helped harden the agent-tunnel + exec path.


Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc12...v1.0.0

v1.0.0-rc9

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc9

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc9 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc9 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc8...v1.0.0-rc9

v1.0.0-rc8

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc8

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc8 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc8 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc7...v1.0.0-rc8

v1.0.0-rc7

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc7

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc7 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc7 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc5...v1.0.0-rc7

v1.0.0-rc5

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc5

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc5 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc5 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc4...v1.0.0-rc5

v1.0.0-rc4

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc4

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc4 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc4 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc3...v1.0.0-rc4

v1.0.0-rc3

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc3

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc3 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc3 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc2...v1.0.0-rc3

v1.0.0-rc2

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc2

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc2 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc2 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc1...v1.0.0-rc2

v1.0.0-rc13

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc13

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc13 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc13 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc11...v1.0.0-rc13

v1.0.0-rc12

prerelease
1mo agoon github →

Container image

docker pull ghcr.io/gnana997/periscope:v1.0.0-rc12

Multi-arch: linux/amd64, linux/arm64. Cosign-signed (keyless), SBOM attached.

Helm chart

helm install periscope \
  oci://ghcr.io/gnana997/charts/periscope \
  --version v1.0.0-rc12 \
  --namespace periscope --create-namespace

Cosign-signed (keyless). Discoverable on Artifact Hub.

Verification

cosign verify \
  ghcr.io/gnana997/periscope:v1.0.0-rc12 \
  --certificate-identity-regexp="https://github.com/gnana997/periscope" \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

What's Changed

New Contributors

Full Changelog: https://github.com/gnana997/periscope/compare/v1.0.0-rc11...v1.0.0-rc12