Skip to content

Commit e40fc90

Browse files
committed
docs: clarify bootstrap and validation
1 parent ffa1aa8 commit e40fc90

3 files changed

Lines changed: 72 additions & 20 deletions

File tree

‎app/_how-tos/konnect-platform/konnect-reference-platform.md‎

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,21 @@ kongctl apply -f konnect/foundations.yaml \
7272

7373
## Bootstrap repository identities
7474

75-
Create one Konnect system account per service repository. Issue a token for each
76-
account and store it as a protected repository secret. Account and token
77-
creation are manual boundaries; do not store tokens in declarative files.
75+
Create a dedicated Platform automation system account manually, grant it
76+
Organization Admin access, and store its token as `KONNECT_TOKEN` in a
77+
protected production environment in the platform repository. This identity
78+
applies the shared foundations and production Gateway aggregate.
79+
80+
Use a second platform manifest to declare one Konnect system account per
81+
service repository and assign each account to its service team. Apply this file
82+
after the foundations exist so the accounts inherit the role set owned by the
83+
Platform Team. Account declarations and memberships remain platform desired
84+
state.
85+
86+
After the accounts exist, issue a token for each one and store it as
87+
`KONNECT_TOKEN` in that service repository's development and protected
88+
production environments. Token issuance and secret placement are manual
89+
boundaries; do not store tokens in declarative files.
7890

7991
Grant each service team:
8092

@@ -83,9 +95,6 @@ Grant each service team:
8395
- read access needed to resolve shared Portals, auth strategies, and the
8496
production control plane.
8597

86-
Use a second platform manifest to assign each existing repository account to
87-
its service team so the account inherits that role set.
88-
8998
Do not grant service identities production Gateway write access. KongAirlines
9099
starts with broad organization-level API roles for simplicity and a scoped
91100
development `Deployer` role. If `Deployer` cannot apply the required Service,
@@ -206,10 +215,11 @@ version.
206215

207216
The platform production manifest attaches all promoted files to the production
208217
control plane in one `_deck` block. Platform review and merge run one aggregate
209-
apply:
218+
apply from a protected production environment:
210219

211220
```sh
212-
kongctl apply -f konnect/production-gateway.yaml --base-dir .
221+
kongctl apply -f konnect/production-gateway.yaml --base-dir . \
222+
--require-namespace platform
213223
```
214224

215225
Do not edit promoted files in the platform repository. Return required changes
@@ -234,3 +244,21 @@ publishes its production Catalog state.
234244
The initial architecture is apply-only. Removing YAML from Git does not delete
235245
the remote resource. Treat removals as separately designed and reviewed
236246
operations until your organization has an ownership-safe pruning process.
247+
248+
## Validate the delivery boundaries
249+
250+
After implementing the workflows, verify the ownership model with one service
251+
before onboarding the others:
252+
253+
1. Apply the platform foundations and confirm that the shared control planes,
254+
Portals, auth strategies, teams, and repository system accounts exist.
255+
2. Merge a service change and confirm that its development workflow updates
256+
only that service's Catalog and tagged Gateway state.
257+
3. Prepare and merge a release, then confirm that automation opens a platform
258+
promotion PR containing the exact production Gateway artifact and its
259+
provenance.
260+
4. Approve the platform production job and confirm that the aggregate Gateway
261+
configuration is applied before approving the service's production Catalog
262+
job.
263+
5. For a protected API, register an application in the Portal and confirm that
264+
its credential can access only the operations granted through ACE.

‎app/konnect-reference-platform/faq.md‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,14 @@ designed and demonstrated.
114114

115115
## How are credentials bootstrapped?
116116

117-
Create one Konnect system account and token per service repository, assign its
118-
team membership through the platform desired state, and store the token in a
119-
protected GitHub secret. The service team owns the shared roles inherited by
120-
its repository accounts. Token creation and secret placement are human
121-
bootstrap steps. Production promotion uses a separate GitHub credential that
122-
can open a PR in the platform repository and is never exposed to fork jobs.
117+
Create the Platform automation identity and its token manually. Platform
118+
desired state then creates one Konnect system account per service repository
119+
and assigns its team membership. The Platform Team owns the shared roles that
120+
repository accounts inherit. Issuing each service account token and storing it
121+
in the repository's development and protected production environments are
122+
human bootstrap steps. Production promotion uses a separate GitHub credential
123+
that can open a PR in the platform repository and is never exposed to fork
124+
jobs.
123125

124126
## What if an apply fails immediately after an RBAC change?
125127

‎app/konnect-reference-platform/kong-air.md‎

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,34 @@ Gateway aggregate.
3636

3737
Two service teams own four active repositories:
3838

39-
| Team | Repository | Authorization | Development control plane |
40-
| --- | --- | --- | --- |
41-
| `customer-data` | [bookings](https://github.com/KongAirlines/bookings) | Key Auth and ACE | `customer-data-dev` |
42-
| `customer-data` | [customer](https://github.com/KongAirlines/customer) | Key Auth and ACE | `customer-data-dev` |
43-
| `flight-data` | [destinations](https://github.com/KongAirlines/destinations) | Anonymous | `flight-data-dev` |
44-
| `flight-data` | [flights](https://github.com/KongAirlines/flights) | Anonymous | `flight-data-dev` |
39+
{% table %}
40+
columns:
41+
- title: Team
42+
key: team
43+
- title: Repository
44+
key: repository
45+
- title: Authorization
46+
key: authorization
47+
- title: Development control plane
48+
key: control_plane
49+
rows:
50+
- team: "`customer-data`"
51+
repository: "[bookings](https://github.com/KongAirlines/bookings)"
52+
authorization: Key Auth and ACE
53+
control_plane: "`customer-data-dev`"
54+
- team: "`customer-data`"
55+
repository: "[customer](https://github.com/KongAirlines/customer)"
56+
authorization: Key Auth and ACE
57+
control_plane: "`customer-data-dev`"
58+
- team: "`flight-data`"
59+
repository: "[destinations](https://github.com/KongAirlines/destinations)"
60+
authorization: Anonymous
61+
control_plane: "`flight-data-dev`"
62+
- team: "`flight-data`"
63+
repository: "[flights](https://github.com/KongAirlines/flights)"
64+
authorization: Anonymous
65+
control_plane: "`flight-data-dev`"
66+
{% endtable %}
4567

4668
## What a service repository owns
4769

0 commit comments

Comments
 (0)