Skip to content

Jg glue table crd - #4

Draft
JonathanGraniero wants to merge 4 commits into
mainfrom
jg_glue_table_crd
Draft

Jg glue table crd#4
JonathanGraniero wants to merge 4 commits into
mainfrom
jg_glue_table_crd

Conversation

@JonathanGraniero

Copy link
Copy Markdown
Owner

No description provided.

michaelhtm pushed a commit that referenced this pull request Aug 4, 2026
Release artifacts for `glue-controller` version `v1.0.0`.

Opened by `ack-workspace release`.

---

## Soak Test Summary

Soak testing is a prerequisite for cutting a new major version. This release was
validated against a **24h soak run** on the `ack-soak-glue` cluster (controller
up 47h, runner Job `Complete`). Criteria and the summary format follow the
[soak test checklist](https://github.com/aws-controllers-k8s/test-infra/blob/main/soak/SOAK_TEST_CHECKLIST.md).

**Result: PASS** — all required and recommended checks passed.

### Verdict table

| # | Check | Required | Result |
|---|-------|----------|--------|
| 1 | No panics / restarts | ✅ | PASS |
| 2 | No reconcile errors | ✅ | PASS |
| 3 | No infinite loops | ✅ | PASS |
| 4 | No leaks (mem/goroutine/fd) | ✅ | PASS |
| 5 | e2e all passing | ✅ | PASS |
| 6 | No 5xx / unexpected 4xx | ✅ | PASS |
| 7 | Latency stable | ⬜ | PASS |
| 8 | No dangling resources | ⬜ | PASS |
| 9 | CPU bounded | ⬜ | PASS |
| 10 | API volume reasonable | ⬜ | PASS |

<details>
<summary><b>Evidence log</b> (what we looked at, commands run, observed values, conclusion)</summary>

```
#1 No panics / restarts                                          [PASS]
  Looked at: reconcile/webhook panic counters; controller pod restarts
  Command:   curl .../query?query=controller_runtime_reconcile_panics_total
             curl .../query?query=controller_runtime_webhook_panics_total
             kubectl get pods -n ack-system
  Observed:  reconcile_panics_total=0, webhook_panics_total=0; controller pod RESTARTS=0 (up 47h)
  Conclusion: all zero -> PASS

#2 No reconcile errors                                           [PASS]
  Looked at: controller_runtime_reconcile_errors_total
  Command:   curl .../query?query=controller_runtime_reconcile_errors_total{controller="job"}
  Observed:  job=0, fieldexport=0
  Conclusion: zero errors -> PASS

#3 No infinite reconcile loops                                   [PASS]
  Looked at: reconcile-rate shape; workqueue depth/longest-running
  Command:   curl .../query_range?query=sum(rate(controller_runtime_reconcile_total{controller="job"}[5m]))...
             curl .../query?query=workqueue_depth{name="job"}
  Observed:  reconcile_total = 6138 success + 6138 requeue_after, 0 error; rate peaked 0.144/s and
             fell to 0.000 after the runner finished; workqueue_depth{name="job"}=0; longest_running=0s
  Conclusion: rate decays to 0, queue drained -> PASS (retries_total~=6138 is the expected requeue_after)

#4 No leaks (memory / goroutine / fd)                            [PASS]
  Looked at: RSS, heap objects, goroutines, threads, fds as trends (job=ack-controller-glue)
  Command:   curl .../query_range?query=process_resident_memory_bytes{job="ack-controller-glue"}&step=3600
             (repeat for go_memstats_heap_objects, go_goroutines, go_threads, process_open_fds)
  Observed:  RSS 63.0 -> 64.0 MiB (min 63 / max 67.3 over 48h); heap_objects 44k-95k saw-tooth;
             goroutines 79 -> 78; os_threads 8 (flat); open_fds 10-11 (flat)
  Conclusion: no monotonic ramp anywhere -> PASS

#5 e2e all passing                                               [PASS]
  Looked at: pytest summary lines across all iterations
  Command:   kubectl logs -n ack-system glue-soak-test-<pod> > glue-soak.log
             grep -cE '1 passed' glue-soak.log              -> 3061
             grep -cE '[1-9][0-9]* failed' glue-soak.log    -> 0
             grep -cE '[0-9]+ error' glue-soak.log          -> 0
  Observed:  3061 iterations, all "1 passed"; 0 failed; 0 errors
  Conclusion: zero failures across 3061 iterations -> PASS

aws-controllers-k8s#6 No 5xx / unexpected 4xx AWS faults                            [PASS]
  Looked at: ack_outbound_api_requests_error_total by op + fault enum
             (status_code is a smithy FAULT ENUM: 1=server, 2=client -- NOT an HTTP code)
  Command:   curl .../query?query=ack_outbound_api_requests_error_total
             curl .../query?query=ack_outbound_api_requests_total
  Observed:  status_code="1" (server): none. status_code="2" (client): only GetJob = 3069,
             which equals the CreateJob/DeleteJob count (read-before-create not-found).
             Total calls 33,759: GetJob 12276, ListTagsForResource 9207, Create/Update/Delete/TagJob 3069 each.
  Conclusion: no server faults; only expected GetJob not-found client faults -> PASS

aws-controllers-k8s#7 Reconcile latency stable                                      [PASS]
  Command:   curl .../query?query=max_over_time((histogram_quantile(1.0,sum by(le)(rate(controller_runtime_reconcile_time_seconds_bucket{controller="job"}[5m])))*1000)[2d:5m])
  Observed:  p100 peak 700 ms; no growing tail
  Conclusion: bounded -> PASS

aws-controllers-k8s#8 No dangling resources                                         [PASS]
  Command:   curl .../query?query=max_over_time(apiserver_storage_objects{resource=~".*services.k8s.aws"}[2d])
  Observed:  jobs.glue.services.k8s.aws peaked at 1; fieldexports/iamroleselectors = 0
  Conclusion: at most 1 resource at a time, no accumulation -> PASS

aws-controllers-k8s#9 CPU bounded                                                   [PASS]
  Command:   curl .../query?query=max_over_time(sum(rate(container_cpu_usage_seconds_total{namespace="ack-system",pod=~"soak-test-glue.*"}[5m]))[2d:5m])
  Observed:  peak 0.0024 cores; idled after run
  Conclusion: nowhere near a limit -> PASS

aws-controllers-k8s#10 API volume reasonable                                        [PASS]
  Command:   curl .../query?query=ack_outbound_api_requests_total
  Observed:  33,759 calls scaling with iterations; GetJob highest (read-heavy reconcile), no anomaly
  Conclusion: proportional to load -> PASS
```

</details>

**AWS API faults note:** for aws-sdk-go-v2 controllers the `status_code` label on
`ack_outbound_api_requests_error_total` is a smithy fault enum (`1`=server,
`2`=client), not an HTTP status -- so checks query `status_code="1"`/`"2"` rather
than the dashboard's `4..`/`5..` panels.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants