From b5482e67ee74dc3465334149233bc40056baaecf Mon Sep 17 00:00:00 2001 From: Kenneth Jenkins <51246568+kenjenkins@users.noreply.github.com> Date: Fri, 1 May 2026 16:37:50 -0700 Subject: [PATCH 1/4] document ingress-controller sync mode Add a new page under Deploy > Kubernetes to document the new API sync functionality in ingress-controller. Provide a basic overview of the feature, instructions for syncing to Pomerium Zero or Pomerium Enterprise, some details about how the sync works, and a short troubleshooting section. --- content/docs/deploy/enterprise/install.mdx | 10 +- .../k8s/img/pomerium-zero-cluster-id.png | Bin 0 -> 76501 bytes content/docs/deploy/k8s/sync-api.mdx | 142 ++++++++++++++++++ k8s/ic-console/kustomization.yaml | 37 +++++ 4 files changed, 184 insertions(+), 5 deletions(-) create mode 100644 content/docs/deploy/k8s/img/pomerium-zero-cluster-id.png create mode 100644 content/docs/deploy/k8s/sync-api.mdx create mode 100644 k8s/ic-console/kustomization.yaml diff --git a/content/docs/deploy/enterprise/install.mdx b/content/docs/deploy/enterprise/install.mdx index 169cd6bd9..9a2828f72 100644 --- a/content/docs/deploy/enterprise/install.mdx +++ b/content/docs/deploy/enterprise/install.mdx @@ -35,8 +35,8 @@ Pomerium offers several ways to install the Enterprise Console to suit your orga ## Install Pomerium Enterprise - - + + The Pomerium Enterprise Docker image is available at a private Cloudsmith Docker registry. @@ -65,7 +65,7 @@ docker pull docker.cloudsmith.io/pomerium/enterprise/pomerium-console:${vX.X.X} See the [Enterprise Quickstart](/docs/deploy/enterprise/quickstart) for instructions to run and deploy the Enterprise Console with Docker Compose. - + You can find the latest `rpm` and `deb` packages on [Cloudsmith](https://cloudsmith.io/~pomerium/repos/pomerium/groups/) or download them from the [GitHub releases](https://github.com/pomerium/pomerium/releases) page. @@ -150,7 +150,7 @@ sudo systemctl enable --now pomerium-console ``` - + These steps cover installing Pomerium Enterprise into your existing Kubernetes cluster. It's designed to work with an existing cluster running Pomerium, as described in [Pomerium Kustomize]. Follow that document before continuing here. @@ -224,7 +224,7 @@ kubectl apply -k ./config [ingress]: /docs/deploy/k8s/ingress - + You can deploy Pomerium Enterprise to Kubernetes using Terraform modules from the [`pomerium/install`](https://github.com/pomerium/install) repository. This approach uses two modules: diff --git a/content/docs/deploy/k8s/img/pomerium-zero-cluster-id.png b/content/docs/deploy/k8s/img/pomerium-zero-cluster-id.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a3664f881ddbb4dba8fcd077ed1f711e192008 GIT binary patch literal 76501 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 + +You can now bring your Kubernetes-derived configuration into Pomerium Zero or Pomerium Enterprise. + +## Overview + +The Pomerium Ingress Controller configures Pomerium routes and policies based on Kubernetes Ingress or Gateway API objects. By default, this configuration happens internally, within the Ingress Controller itself. + +However, you can optionally configure Ingress Controller to sync this configuration to Pomerium Zero or Pomerium Enterprise. This allows you to mix and match different sources of configuration. You could define some routes using Ingress objects, some directly in the console web UI, and even some using the [Pomerium Terraform](/docs/deploy/terraform) provider. + +## How to configure + + + + +You will need: + +- An existing Pomerium Zero deployment (see [Install Pomerium Zero](/docs/deploy/cloud/install)) in Kubernetes. +- An [API user](/docs/internals/management-api-zero#get-api-user-token) token, which will allow Ingress Controller to manage configuration in Pomerium Zero. + +Ingress Controller will run alongside your existing Pomerium Zero deployment. + +First, save the API user token into a Kubernetes secret: + +``` +kubectl create secret generic -n pomerium pomerium-zero-api-user \ + --from-literal=token= +``` + +You will also need to determine the ID of the Pomerium Zero cluster you want to use. In the Pomerium Zero console, click on the cluster selector in the header bar, and note the cluster ID: + +![Screenshot of the Pomerium Zero console showing the cluster selector dialog. The cluster ID appears after the cluster name.](./img/pomerium-zero-cluster-id.png) + +Next, deploy Ingress Controller: create a new directory (say, `ic-zero/`) and save the following kustomize configuration. On the highlighted line, be sure to replace the cluster ID from this example with your real cluster ID. + +```yaml title="ic-zero/kustomization.yaml" +namespace: pomerium +resources: + - https://github.com/pomerium/ingress-controller//config/default?ref=main +patches: + - patch: |- + - op: replace + path: /spec/template/spec/containers/0/args/0 + value: controller + - op: add + path: /spec/template/spec/containers/0/env/- + value: + name: POMERIUM_ZERO_API_USER + valueFrom: + secretKeyRef: + name: pomerium-zero-api-user + key: token + - op: add + path: /spec/template/spec/containers/0/args/- + value: '--sync-api-url=https://console.pomerium.app' + - op: add + path: /spec/template/spec/containers/0/args/- + //highlight-next-line + value: '--sync-api-namespace-id=bbvPJJWrgkFpnPfMSxBRZngVPXB' + - op: add + path: /spec/template/spec/containers/0/args/- + value: '--sync-api-token=$(POMERIUM_ZERO_API_USER)' + target: + group: apps + version: v1 + kind: Deployment + name: pomerium +``` + +Again, make sure to substitute your own cluster ID on the highlighted line above. + +Now, apply this configuration to start Ingress Controller: + +``` +kubectl apply -k ic-zero/ +``` + + + + + +To deploy Ingress Controller syncing to Pomerium Enterprise, start with this configuration: + +``` +kubectl apply -k github.com/pomerium/documentation//k8s/ic-console\?ref=main +``` + +This configures deployments for both the Pomerium Ingress Controller and Pomerium Enterprise. It also configures Pomerium Enterprise to generate a "bootstrap" service account token, which Ingress Controller will use to authenticate to it. + +In order to use the service account token, Ingress Controller will need the shared secret passed in as the API token. Currently this needs to be created as a separate secret: + +``` +kubectl get secret -n pomerium bootstrap -o jsonpath='{.data.shared_secret}' | \ + kubectl create secret generic -n pomerium api-token --from-file=token=/dev/stdin +``` + +Then complete the rest of the Pomerium Enterprise [setup instructions](/docs/deploy/enterprise/install?method=kustomize#create-cloudsmith-directory-secret), starting from the step "Create Cloudsmith Directory Secret". + + + + +## Details + +Once the Pomerium Ingress Controller is running, you should start to see any routes you create using Ingress or HTTPRoute objects appear in the Pomerium Zero console. In the console UI edit pages, these are marked with a small "ingress-controller" chip. + +### Naming + +Routes created from an Ingress object will be named like `--`. For example, an Ingress `foo` in the `default` namespace with hostname `bar.example.com` will create a corresponding Pomerium route named `default-foo-bar-example-com`. + +For a single Ingress object with multiple rules, Ingress Controller will create multiple routes (one route for each rule). + +For each Ingress object, Ingress Controller will create a corresponding policy entity, named like `-`. + +Certificates created from Kubernetes Secrets will be named like `-`. + +## Troubleshooting + +#### Changes synced to Pomerium Zero do not take effect right away + +Make sure the "Auto-apply changesets" option is enabled in the Pomerium Zero settings. Look for Settings → Advanced → Auto-apply changesets. Otherwise, each change must be manually approved before it will take effect. + +#### Attempting to delete a Kubernetes object fails + +When the Pomerium Ingress Controller syncs configuration based on a Kubernetes object, it attaches a finalizer to that object. This way, when the object is deleted, the Ingress Controller still has the information it needs to be able to delete the corresponding entity from Pomerium Zero or Pomerium Enterprise. However, if some error prevents this deletion from succeeding, the finalizer keeps the object around until the sync does succeed. + +However, if there is some unrecoverable sync error, you can manually `kubectl edit` the corresponding object and delete the finalizer `api.pomerium.io/finalizer`. This may leave a "stale" entity in Pomerium Zero or Pomerium Enterprise. + +#### Pomerium Enterprise and duplicate TLS certificates + +When syncing to Pomerium Enterprise, if the same TLS certificate appears in multiple different Kubernetes secrets, Ingress Controller may be unable to sync objects referencing one or more of these secrets. + +You will see the error message `certificate overlaps with existing certificates` in this case. To avoid this problem, please ensure that you do not have the same certificate referenced in multiple Kubernetes secrets. + +Note that if a certificate is provided to Pomerium, it can be used for any Pomerium route. diff --git a/k8s/ic-console/kustomization.yaml b/k8s/ic-console/kustomization.yaml new file mode 100644 index 000000000..8fdc05b50 --- /dev/null +++ b/k8s/ic-console/kustomization.yaml @@ -0,0 +1,37 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../console + - ../core +patches: + - patch: |- + - op: add + path: /spec/template/spec/containers/0/args/- + value: '--bootstrap-service-account=true' + target: + group: apps + version: v1 + kind: Deployment + name: pomerium-console + namespace: pomerium-enterprise + - patch: |- + - op: add + path: /spec/template/spec/containers/0/env/- + value: + name: POMERIUM_API_TOKEN + valueFrom: + secretKeyRef: + name: api-token + key: token + - op: add + path: /spec/template/spec/containers/0/args/- + value: '--sync-api-ingress=pomerium-enterprise/pomerium-console' + - op: add + path: /spec/template/spec/containers/0/args/- + value: '--sync-api-token=$(POMERIUM_API_TOKEN)' + target: + group: apps + version: v1 + kind: Deployment + name: pomerium + namespace: pomerium From 2bdddfb7f8897f930fea15dac2961f28f31335f7 Mon Sep 17 00:00:00 2001 From: Kenneth Jenkins <51246568+kenjenkins@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:18:58 -0700 Subject: [PATCH 2/4] fix missing databroker service port --- k8s/core/kustomization.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/core/kustomization.yaml b/k8s/core/kustomization.yaml index d9a2eea5a..a4917da93 100644 --- a/k8s/core/kustomization.yaml +++ b/k8s/core/kustomization.yaml @@ -2,7 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: pomerium resources: - - github.com/pomerium/ingress-controller/config/default?ref=v0.32.0 + - github.com/pomerium/ingress-controller/config/default?ref=main - service.yaml patches: - patch: |- From e382ce714a13f5b632594583642cbafd0e9d6c48 Mon Sep 17 00:00:00 2001 From: Alexandre Lamarre Date: Fri, 17 Jul 2026 15:51:39 -0400 Subject: [PATCH 3/4] docs: base64 decode before creating api token secret --- content/docs/deploy/k8s/sync-api.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/content/docs/deploy/k8s/sync-api.mdx b/content/docs/deploy/k8s/sync-api.mdx index e7df408a1..cd8fdb9bf 100644 --- a/content/docs/deploy/k8s/sync-api.mdx +++ b/content/docs/deploy/k8s/sync-api.mdx @@ -99,6 +99,7 @@ In order to use the service account token, Ingress Controller will need the shar ``` kubectl get secret -n pomerium bootstrap -o jsonpath='{.data.shared_secret}' | \ + base64 -d | \ kubectl create secret generic -n pomerium api-token --from-file=token=/dev/stdin ``` From f5d7e9b8b4fe0f8feaacd458cda7edcaef58da9b Mon Sep 17 00:00:00 2001 From: Alexandre Lamarre Date: Fri, 17 Jul 2026 16:11:20 -0400 Subject: [PATCH 4/4] docs: fix double dash --- content/docs/deploy/k8s/sync-api.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/deploy/k8s/sync-api.mdx b/content/docs/deploy/k8s/sync-api.mdx index cd8fdb9bf..bc87177a1 100644 --- a/content/docs/deploy/k8s/sync-api.mdx +++ b/content/docs/deploy/k8s/sync-api.mdx @@ -44,7 +44,7 @@ Next, deploy Ingress Controller: create a new directory (say, `ic-zero/`) and sa ```yaml title="ic-zero/kustomization.yaml" namespace: pomerium resources: - - https://github.com/pomerium/ingress-controller//config/default?ref=main + - https://github.com/pomerium/ingress-controller/config/default?ref=main patches: - patch: |- - op: replace