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
Aggregate metadata for ownership chain and use annotations for runtime risks (#33)
* add AggregatePodMetadata to track metadata of pod and its owners, add runtime risk tracking
* simplify recursion to iteration, don't get metadata for delete events
* add metadata client, switch to using PartialObjectMetadata
* focus linter only on new changes when run from PRs
Copy file name to clipboardExpand all lines: README.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,7 @@ deployment records to GitHub's artifact metadata API.
23
23
-**Real-time tracking**: Sends deployment records when pods are
24
24
created or deleted
25
25
-**Graceful shutdown**: Properly drains work queue before terminating
26
+
-**Runtime risks**: Track runtime risks through annotations
26
27
27
28
## How It Works
28
29
@@ -82,14 +83,21 @@ The `DN_TEMPLATE` supports the following placeholders:
82
83
-`{{deploymentName}}` - Name of the owning Deployment
83
84
-`{{containerName}}` - Container name
84
85
86
+
## Runtime Risks
87
+
88
+
You can track runtime risks through annotations. Add the annotation `github.com/runtime-risks`, with a comma-separated list of supported runtime risk values. Annotations are aggregated from the pod and its owner reference objects.
89
+
90
+
Currently supported runtime risks can be found in the [Create Deployment Record API docs](https://docs.github.com/en/rest/orgs/artifact-metadata?apiVersion=2022-11-28#create-an-artifact-deployment-record). Invalid runtime risk values will be ignored.
91
+
92
+
85
93
## Kubernetes Deployment
86
94
87
95
A complete deployment manifest is provided in `deploy/manifest.yaml`
88
96
which includes:
89
97
90
98
-**Namespace**: `deployment-tracker`
91
99
-**ServiceAccount**: Identity for the controller pod
92
-
-**ClusterRole**: Minimal permissions (`get`, `list`, `watch` on pods)
100
+
-**ClusterRole**: Minimal permissions (`get`, `list`, `watch` on pods; `get` on other supported objects)
93
101
-**ClusterRoleBinding**: Binds the ServiceAccount to the ClusterRole
94
102
-**Deployment**: Runs the controller with security hardening
0 commit comments