You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: SECURITY.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,8 @@
2
2
3
3
## Supported Versions
4
4
5
-
The provider has no public release yet; the first public release ships as a complete v1, and v0 tags stay internal. Before the first public release, confirm which released versions receive security fixes and update this section if support differs from latest-only.
5
+
Security fixes are provided for the latest released version. Before the first
6
+
release, this policy applies to the `main` branch.
Copy file name to clipboardExpand all lines: docs/architecture.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Kernel Terraform Provider Architecture
2
2
3
-
This document records the durable-only architecture, the implemented v0 baseline, and the target scope for the first public v1 of the Kernel Terraform provider.
3
+
This document records the durable-only architecture, the initial public v0.0.1 surface, and the target scope for a future v1 of the Kernel Terraform provider.
4
4
5
5
## First Principles
6
6
@@ -25,8 +25,9 @@ Provider configuration:
25
25
- optional `base_url`
26
26
- optional `project_id`
27
27
28
-
Resource:
28
+
Resources:
29
29
30
+
-`kernel_project`
30
31
-`kernel_browser_pool`
31
32
32
33
Data sources:
@@ -38,11 +39,12 @@ Data sources:
38
39
39
40
Import:
40
41
42
+
-`kernel_project` imports by canonical project ID.
41
43
-`kernel_browser_pool` imports by canonical browser pool ID, optionally qualified as `<project-id>/<pool-id>`.
42
44
43
45
## v1 Target Scope
44
46
45
-
The first public v1 should make durable Kernel configuration production-ready without turning Terraform into a runtime control plane. Core items are release-blocking unless the release notes explicitly defer them with an upstream API or SDK blocker.
47
+
A future v1 should broaden production-ready durable Kernel configuration without turning Terraform into a runtime control plane.
46
48
47
49
Resources require stable identity, refresh, delete, import, and, where applicable, project-scoping and sensitive-state semantics. Data sources require stable identity, deterministic exact lookup, and, where applicable, masked sensitive metadata, pagination, and project scoping. Tooling experiments require deterministic regeneration and must preserve the handwritten lifecycle boundary.
48
50
@@ -268,4 +270,4 @@ Release checklist:
268
270
- Runtime operations are absent from Terraform resources.
269
271
- Import behavior is documented.
270
272
- API and SDK blockers are either resolved or explicitly deferred.
271
-
- Release process, signing, licensing, and versioning are complete before the first public v1 publication.
273
+
- Release process, signing, licensing, and versioning are complete before the first public v0.0.1 publication.
Copy file name to clipboardExpand all lines: docs/release.md
+46-14Lines changed: 46 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@ Use this checklist before publishing a Kernel Terraform provider version.
4
4
5
5
## Release Preconditions
6
6
7
-
-The repository has no published provider tags. Present v1 as the first public release, not as an upgrade or migration from v0.
8
-
-Review the [first public release guide](first-release.md) and include its supported-surface and import guidance in the release notes.
7
+
-For v0.0.1, present it as the first public release, not as an upgrade or migration from an earlier provider version.
8
+
-For v0.0.1, review the [first public release guide](first-release.md) and include its supported-surface and import guidance in the release notes.
9
9
- Work from a clean `main` checkout after the PR stack is merged.
10
10
- Run `bash scripts/check-docs.sh`.
11
11
- Run `bash scripts/check-markdown-links.sh`.
@@ -28,12 +28,26 @@ Use this checklist before publishing a Kernel Terraform provider version.
28
28
- Verify unscoped API calls send no `X-Kernel-Project-Id` header; it is sent only when a resource-level `project_id` or the provider default resolves a project.
29
29
- Confirm `terraform-registry-manifest.json` contains protocol `["6.0"]` for Terraform Plugin Framework.
30
30
- Confirm `LICENSE` contains the approved Apache License 2.0 text.
31
+
- Confirm immutable GitHub Releases are enabled for the repository. The
32
+
publication job intentionally has no repository-administration permission to
33
+
inspect or change this setting.
31
34
- Confirm GitHub private vulnerability reporting or a public security contact is configured and reflected in `SECURITY.md`.
32
-
- Confirm there is no branch named like the release tag, for example `v1.0.0`.
33
-
35
+
- Store `GPG_PRIVATE_KEY` and `PASSPHRASE` as repository Actions secrets. Set
36
+
the repository Actions variable `GPG_FINGERPRINT` to the fingerprint
37
+
registered with the Terraform Registry.
38
+
- Add a repository ruleset that restricts creation, update, and deletion of
39
+
`v*` tags to the Kernel engineering team. Inspect the ruleset's bypass list
40
+
before releasing; do not allow repository roles, outside collaborators, or
41
+
organization administrators to bypass it. Ruleset configuration is an
42
+
administrator-owned setup requirement, not a workflow runtime check.
43
+
- GitHub repository writers can create Releases through the API; GitHub does not
44
+
provide a separate release-publisher role. Treat every account with repository
45
+
write access as release-authorized and keep that group limited to Kernel
46
+
engineers. The tag ruleset remains the control that authorizes a release
47
+
workflow run.
34
48
## Registry Release Assets
35
49
36
-
Terraform Registry provider releases are GitHub Releases with semver tags prefixed by `v`, such as `v1.0.0`.
50
+
Terraform Registry provider releases are GitHub Releases with semver tags prefixed by `v`, such as `v0.0.1`.
37
51
38
52
Each release must include:
39
53
@@ -58,16 +72,34 @@ Do not replace or mutate assets for a published version. If an asset, checksum,
58
72
## GoReleaser Notes
59
73
60
74
-`.goreleaser.yml` is the source of truth for registry artifact names, target
61
-
platforms, checksums, manifest inclusion, and checksum signing.
75
+
platforms, checksums, and manifest inclusion. The release workflow owns
76
+
checksum signing and publication.
62
77
- Normal CI validates the GoReleaser configuration and registry manifest without
63
78
building the complete platform matrix.
64
-
-`.github/workflows/release.yml` prepares unsigned, unpublished assets for
65
-
stable `vMAJOR.MINOR.PATCH` tags after confirming the repository is public
66
-
and the tag commit is reachable from `main`. It pins GoReleaser to the pushed
67
-
tag, verifies the release contract, and retains the assets for seven days.
68
-
- Real releases sign the checksum file once with the GPG key selected by
69
-
`GPG_FINGERPRINT`. The detached signature is named by appending `.sig` to the
70
-
checksum filename. Publication remains a separate release step.
79
+
-`.github/workflows/release.yml` runs for `v*` tags. Its preparation job has
80
+
read-only repository access and accepts only stable `vMAJOR.MINOR.PATCH`
81
+
versions. It requires the Apache 2.0 license, public repository visibility,
82
+
and a commit reachable from `main`, then builds and verifies the unsigned
83
+
assets. The workflow artifact is retained for seven days. Only the
0 commit comments