profile
viewpoint
Seth Vargo sethvargo @Google Pittsburgh, PA https://www.sethvargo.com Engineer @google

googlecodelabs/tools 2019

Codelabs management & hosting tools

GoogleCloudPlatform/berglas 897

A tool for managing secrets on Google Cloud

google-github-actions/setup-gcloud 772

A collection of GitHub Actions for interfacing with Google Cloud Platform.

dgageot/demoit 699

Live coding demos without Context Switching

google/oauth2l 371

oauth2l ("oauth tool") is a simple CLI for interacting with Google API authentication.

kelseyhightower/vault-on-google-kubernetes-engine 367

How to guide on running HashiCorp's Vault on Google Kubernetes Engine

sethvargo/bootstrap_forms 255

Bootstrap Forms makes Twitter's Bootstrap on Rails easy!

hashicorp/waypoint-examples 225

Example Apps that can be deployed with Waypoint

startedsethvargo/go-signalcontext

started time in 3 hours

push eventgoogle/exposure-notifications-verification-server

Seth Vargo

commit sha 7503da397d006a1bc077c87658e350f4479c737e

Try using a single database instance (#1179)

view details

push time in 8 hours

delete branch google/exposure-notifications-verification-server

delete branch : sethvargo/dbfast

delete time in 8 hours

PR merged google/exposure-notifications-verification-server

Reviewers
Try using a single database instance approved cla: yes lgtm size/XXL

Like https://github.com/google/exposure-notifications-server/pull/1197, but for this repo.

Release Note

<!-- Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required". If no release note is required, write "NONE". -->

NONE
+739 -324

4 comments

40 changed files

sethvargo

pr closed time in 8 hours

pull request commentgoogle/exposure-notifications-verification-server

Try using a single database instance

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-verification-server/pull/1179#" title="Author self-approved">sethvargo</a>, <a href="https://github.com/google/exposure-notifications-verification-server/pull/1179#pullrequestreview-540499306" title="Approved">whaught</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

sethvargo

comment created time in 9 hours

pull request commentgoogle/exposure-notifications-verification-server

Try using a single database instance

@sethvargo: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-en-server-release-unit ec2f92c898d6a81686a59bad280d68d0371421e5 link /test pull-en-server-release-unit

<details>

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. </details> <!-- test report -->

sethvargo

comment created time in 9 hours

push eventgoogle/exposure-notifications-server

Seth Vargo

commit sha 7765d03485d0d0c484f970cbaa172c26a72190ce

Use a single container for database tests (#1197) Well, it's not exactly a single container, but more a single container per test package. Go tests are run in different processes, so it's not possible to share a single global container, but we share it with all tests in a single package, about 12 containers in total. Previously we were spinning up a new container, starting the database, running migrations, seeding data, running tests, and stopping the container. This led to resource exhaustion and flakey tests. This new design involves slightly more manual work: once for each package that wants a database, you have to manually add 5 LOC to start/stop the container for that package. The tests run in 1/3 of the time though, and I've had to turn my furnace back on in the house since my CPU no longer provides enough enthalpy to heat the entire house when running the tests (joking, this is a good thing). As an even further optimization, migrations are only run once per package. When the container first starts, we connect, run migrations, and then save that database as a "template" database. When an actual test needs a database, we clone that database (which has the complete schema and any test data) which is a near-instant operation. Each test is still fully isolated, but we only eat the cost of the database migration once (per package). The overhead of cloning a database amortizes over just 2 tests.

view details

push time in a day

delete branch google/exposure-notifications-server

delete branch : sethvargo/less_containers

delete time in a day

PR merged google/exposure-notifications-server

Reviewers
Use a single container for database tests approved cla: yes lgtm size/XXL

Well, it's not exactly a single container, but more a single container per test package. Go tests are run in different processes, so it's not possible to share a single global container, but we share it with all tests in a single package, about 12 containers in total.

Previously we were spinning up a new container, starting the database, running migrations, seeding data, running tests, and stopping the container. This led to resource exhaustion and flakey tests. This new design involves slightly more manual work: once for each package that wants a database, you have to manually add 5 LOC to start/stop the container for that package. The tests run in 1/3 of the time though, and I've had to turn my furnace back on in the house since my CPU no longer provides enough enthalpy to heat the entire house when running the tests (joking, this is a good thing).

As an even further optimization, migrations are only run once per package. When the container first starts, we connect, run migrations, and then save that database as a "template" database. When an actual test needs a database, we clone that database (which has the complete schema and any test data) which is a near-instant operation. Each test is still fully isolated, but we only eat the cost of the database migration once (per package). The overhead of cloning a database amortizes over just 2 tests.

Release Note

<!-- Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required". If no release note is required, write "NONE". -->

NONE
+1164 -210

5 comments

61 changed files

sethvargo

pr closed time in a day

pull request commentgoogle/exposure-notifications-server

Use a single container for database tests

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-server/pull/1197#issuecomment-735313868" title="Approved">chaodaiG</a>, <a href="https://github.com/google/exposure-notifications-server/pull/1197#" title="Author self-approved">sethvargo</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-server

Use a single container for database tests

/approve

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-server

Use a single container for database tests

This is awesome! /lgtm

sethvargo

comment created time in a day

fork photostorm/go-password

A Golang library for generating high-entropy random passwords similar to 1Password or LastPass.

fork in a day

pull request commentgoogle/exposure-notifications-server

Use a single container for database tests

@sethvargo: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-en-server-release-unit 2947a2c83ccb4361ded059cdb8ef149b0442a134 link /test pull-en-server-release-unit

<details>

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. </details> <!-- test report -->

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-server

Use a single container for database tests

@sethvargo: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-en-server-release-unit 1ad2d9434d97f4b20be259ebcead0b1f90756840 link /test pull-en-server-release-unit

<details>

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. </details> <!-- test report -->

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-server

Use a single container for database tests

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-server/pull/1197#" title="Author self-approved">sethvargo</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

sethvargo

comment created time in a day

issue commentsethvargo/vault-secrets-gen

Unrecognized remote plugin message

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

mr-menno

comment created time in a day

push eventgoogle/exposure-notifications-verification-server

Weston Haught

commit sha 64a382ae49aec30611c210a983b282370c00363e

Add an error table to the csv results (#1200) * Add an error table to the csv results * clear table on submit * clear progress table at the end * clear progress table * all the fixin's * Update cmd/server/assets/codes/bulk-issue.html Co-authored-by: Seth Vargo <seth@sethvargo.com> * nifty sprintf Co-authored-by: Seth Vargo <seth@sethvargo.com>

view details

push time in a day

PR merged google/exposure-notifications-verification-server

Reviewers
Add an error table to the csv results approved cla: yes lgtm size/L

Issue https://github.com/google/exposure-notifications-verification-server/issues/1197

<!-- Please include the 'why' behind your changes if no issue exists -->

Proposed Changes

  • Adds a card for displaying errors from CSV upload

errorstable

TODO: Show # successful above the errors? Button to download this as text?

Release Note

<!-- Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required". If no release note is required, write "NONE". -->

Include a table of errors for CSV bulk import
+69 -32

2 comments

1 changed file

whaught

pr closed time in a day

pull request commentgoogle/exposure-notifications-verification-server

Add an error table to the csv results

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-verification-server/pull/1200#issuecomment-735306158" title="Approved">sethvargo</a>, <a href="https://github.com/google/exposure-notifications-verification-server/pull/1200#" title="Author self-approved">whaught</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

whaught

comment created time in a day

Pull request review commentgoogle/exposure-notifications-verification-server

Add an error table to the csv results

               flash.alert("Successfully issued " + total + " codes.");             }           }++          if (totalErrs > 0) {+            flash.error("Received errors for " + totalErrs + " entries. See error table for details.");

/unhold

whaught

comment created time in a day

pull request commentgoogle/exposure-notifications-verification-server

Add an error table to the csv results

New changes are detected. LGTM label has been removed.

whaught

comment created time in a day

Pull request review commentgoogle/exposure-notifications-verification-server

Add an error table to the csv results

               flash.alert("Successfully issued " + total + " codes.");             }           }++          if (totalErrs > 0) {+            flash.error("Received errors for " + totalErrs + " entries. See error table for details.");

nah the rest just resets the div

whaught

comment created time in a day

push eventgoogle/exposure-notifications-server

Seth Vargo

commit sha dc61e8657393f3da7b65232bf1d050e393176809

Match workflows from verification repo (#1196)

view details

push time in a day

delete branch google/exposure-notifications-server

delete branch : sethvargo/workflows

delete time in a day

PR merged google/exposure-notifications-server

Reviewers
Match workflows from verification repo approved cla: yes lgtm size/M

Release Note

<!-- Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required". If no release note is required, write "NONE". -->

NONE
+17 -35

2 comments

4 changed files

sethvargo

pr closed time in a day

pull request commentgoogle/exposure-notifications-server

Match workflows from verification repo

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-server/pull/1196#" title="Author self-approved">sethvargo</a>, <a href="https://github.com/google/exposure-notifications-server/pull/1196#pullrequestreview-540422878" title="Approved">whaught</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-server

Match workflows from verification repo

@sethvargo: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
pull-en-server-release-unit 1fe09a268cfd87362e981cc90d54325c0206a16a link /test pull-en-server-release-unit

<details>

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. </details> <!-- test report -->

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-server

Match workflows from verification repo

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-server/pull/1196#" title="Author self-approved">sethvargo</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

sethvargo

comment created time in a day

pull request commentgoogle/exposure-notifications-verification-server

Add an error table to the csv results

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: <a href="https://github.com/google/exposure-notifications-verification-server/pull/1200#pullrequestreview-540406014" title="LGTM">sethvargo</a>, <a href="https://github.com/google/exposure-notifications-verification-server/pull/1200#" title="Author self-approved">whaught</a>

The full list of commands accepted by this bot can be found here.

The pull request process is described here

<details > Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment </details> <!-- META={"approvers":[]} -->

whaught

comment created time in a day

more