-
Notifications
You must be signed in to change notification settings - Fork 16
Add conformance testing workflow for GitHub Actions #139
Conversation
Co-Authored-By: sarahalsmiller <100602640+sarahalsmiller@users.noreply.github.com>
Co-Authored-By: sarahalsmiller <100602640+sarahalsmiller@users.noreply.github.com>
Co-Authored-By: sarahalsmiller <100602640+sarahalsmiller@users.noreply.github.com>
ba4aab7
to
385dbde
Compare
73c4cbc
to
d3809c7
Compare
d3809c7
to
3009a6b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personal Review
Overall, I really love the workflow here and how we're installing from a Helm chart like our customers do. Would probably love to port the e2e tests over to a similar workflow in the future.
- "conformance-*" | ||
|
||
schedule: | ||
- cron: '0 0 * * *' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will run at midnight UTC every day
schedule: | ||
- cron: '0 0 * * *' | ||
|
||
workflow_dispatch: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This allows us to kick off runs manually in the repo Actions tab if we choose
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be triggered manually on specific branches/PRs, or only on main
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep yep. Here's the blogpost I initially read about it
.github/workflows/conformance.yml
Outdated
repository: "nathancoleman/gateway-api" | ||
ref: "eventually-consistent-conformance" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This uses my fork + branch of the gateway-api repo from kubernetes-sigs/gateway-api#1080.
Hoping that merges in the next week or so and we can update this to use kubernetes-sigs/gateway-api@master
.
.github/workflows/conformance.yml
Outdated
- name: Clone consul-k8s | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: "hashicorp/consul-k8s" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to run using the main
branch of consul-k8s for now because of some fixes that haven't been released yet. Once those fixes are released, we can drop this installation from a clone.
@@ -1,5 +1,5 @@ | |||
FROM alpine:3.13 | |||
FROM alpine:latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated to match the default
step in Dockerfile
. I don't think there's a reason to be on an older version, but can pin this if we generally prefer keeping it pinned.
@@ -29,3 +29,10 @@ patches: | |||
value: {'consul.hashicorp.com/connect-inject': 'true', 'consul.hashicorp.com/connect-service-port': '3000'} | |||
target: | |||
kind: Deployment | |||
# We don't have enough resources in the GitHub-hosted Actions runner to support 2 replicas |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Turns out kind runs out of CPU before all of the conformance testing resources can spin up. There's no easy option for increasing the size of the runner today. It sounds like the consul team is running into similar issues that we may need to figure out in the future if/when upstream adds more deployments.
8fce6a2
to
7192c57
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Followed the steps, got everything running in a local kind cluster (some tests seem flaky locally but I think that's just a resource/slowness issue) and see the passing CI tests triggered by the branch push, this looks great!
schedule: | ||
- cron: '0 0 * * *' | ||
|
||
workflow_dispatch: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be triggered manually on specific branches/PRs, or only on main
?
Co-authored-by: Mike Morris <mikemorris@users.noreply.github.com>
Co-authored-by: Mike Morris <mikemorris@users.noreply.github.com>
Changes proposed in this PR:
Stand up a kind cluster, install MetalLB, and run conformance tests against our implementation of the Gateway API.
How I've tested this PR:
🤖 tests pass
How I expect reviewers to test this PR:
Checklist: