Skip to content

Commit 8fc6ad4

Browse files
committed
pomerium-mcp: install CRDs via kustomization; add sample global config CR
Include ../crd in resources so `kubectl apply -k config/pomerium-mcp` is self-sufficient, mirroring config/default. The Pomerium global-mcp CR is customer-specific so it lives as a sibling pomerium-crd.yaml, applied separately rather than via the kustomization.
1 parent 046c055 commit 8fc6ad4

2 files changed

Lines changed: 36 additions & 9 deletions

File tree

config/pomerium-mcp/kustomization.yaml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@
33
# namespace pomerium-mcp
44
# IngressClass pomerium-mcp (controller: pomerium.io/ingress-controller-mcp)
55
# StatefulSet + PVC for file-based databroker persistence
6-
# global config CR global-mcp (applied separately via pomerium-crd.yaml)
6+
#
7+
# The Pomerium global config CR (`global-mcp`) is customer-specific and lives
8+
# in pomerium-crd.yaml as a sibling — applied separately, not via this kustomization.
79
#
810
# Layout:
9-
# namespace.yaml + ingressclass.yaml are unique to this overlay (cluster-scoped names
10-
# must NOT be prefixed, so they live at the top level outside the namePrefix scope).
11-
# ../pomerium/service/proxy.yaml is reused as-is — commonLabels rewrites the selector
12-
# so it matches our renamed pods, and the metrics Service is intentionally skipped.
13-
# ./inner pulls in ../../pomerium/rbac and ../../gen_secrets and applies a namePrefix
14-
# so the cluster-scoped ClusterRole/Binding don't collide with the default install.
15-
# The image override is set once here so both the StatefulSet and the gen-secrets Job
16-
# pick up the same SHA.
11+
# ../crd installs the CRD schemas, mirroring config/default.
12+
# namespace.yaml + ingressclass.yaml are top-level resources whose names must
13+
# stay exact, so they sit outside the inner namePrefix scope.
14+
# ../pomerium/service is reused as-is — commonLabels rewrites the selector so
15+
# it matches our renamed pods.
16+
# ./inner pulls in ../../pomerium/rbac and ../../gen_secrets and applies a
17+
# namePrefix so the cluster-scoped ClusterRole/Binding don't collide with
18+
# the default install.
19+
# The image override is set once here so both the StatefulSet and the
20+
# gen-secrets Job pick up the same SHA.
1721
#
1822
apiVersion: kustomize.config.k8s.io/v1beta1
1923
kind: Kustomization
@@ -24,6 +28,7 @@ images:
2428
- name: pomerium/ingress-controller
2529
newTag: sha-3fddd34
2630
resources:
31+
- ../crd
2732
- namespace.yaml
2833
- ingressclass.yaml
2934
- ../pomerium/service
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# Pomerium global config CR for the pomerium-mcp instance.
3+
# Cluster-scoped and applied separately from the kustomization:
4+
#
5+
# kubectl apply -k config/pomerium-mcp
6+
# kubectl apply -f config/pomerium-mcp/pomerium-crd.yaml
7+
#
8+
# The StatefulSet's `--pomerium-config=global-mcp` flag binds it to this CR.
9+
# `storage.file.path` lives on the PVC mounted at /data so the databroker
10+
# survives pod restarts.
11+
#
12+
apiVersion: ingress.pomerium.io/v1
13+
kind: Pomerium
14+
metadata:
15+
name: global-mcp
16+
spec:
17+
secrets: pomerium-mcp/bootstrap
18+
storage:
19+
file:
20+
path: /data/pomerium.db
21+
runtimeFlags:
22+
mcp: true

0 commit comments

Comments
 (0)