diff --git a/.circleci/config.yml b/.circleci/config.yml index d460cd4e9670..09dae1cc18e6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -199,13 +199,13 @@ jobs: - run: name: Lint command: golangci-lint run -E goimports -E sqlclosecheck -E bodyclose -E asciicheck ./... - working_directory: go/bss-core + working_directory: bss-core - run: name: Test command: | mkdir -p /test-results gotestsum --junitfile /test-results/tests.xml - working_directory: go/bss-core + working_directory: bss-core - store_test_results: path: /test-results @@ -313,26 +313,26 @@ workflows: - go-lint-test-build: name: batch-submitter-tests binary_name: batch-submitter - working_directory: go/batch-submitter + working_directory: batch-submitter - go-lint-test-build: name: proxyd-tests binary_name: proxyd - working_directory: go/proxyd + working_directory: proxyd - go-lint-test-build: name: teleportr-tests binary_name: teleportr - working_directory: go/teleportr + working_directory: teleportr - go-lint-test-build: name: gas-oracle-tests binary_name: gas-oracle - working_directory: go/gas-oracle + working_directory: gas-oracle - go-lint-test-build: name: indexer-tests binary_name: indexer - working_directory: go/indexer + working_directory: indexer - go-lint-test: name: bss-core-tests - working_directory: go/bss-core + working_directory: bss-core - contracts-tests: requires: - yarn-monorepo @@ -379,14 +379,14 @@ workflows: - yarn-monorepo - docker-publish: name: l2geth-release - docker_file: ops/docker/Dockerfile.geth + docker_file: l2geth/Dockerfile docker_tags: ethereumoptimism/l2geth:nightly docker_context: . context: - optimism - docker-publish: name: gas-oracle-release - docker_file: ops/docker/Dockerfile.gas-oracle + docker_file: gas-oracle/Dockerfile docker_tags: ethereumoptimism/gas-oracle:nightly docker_context: . context: @@ -414,21 +414,21 @@ workflows: - optimism - docker-publish: name: proxyd-release - docker_file: go/proxyd/Dockerfile + docker_file: proxyd/Dockerfile docker_tags: ethereumoptimism/proxyd:nightly docker_context: . context: - optimism - docker-publish: name: l2geth-exporter-release - docker_file: ops/docker/Dockerfile.l2geth-exporter + docker_file: l2geth-exporter/Dockerfile docker_tags: ethereumoptimism/l2geth-exporter:nightly docker_context: . context: - optimism - docker-publish: name: op-exporter-release - docker_file: ops/docker/Dockerfile.op-exporter + docker_file: op-exporter/Dockerfile docker_tags: ethereumoptimism/op-exporter:nightly docker_context: . context: @@ -467,21 +467,21 @@ workflows: - optimism - docker-publish: name: batch-submitter-service-release - docker_file: ops/docker/Dockerfile.batch-submitter-service + docker_file: ops/docker/Dockerfile docker_tags: ethereumoptimism/batch-submitter-service:nightly docker_context: . context: - optimism - docker-publish: name: indexer-release - docker_file: ops/docker/Dockerfile.indexer + docker_file: indexer/Dockerfile docker_tags: ethereumoptimism/indexer:nightly docker_context: . context: - optimism - docker-publish: name: teleportr-release - docker_file: ops/docker/Dockerfile.teleportr + docker_file: teleportr/Dockerfile docker_tags: ethereumoptimism/teleportr:nightly docker_context: . context: diff --git a/.github/workflows/publish-canary.yml b/.github/workflows/publish-canary.yml index 9afa76d7c23b..8e094fa2e464 100644 --- a/.github/workflows/publish-canary.yml +++ b/.github/workflows/publish-canary.yml @@ -113,7 +113,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.geth + file: ./l2geth/Dockerfile push: true tags: ethereumoptimism/l2geth:${{ needs.canary-publish.outputs.canary-docker-tag }} @@ -139,7 +139,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.gas-oracle + file: ./gas-oracle/Dockerfile push: true tags: ethereumoptimism/gas-oracle:${{ needs.canary-publish.outputs.canary-docker-tag }} @@ -326,14 +326,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/proxyd/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./proxyd/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./go/proxyd/Dockerfile + file: ./proxyd/Dockerfile push: true tags: ethereumoptimism/proxyd:${{ needs.canary-publish.outputs.proxyd }} build-args: | @@ -363,14 +363,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/op-exporter/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./op-exporter/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.op-exporter + file: ./op-exporter/Dockerfile= push: true tags: ethereumoptimism/op-exporter:${{ needs.canary-publish.outputs.op-exporter }} build-args: | @@ -400,14 +400,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/l2geth-exporter/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./l2geth-exporter/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.l2geth-exporter + file: ./l2geth-exporter/Dockerfile push: true tags: ethereumoptimism/l2geth-exporter:${{ needs.canary-publish.outputs.l2geth-exporter }} build-args: | @@ -437,7 +437,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.batch-submitter-service + file: ./batch-submitter/Dockerfile push: true tags: ethereumoptimism/batch-submitter-service:${{ needs.canary-publish.outputs.batch-submitter-service }} @@ -463,14 +463,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/indexer/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./indexer/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.indexer + file: ./indexer/Dockerfile push: true tags: ethereumoptimism/indexer:${{ needs.canary-publish.outputs.indexer }} build-args: | @@ -500,14 +500,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/teleportr/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./teleportr/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.teleportr + file: ./teleportr/Dockerfile push: true tags: ethereumoptimism/teleportr:${{ needs.canary-publish.outputs.teleportr }} build-args: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e243b9e8890e..d8acb754d84f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,7 +93,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.geth + file: ./ops/docker/Dockerfile push: true tags: ethereumoptimism/l2geth:${{ needs.release.outputs.l2geth }},ethereumoptimism/l2geth:latest @@ -119,7 +119,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.gas-oracle + file: ./gas-oracle/Dockerfile push: true tags: ethereumoptimism/gas-oracle:${{ needs.release.outputs.gas-oracle }},ethereumoptimism/gas-oracle:latest @@ -223,14 +223,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/proxyd/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./proxyd/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./go/proxyd/Dockerfile + file: ./proxyd/Dockerfile push: true tags: ethereumoptimism/proxyd:${{ needs.release.outputs.proxyd }},ethereumoptimism/proxyd:latest build-args: | @@ -260,14 +260,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/l2geth-exporter/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./l2geth-exporter/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.l2geth-exporter + file: ./l2geth-exporter/Dockerfile push: true tags: ethereumoptimism/l2geth-exporter:${{ needs.release.outputs.l2geth-exporter }},ethereumoptimism/l2geth-exporter:latest build-args: | @@ -297,14 +297,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/op-exporter/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./op-exporter/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Build and push uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.op-exporter + file: ./op-exporter/Dockerfile push: true tags: ethereumoptimism/op-exporter:${{ needs.release.outputs.op-exporter }},ethereumoptimism/op-exporter:latest build-args: | @@ -469,7 +469,7 @@ jobs: uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.batch-submitter-service + file: ./batch-submitter/Dockerfile push: true tags: ethereumoptimism/batch-submitter-service:${{ needs.release.outputs.batch-submitter-service }},ethereumoptimism/batch-submitter-service:latest @@ -495,14 +495,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/indexer/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./indexer/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Publish Indexer uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.indexer + file: ./indexer/Dockerfile push: true tags: ethereumoptimism/indexer:${{ needs.release.outputs.indexer }},ethereumoptimism/indexer:latest build-args: | @@ -532,14 +532,14 @@ jobs: id: build_args run: | echo ::set-output name=GITDATE::"$(date +%d-%m-%Y)" - echo ::set-output name=GITVERSION::$(jq -r .version ./go/teleportr/package.json) + echo ::set-output name=GITVERSION::$(jq -r .version ./teleportr/package.json) echo ::set-output name=GITCOMMIT::"$GITHUB_SHA" - name: Publish Teleportr uses: docker/build-push-action@v2 with: context: . - file: ./ops/docker/Dockerfile.teleportr + file: ./teleportr/Dockerfile push: true tags: ethereumoptimism/teleportr:${{ needs.release.outputs.teleportr }},ethereumoptimism/teleportr:latest build-args: | diff --git a/README.md b/README.md index 0688801689ae..4c5afa5107b8 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,10 @@ root │ ├── message-relayer: Tool for automatically relaying L1<>L2 messages in development │ └── replica-healthcheck: Service for monitoring the health of a replica node ├── go -│ ├── batch-submitter: Service for submitting batches of transactions and results to L1 -│ ├── bss-core: Core batch-submitter logic and utilities -│ ├── gas-oracle: Service for updating L1 gas prices on L2 -│ └── proxyd: Configurable RPC request router and proxy +│ ├── batch-submitter: Service for submitting batches of transactions and results to L1 +│ ├── bss-core: Core batch-submitter logic and utilities +│ ├── gas-oracle: Service for updating L1 gas prices on L2 +│ └── proxyd: Configurable RPC request router and proxy ├── l2geth: Optimism client software, a fork of geth v1.9.10 ├── integration-tests: Various integration tests for the Optimism network └── ops: Tools for running Optimism nodes and networks diff --git a/go/batch-submitter/.gitignore b/batch-submitter/.gitignore similarity index 100% rename from go/batch-submitter/.gitignore rename to batch-submitter/.gitignore diff --git a/go/batch-submitter/CHANGELOG.md b/batch-submitter/CHANGELOG.md similarity index 100% rename from go/batch-submitter/CHANGELOG.md rename to batch-submitter/CHANGELOG.md diff --git a/ops/docker/Dockerfile.batch-submitter-service b/batch-submitter/Dockerfile similarity index 58% rename from ops/docker/Dockerfile.batch-submitter-service rename to batch-submitter/Dockerfile index 0eae2c502a66..ba9da8b6b3f2 100644 --- a/ops/docker/Dockerfile.batch-submitter-service +++ b/batch-submitter/Dockerfile @@ -2,12 +2,12 @@ FROM golang:1.18.0-alpine3.15 as builder RUN apk add --no-cache make gcc musl-dev linux-headers git jq bash -COPY ./l2geth /l2geth -COPY ./go/bss-core /go/bss-core -COPY ./go/batch-submitter/go.mod ./go/batch-submitter/go.sum /go/batch-submitter/ +COPY ./batch-submitter /go/batch-submitter +COPY ./bss-core /go/bss-core +COPY ./l2geth /go/l2geth +COPY ./batch-submitter/docker.go.work /go/go.work + WORKDIR /go/batch-submitter -RUN go mod graph | grep -v l2geth | grep -v bss-core | awk '{if ($1 !~ "@") print $2}' | xargs -n 1 go get -COPY ./go/batch-submitter/ ./ RUN make FROM alpine:3.15 diff --git a/go/batch-submitter/Makefile b/batch-submitter/Makefile similarity index 100% rename from go/batch-submitter/Makefile rename to batch-submitter/Makefile diff --git a/go/batch-submitter/batch_submitter.go b/batch-submitter/batch_submitter.go similarity index 93% rename from go/batch-submitter/batch_submitter.go rename to batch-submitter/batch_submitter.go index 1529013aee70..168c3e49906d 100644 --- a/go/batch-submitter/batch_submitter.go +++ b/batch-submitter/batch_submitter.go @@ -5,12 +5,12 @@ import ( "os" "time" - "github.com/ethereum-optimism/optimism/go/batch-submitter/drivers/proposer" - "github.com/ethereum-optimism/optimism/go/batch-submitter/drivers/sequencer" - bsscore "github.com/ethereum-optimism/optimism/go/bss-core" - "github.com/ethereum-optimism/optimism/go/bss-core/dial" - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/batch-submitter/drivers/proposer" + "github.com/ethereum-optimism/optimism/batch-submitter/drivers/sequencer" + bsscore "github.com/ethereum-optimism/optimism/bss-core" + "github.com/ethereum-optimism/optimism/bss-core/dial" + "github.com/ethereum-optimism/optimism/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" "github.com/ethereum/go-ethereum/log" "github.com/getsentry/sentry-go" "github.com/urfave/cli" diff --git a/go/batch-submitter/bindings/ctc/canonical_transaction_chain.go b/batch-submitter/bindings/ctc/canonical_transaction_chain.go similarity index 100% rename from go/batch-submitter/bindings/ctc/canonical_transaction_chain.go rename to batch-submitter/bindings/ctc/canonical_transaction_chain.go diff --git a/go/batch-submitter/bindings/scc/state_commitment_chain.go b/batch-submitter/bindings/scc/state_commitment_chain.go similarity index 100% rename from go/batch-submitter/bindings/scc/state_commitment_chain.go rename to batch-submitter/bindings/scc/state_commitment_chain.go diff --git a/go/batch-submitter/cmd/batch-submitter/main.go b/batch-submitter/cmd/batch-submitter/main.go similarity index 87% rename from go/batch-submitter/cmd/batch-submitter/main.go rename to batch-submitter/cmd/batch-submitter/main.go index b28676eee951..75df4f35a018 100644 --- a/go/batch-submitter/cmd/batch-submitter/main.go +++ b/batch-submitter/cmd/batch-submitter/main.go @@ -8,8 +8,8 @@ import ( "github.com/ethereum/go-ethereum/params" "github.com/urfave/cli" - batchsubmitter "github.com/ethereum-optimism/optimism/go/batch-submitter" - "github.com/ethereum-optimism/optimism/go/batch-submitter/flags" + batchsubmitter "github.com/ethereum-optimism/optimism/batch-submitter" + "github.com/ethereum-optimism/optimism/batch-submitter/flags" ) var ( diff --git a/go/batch-submitter/config.go b/batch-submitter/config.go similarity index 99% rename from go/batch-submitter/config.go rename to batch-submitter/config.go index 9fc7861dd8c9..6f87e1cbc3ae 100644 --- a/go/batch-submitter/config.go +++ b/batch-submitter/config.go @@ -7,7 +7,7 @@ import ( "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli" - "github.com/ethereum-optimism/optimism/go/batch-submitter/flags" + "github.com/ethereum-optimism/optimism/batch-submitter/flags" ) var ( diff --git a/go/batch-submitter/config_test.go b/batch-submitter/config_test.go similarity index 98% rename from go/batch-submitter/config_test.go rename to batch-submitter/config_test.go index a2fd78dea84a..689ecf27a27e 100644 --- a/go/batch-submitter/config_test.go +++ b/batch-submitter/config_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - batchsubmitter "github.com/ethereum-optimism/optimism/go/batch-submitter" + batchsubmitter "github.com/ethereum-optimism/optimism/batch-submitter" "github.com/stretchr/testify/require" ) diff --git a/go/batch-submitter/dial_l2_client.go b/batch-submitter/dial_l2_client.go similarity index 95% rename from go/batch-submitter/dial_l2_client.go rename to batch-submitter/dial_l2_client.go index 00187fb992cf..b28cbcc8a2a2 100644 --- a/go/batch-submitter/dial_l2_client.go +++ b/batch-submitter/dial_l2_client.go @@ -6,7 +6,7 @@ import ( "net/http" "strings" - "github.com/ethereum-optimism/optimism/go/bss-core/dial" + "github.com/ethereum-optimism/optimism/bss-core/dial" "github.com/ethereum-optimism/optimism/l2geth/ethclient" "github.com/ethereum-optimism/optimism/l2geth/log" "github.com/ethereum-optimism/optimism/l2geth/rpc" diff --git a/batch-submitter/docker.go.work b/batch-submitter/docker.go.work new file mode 100644 index 000000000000..0700859df830 --- /dev/null +++ b/batch-submitter/docker.go.work @@ -0,0 +1,7 @@ +go 1.18 + +use ( + ./batch-submitter + ./bss-core + ./l2geth +) diff --git a/go/batch-submitter/drivers/proposer/driver.go b/batch-submitter/drivers/proposer/driver.go similarity index 95% rename from go/batch-submitter/drivers/proposer/driver.go rename to batch-submitter/drivers/proposer/driver.go index 8dd8f00f2b7e..c096d88ad0d9 100644 --- a/go/batch-submitter/drivers/proposer/driver.go +++ b/batch-submitter/drivers/proposer/driver.go @@ -7,11 +7,11 @@ import ( "math/big" "strings" - "github.com/ethereum-optimism/optimism/go/batch-submitter/bindings/ctc" - "github.com/ethereum-optimism/optimism/go/batch-submitter/bindings/scc" - "github.com/ethereum-optimism/optimism/go/bss-core/drivers" - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/batch-submitter/bindings/ctc" + "github.com/ethereum-optimism/optimism/batch-submitter/bindings/scc" + "github.com/ethereum-optimism/optimism/bss-core/drivers" + "github.com/ethereum-optimism/optimism/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" l2ethclient "github.com/ethereum-optimism/optimism/l2geth/ethclient" "github.com/ethereum-optimism/optimism/l2geth/log" "github.com/ethereum/go-ethereum/accounts/abi" diff --git a/go/batch-submitter/drivers/sequencer/batch.go b/batch-submitter/drivers/sequencer/batch.go similarity index 100% rename from go/batch-submitter/drivers/sequencer/batch.go rename to batch-submitter/drivers/sequencer/batch.go diff --git a/go/batch-submitter/drivers/sequencer/batch_test.go b/batch-submitter/drivers/sequencer/batch_test.go similarity index 94% rename from go/batch-submitter/drivers/sequencer/batch_test.go rename to batch-submitter/drivers/sequencer/batch_test.go index 5a42c3c57f74..f9fb93ec5142 100644 --- a/go/batch-submitter/drivers/sequencer/batch_test.go +++ b/batch-submitter/drivers/sequencer/batch_test.go @@ -4,7 +4,7 @@ import ( "math/big" "testing" - "github.com/ethereum-optimism/optimism/go/batch-submitter/drivers/sequencer" + "github.com/ethereum-optimism/optimism/batch-submitter/drivers/sequencer" l2common "github.com/ethereum-optimism/optimism/l2geth/common" l2types "github.com/ethereum-optimism/optimism/l2geth/core/types" "github.com/stretchr/testify/require" diff --git a/go/batch-submitter/drivers/sequencer/cached_tx.go b/batch-submitter/drivers/sequencer/cached_tx.go similarity index 100% rename from go/batch-submitter/drivers/sequencer/cached_tx.go rename to batch-submitter/drivers/sequencer/cached_tx.go diff --git a/go/batch-submitter/drivers/sequencer/driver.go b/batch-submitter/drivers/sequencer/driver.go similarity index 97% rename from go/batch-submitter/drivers/sequencer/driver.go rename to batch-submitter/drivers/sequencer/driver.go index 0461e20b0bfc..ef8b5d09ee20 100644 --- a/go/batch-submitter/drivers/sequencer/driver.go +++ b/batch-submitter/drivers/sequencer/driver.go @@ -7,10 +7,10 @@ import ( "math/big" "strings" - "github.com/ethereum-optimism/optimism/go/batch-submitter/bindings/ctc" - "github.com/ethereum-optimism/optimism/go/bss-core/drivers" - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/batch-submitter/bindings/ctc" + "github.com/ethereum-optimism/optimism/bss-core/drivers" + "github.com/ethereum-optimism/optimism/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" l2ethclient "github.com/ethereum-optimism/optimism/l2geth/ethclient" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/accounts/abi" diff --git a/go/batch-submitter/drivers/sequencer/encoding.go b/batch-submitter/drivers/sequencer/encoding.go similarity index 100% rename from go/batch-submitter/drivers/sequencer/encoding.go rename to batch-submitter/drivers/sequencer/encoding.go diff --git a/go/batch-submitter/drivers/sequencer/encoding_test.go b/batch-submitter/drivers/sequencer/encoding_test.go similarity index 99% rename from go/batch-submitter/drivers/sequencer/encoding_test.go rename to batch-submitter/drivers/sequencer/encoding_test.go index f050b31eb475..72618737fbbe 100644 --- a/go/batch-submitter/drivers/sequencer/encoding_test.go +++ b/batch-submitter/drivers/sequencer/encoding_test.go @@ -7,7 +7,7 @@ import ( "os" "testing" - "github.com/ethereum-optimism/optimism/go/batch-submitter/drivers/sequencer" + "github.com/ethereum-optimism/optimism/batch-submitter/drivers/sequencer" l2types "github.com/ethereum-optimism/optimism/l2geth/core/types" l2rlp "github.com/ethereum-optimism/optimism/l2geth/rlp" "github.com/stretchr/testify/require" diff --git a/go/batch-submitter/drivers/sequencer/metrics.go b/batch-submitter/drivers/sequencer/metrics.go similarity index 93% rename from go/batch-submitter/drivers/sequencer/metrics.go rename to batch-submitter/drivers/sequencer/metrics.go index b5b0526df996..2eb5072e11ce 100644 --- a/go/batch-submitter/drivers/sequencer/metrics.go +++ b/batch-submitter/drivers/sequencer/metrics.go @@ -1,7 +1,7 @@ package sequencer import ( - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/metrics" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" ) diff --git a/go/batch-submitter/drivers/sequencer/testdata/valid_append_sequencer_batch_params.json b/batch-submitter/drivers/sequencer/testdata/valid_append_sequencer_batch_params.json similarity index 100% rename from go/batch-submitter/drivers/sequencer/testdata/valid_append_sequencer_batch_params.json rename to batch-submitter/drivers/sequencer/testdata/valid_append_sequencer_batch_params.json diff --git a/go/batch-submitter/flags/flags.go b/batch-submitter/flags/flags.go similarity index 100% rename from go/batch-submitter/flags/flags.go rename to batch-submitter/flags/flags.go diff --git a/go/batch-submitter/flags/flags_test.go b/batch-submitter/flags/flags_test.go similarity index 100% rename from go/batch-submitter/flags/flags_test.go rename to batch-submitter/flags/flags_test.go diff --git a/batch-submitter/go.mod b/batch-submitter/go.mod new file mode 100644 index 000000000000..e10870c73b91 --- /dev/null +++ b/batch-submitter/go.mod @@ -0,0 +1,16 @@ +module github.com/ethereum-optimism/optimism/batch-submitter + +go 1.16 + +replace github.com/ethereum-optimism/optimism/bss-core v0.0.0 => ../bss-core +replace github.com/ethereum-optimism/optimism/l2geth v0.0.0 => ../l2geth + +require ( + github.com/ethereum-optimism/optimism/bss-core v0.0.0 + github.com/ethereum-optimism/optimism/l2geth v0.0.0 + github.com/ethereum/go-ethereum v1.10.16 + github.com/getsentry/sentry-go v0.11.0 + github.com/prometheus/client_golang v1.11.0 + github.com/stretchr/testify v1.7.0 + github.com/urfave/cli v1.22.5 +) diff --git a/go/batch-submitter/go.sum b/batch-submitter/go.sum similarity index 100% rename from go/batch-submitter/go.sum rename to batch-submitter/go.sum diff --git a/go/batch-submitter/package.json b/batch-submitter/package.json similarity index 100% rename from go/batch-submitter/package.json rename to batch-submitter/package.json diff --git a/go/bss-core/.gitignore b/bss-core/.gitignore similarity index 100% rename from go/bss-core/.gitignore rename to bss-core/.gitignore diff --git a/go/bss-core/batch_submitter.go b/bss-core/batch_submitter.go similarity index 100% rename from go/bss-core/batch_submitter.go rename to bss-core/batch_submitter.go diff --git a/go/bss-core/crypto.go b/bss-core/crypto.go similarity index 100% rename from go/bss-core/crypto.go rename to bss-core/crypto.go diff --git a/go/bss-core/crypto_test.go b/bss-core/crypto_test.go similarity index 99% rename from go/bss-core/crypto_test.go rename to bss-core/crypto_test.go index 561c06f4d6b7..aab5fddd2c80 100644 --- a/go/bss-core/crypto_test.go +++ b/bss-core/crypto_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - bsscore "github.com/ethereum-optimism/optimism/go/bss-core" + bsscore "github.com/ethereum-optimism/optimism/bss-core" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "github.com/stretchr/testify/require" diff --git a/go/bss-core/dial/common.go b/bss-core/dial/common.go similarity index 100% rename from go/bss-core/dial/common.go rename to bss-core/dial/common.go diff --git a/go/bss-core/dial/l1_client.go b/bss-core/dial/l1_client.go similarity index 100% rename from go/bss-core/dial/l1_client.go rename to bss-core/dial/l1_client.go diff --git a/go/bss-core/drivers/clear_pending_tx.go b/bss-core/drivers/clear_pending_tx.go similarity index 99% rename from go/bss-core/drivers/clear_pending_tx.go rename to bss-core/drivers/clear_pending_tx.go index fc1ff56cc4fc..91558ea2a12c 100644 --- a/go/bss-core/drivers/clear_pending_tx.go +++ b/bss-core/drivers/clear_pending_tx.go @@ -7,7 +7,7 @@ import ( "math/big" "strings" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" diff --git a/go/bss-core/drivers/clear_pending_tx_test.go b/bss-core/drivers/clear_pending_tx_test.go similarity index 98% rename from go/bss-core/drivers/clear_pending_tx_test.go rename to bss-core/drivers/clear_pending_tx_test.go index 985b9c4af8b1..644a9a741c06 100644 --- a/go/bss-core/drivers/clear_pending_tx_test.go +++ b/bss-core/drivers/clear_pending_tx_test.go @@ -8,9 +8,9 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/go/bss-core/drivers" - "github.com/ethereum-optimism/optimism/go/bss-core/mock" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/bss-core/drivers" + "github.com/ethereum-optimism/optimism/bss-core/mock" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" diff --git a/go/bss-core/drivers/interface.go b/bss-core/drivers/interface.go similarity index 100% rename from go/bss-core/drivers/interface.go rename to bss-core/drivers/interface.go diff --git a/go/bss-core/drivers/max_priority_fee_fallback.go b/bss-core/drivers/max_priority_fee_fallback.go similarity index 100% rename from go/bss-core/drivers/max_priority_fee_fallback.go rename to bss-core/drivers/max_priority_fee_fallback.go diff --git a/go/bss-core/go.mod b/bss-core/go.mod similarity index 86% rename from go/bss-core/go.mod rename to bss-core/go.mod index 1121d3a07ab0..5596fe64404e 100644 --- a/go/bss-core/go.mod +++ b/bss-core/go.mod @@ -1,4 +1,4 @@ -module github.com/ethereum-optimism/optimism/go/bss-core +module github.com/ethereum-optimism/optimism/bss-core go 1.16 diff --git a/go/bss-core/go.sum b/bss-core/go.sum similarity index 100% rename from go/bss-core/go.sum rename to bss-core/go.sum diff --git a/go/bss-core/metrics/interface.go b/bss-core/metrics/interface.go similarity index 100% rename from go/bss-core/metrics/interface.go rename to bss-core/metrics/interface.go diff --git a/go/bss-core/metrics/metrics.go b/bss-core/metrics/metrics.go similarity index 100% rename from go/bss-core/metrics/metrics.go rename to bss-core/metrics/metrics.go diff --git a/go/bss-core/metrics/run_metrics_server.go b/bss-core/metrics/run_metrics_server.go similarity index 100% rename from go/bss-core/metrics/run_metrics_server.go rename to bss-core/metrics/run_metrics_server.go diff --git a/go/bss-core/mock/l1client.go b/bss-core/mock/l1client.go similarity index 100% rename from go/bss-core/mock/l1client.go rename to bss-core/mock/l1client.go diff --git a/go/bss-core/sentry_log.go b/bss-core/sentry_log.go similarity index 100% rename from go/bss-core/sentry_log.go rename to bss-core/sentry_log.go diff --git a/go/bss-core/service.go b/bss-core/service.go similarity index 98% rename from go/bss-core/service.go rename to bss-core/service.go index 6439faa13417..f52517a12795 100644 --- a/go/bss-core/service.go +++ b/bss-core/service.go @@ -7,8 +7,8 @@ import ( "sync" "time" - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" diff --git a/go/bss-core/txmgr/send_state.go b/bss-core/txmgr/send_state.go similarity index 100% rename from go/bss-core/txmgr/send_state.go rename to bss-core/txmgr/send_state.go diff --git a/go/bss-core/txmgr/send_state_test.go b/bss-core/txmgr/send_state_test.go similarity index 98% rename from go/bss-core/txmgr/send_state_test.go rename to bss-core/txmgr/send_state_test.go index fdd10f27fb3d..9065901cee6e 100644 --- a/go/bss-core/txmgr/send_state_test.go +++ b/bss-core/txmgr/send_state_test.go @@ -4,7 +4,7 @@ import ( "errors" "testing" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" "github.com/stretchr/testify/require" diff --git a/go/bss-core/txmgr/txmgr.go b/bss-core/txmgr/txmgr.go similarity index 100% rename from go/bss-core/txmgr/txmgr.go rename to bss-core/txmgr/txmgr.go diff --git a/go/bss-core/txmgr/txmgr_test.go b/bss-core/txmgr/txmgr_test.go similarity index 99% rename from go/bss-core/txmgr/txmgr_test.go rename to bss-core/txmgr/txmgr_test.go index 32437a2cb584..ee2c97314cb2 100644 --- a/go/bss-core/txmgr/txmgr_test.go +++ b/bss-core/txmgr/txmgr_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" diff --git a/go/gas-oracle/.gitignore b/gas-oracle/.gitignore similarity index 100% rename from go/gas-oracle/.gitignore rename to gas-oracle/.gitignore diff --git a/go/gas-oracle/CHANGELOG.md b/gas-oracle/CHANGELOG.md similarity index 100% rename from go/gas-oracle/CHANGELOG.md rename to gas-oracle/CHANGELOG.md diff --git a/ops/docker/Dockerfile.gas-oracle b/gas-oracle/Dockerfile similarity index 90% rename from ops/docker/Dockerfile.gas-oracle rename to gas-oracle/Dockerfile index 848d18d75068..dc001d9a9855 100644 --- a/ops/docker/Dockerfile.gas-oracle +++ b/gas-oracle/Dockerfile @@ -2,7 +2,8 @@ FROM golang:1.18.0-alpine3.15 as builder RUN apk add --no-cache make gcc musl-dev linux-headers git jq bash -COPY ./go/gas-oracle /gas-oracle +COPY ./gas-oracle /gas-oracle + RUN cd /gas-oracle && make gas-oracle FROM alpine:3.15 diff --git a/go/gas-oracle/Makefile b/gas-oracle/Makefile similarity index 98% rename from go/gas-oracle/Makefile rename to gas-oracle/Makefile index feac5bc90954..f1c668d65c88 100644 --- a/go/gas-oracle/Makefile +++ b/gas-oracle/Makefile @@ -13,6 +13,7 @@ CONTRACTS_PATH := "../../packages/contracts/artifacts/contracts" gas-oracle: env GO111MODULE=on go build $(LDFLAGS) +.PHONY: gas-oracle clean: rm gas-oracle diff --git a/go/gas-oracle/README.md b/gas-oracle/README.md similarity index 100% rename from go/gas-oracle/README.md rename to gas-oracle/README.md diff --git a/go/gas-oracle/abis/OVM_GasPriceOracle.json b/gas-oracle/abis/OVM_GasPriceOracle.json similarity index 100% rename from go/gas-oracle/abis/OVM_GasPriceOracle.json rename to gas-oracle/abis/OVM_GasPriceOracle.json diff --git a/go/gas-oracle/bindings/gaspriceoracle.go b/gas-oracle/bindings/gaspriceoracle.go similarity index 100% rename from go/gas-oracle/bindings/gaspriceoracle.go rename to gas-oracle/bindings/gaspriceoracle.go diff --git a/go/gas-oracle/flags/flags.go b/gas-oracle/flags/flags.go similarity index 100% rename from go/gas-oracle/flags/flags.go rename to gas-oracle/flags/flags.go diff --git a/go/gas-oracle/gasprices/gas_price_updater.go b/gas-oracle/gasprices/gas_price_updater.go similarity index 100% rename from go/gas-oracle/gasprices/gas_price_updater.go rename to gas-oracle/gasprices/gas_price_updater.go diff --git a/go/gas-oracle/gasprices/gas_price_updater_test.go b/gas-oracle/gasprices/gas_price_updater_test.go similarity index 100% rename from go/gas-oracle/gasprices/gas_price_updater_test.go rename to gas-oracle/gasprices/gas_price_updater_test.go diff --git a/go/gas-oracle/gasprices/l2_gas_pricer.go b/gas-oracle/gasprices/l2_gas_pricer.go similarity index 100% rename from go/gas-oracle/gasprices/l2_gas_pricer.go rename to gas-oracle/gasprices/l2_gas_pricer.go diff --git a/go/gas-oracle/gasprices/l2_gas_pricer_test.go b/gas-oracle/gasprices/l2_gas_pricer_test.go similarity index 100% rename from go/gas-oracle/gasprices/l2_gas_pricer_test.go rename to gas-oracle/gasprices/l2_gas_pricer_test.go diff --git a/go/gas-oracle/go.mod b/gas-oracle/go.mod similarity index 61% rename from go/gas-oracle/go.mod rename to gas-oracle/go.mod index 7ec7c6f11407..91d2428eef4d 100644 --- a/go/gas-oracle/go.mod +++ b/gas-oracle/go.mod @@ -1,4 +1,4 @@ -module github.com/ethereum-optimism/optimism/go/gas-oracle +module github.com/ethereum-optimism/optimism/gas-oracle go 1.16 diff --git a/go/gas-oracle/go.sum b/gas-oracle/go.sum similarity index 100% rename from go/gas-oracle/go.sum rename to gas-oracle/go.sum diff --git a/go/gas-oracle/main.go b/gas-oracle/main.go similarity index 91% rename from go/gas-oracle/main.go rename to gas-oracle/main.go index dd5e16a9151f..8976b3c82a65 100644 --- a/go/gas-oracle/main.go +++ b/gas-oracle/main.go @@ -5,9 +5,9 @@ import ( "os" "time" - "github.com/ethereum-optimism/optimism/go/gas-oracle/flags" - ometrics "github.com/ethereum-optimism/optimism/go/gas-oracle/metrics" - "github.com/ethereum-optimism/optimism/go/gas-oracle/oracle" + "github.com/ethereum-optimism/optimism/gas-oracle/flags" + ometrics "github.com/ethereum-optimism/optimism/gas-oracle/metrics" + "github.com/ethereum-optimism/optimism/gas-oracle/oracle" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/metrics/influxdb" "github.com/ethereum/go-ethereum/params" diff --git a/go/gas-oracle/metrics/handler.go b/gas-oracle/metrics/handler.go similarity index 100% rename from go/gas-oracle/metrics/handler.go rename to gas-oracle/metrics/handler.go diff --git a/go/gas-oracle/oracle/base_fee.go b/gas-oracle/oracle/base_fee.go similarity index 97% rename from go/gas-oracle/oracle/base_fee.go rename to gas-oracle/oracle/base_fee.go index e152dd7d95b8..b109e5009cee 100644 --- a/go/gas-oracle/oracle/base_fee.go +++ b/gas-oracle/oracle/base_fee.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - "github.com/ethereum-optimism/optimism/go/gas-oracle/bindings" + "github.com/ethereum-optimism/optimism/gas-oracle/bindings" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/log" diff --git a/go/gas-oracle/oracle/base_fee_test.go b/gas-oracle/oracle/base_fee_test.go similarity index 96% rename from go/gas-oracle/oracle/base_fee_test.go rename to gas-oracle/oracle/base_fee_test.go index 0f63969f2eed..a3abe870cbb4 100644 --- a/go/gas-oracle/oracle/base_fee_test.go +++ b/gas-oracle/oracle/base_fee_test.go @@ -4,7 +4,7 @@ import ( "math/big" "testing" - "github.com/ethereum-optimism/optimism/go/gas-oracle/bindings" + "github.com/ethereum-optimism/optimism/gas-oracle/bindings" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" diff --git a/go/gas-oracle/oracle/config.go b/gas-oracle/oracle/config.go similarity index 98% rename from go/gas-oracle/oracle/config.go rename to gas-oracle/oracle/config.go index 7b1f95876869..094c858a3132 100644 --- a/go/gas-oracle/oracle/config.go +++ b/gas-oracle/oracle/config.go @@ -6,7 +6,7 @@ import ( "math/big" "strings" - "github.com/ethereum-optimism/optimism/go/gas-oracle/flags" + "github.com/ethereum-optimism/optimism/gas-oracle/flags" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/log" diff --git a/go/gas-oracle/oracle/gas_price_oracle.go b/gas-oracle/oracle/gas_price_oracle.go similarity index 98% rename from go/gas-oracle/oracle/gas_price_oracle.go rename to gas-oracle/oracle/gas_price_oracle.go index d6faeb762fc4..06f5159a3b28 100644 --- a/go/gas-oracle/oracle/gas_price_oracle.go +++ b/gas-oracle/oracle/gas_price_oracle.go @@ -7,8 +7,8 @@ import ( "math/big" "time" - "github.com/ethereum-optimism/optimism/go/gas-oracle/bindings" - "github.com/ethereum-optimism/optimism/go/gas-oracle/gasprices" + "github.com/ethereum-optimism/optimism/gas-oracle/bindings" + "github.com/ethereum-optimism/optimism/gas-oracle/gasprices" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/crypto" diff --git a/go/gas-oracle/oracle/updater_interface.go b/gas-oracle/oracle/updater_interface.go similarity index 97% rename from go/gas-oracle/oracle/updater_interface.go rename to gas-oracle/oracle/updater_interface.go index 6f81fc74c753..12756f260803 100644 --- a/go/gas-oracle/oracle/updater_interface.go +++ b/gas-oracle/oracle/updater_interface.go @@ -6,8 +6,8 @@ import ( "math/big" "time" - "github.com/ethereum-optimism/optimism/go/gas-oracle/bindings" - ometrics "github.com/ethereum-optimism/optimism/go/gas-oracle/metrics" + "github.com/ethereum-optimism/optimism/gas-oracle/bindings" + ometrics "github.com/ethereum-optimism/optimism/gas-oracle/metrics" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common/hexutil" diff --git a/go/gas-oracle/oracle/updater_interface_test.go b/gas-oracle/oracle/updater_interface_test.go similarity index 98% rename from go/gas-oracle/oracle/updater_interface_test.go rename to gas-oracle/oracle/updater_interface_test.go index 17c8b7a3d5ac..d5e5bcf3f9ae 100644 --- a/go/gas-oracle/oracle/updater_interface_test.go +++ b/gas-oracle/oracle/updater_interface_test.go @@ -6,7 +6,7 @@ import ( "math/big" "testing" - "github.com/ethereum-optimism/optimism/go/gas-oracle/bindings" + "github.com/ethereum-optimism/optimism/gas-oracle/bindings" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind/backends" "github.com/ethereum/go-ethereum/core" diff --git a/go/gas-oracle/package.json b/gas-oracle/package.json similarity index 100% rename from go/gas-oracle/package.json rename to gas-oracle/package.json diff --git a/go.work b/go.work new file mode 100644 index 000000000000..b70fbe2b9435 --- /dev/null +++ b/go.work @@ -0,0 +1,17 @@ +go 1.18 + +use ( + ./batch-submitter + ./bss-core + ./gas-oracle + ./indexer + ./l2geth + ./l2geth-exporter + ./op-exporter + ./proxyd + ./teleportr +) + +replace github.com/ethereum-optimism/optimism/bss-core v0.0.0 => ./bss-core + +replace github.com/ethereum-optimism/optimism/l2geth v0.0.0 => ./l2geth diff --git a/go/batch-submitter/go.mod b/go/batch-submitter/go.mod deleted file mode 100644 index f853498dd172..000000000000 --- a/go/batch-submitter/go.mod +++ /dev/null @@ -1,17 +0,0 @@ -module github.com/ethereum-optimism/optimism/go/batch-submitter - -go 1.16 - -require ( - github.com/ethereum-optimism/optimism/go/bss-core v0.0.0 - github.com/ethereum-optimism/optimism/l2geth v1.0.0 - github.com/ethereum/go-ethereum v1.10.16 - github.com/getsentry/sentry-go v0.11.0 - github.com/prometheus/client_golang v1.11.0 - github.com/stretchr/testify v1.7.0 - github.com/urfave/cli v1.22.5 -) - -replace github.com/ethereum-optimism/optimism/l2geth => ../../l2geth - -replace github.com/ethereum-optimism/optimism/go/bss-core => ../bss-core diff --git a/go/l2geth-exporter/.envrc b/go/l2geth-exporter/.envrc deleted file mode 100644 index 998c9cdb0914..000000000000 --- a/go/l2geth-exporter/.envrc +++ /dev/null @@ -1 +0,0 @@ -dotenv .env diff --git a/go/stackman/.dockerignore b/go/stackman/.dockerignore deleted file mode 100644 index 0f046820f185..000000000000 --- a/go/stackman/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file -# Ignore build and test binaries. -bin/ -testbin/ diff --git a/go/stackman/.gitignore b/go/stackman/.gitignore deleted file mode 100644 index c0a7a54cac5a..000000000000 --- a/go/stackman/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ - -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib -bin -testbin/* - -# Test binary, build with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Kubernetes Generated files - skip generated files, except for vendored files - -!vendor/**/zz_generated.* - -# editor and IDE paraphernalia -.idea -*.swp -*.swo -*~ diff --git a/go/stackman/Dockerfile b/go/stackman/Dockerfile deleted file mode 100644 index 4152680b7425..000000000000 --- a/go/stackman/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# Build the manager binary -FROM golang:1.16 as builder - -WORKDIR /workspace -# Copy the Go Modules manifests -COPY go.mod go.mod -COPY go.sum go.sum -# cache deps before building and copying source so that we don't need to re-download as much -# and so that source changes don't invalidate our downloaded layer -RUN go mod download - -# Copy the go source -COPY main.go main.go -COPY api/ api/ -COPY controllers/ controllers/ - -# Build -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o manager main.go - -# Use distroless as minimal base image to package the manager binary -# Refer to https://github.com/GoogleContainerTools/distroless for more details -FROM gcr.io/distroless/static:nonroot -WORKDIR / -COPY --from=builder /workspace/manager . -USER 65532:65532 - -ENTRYPOINT ["/manager"] diff --git a/go/stackman/Makefile b/go/stackman/Makefile deleted file mode 100644 index aac5d2c5b02b..000000000000 --- a/go/stackman/Makefile +++ /dev/null @@ -1,201 +0,0 @@ -# VERSION defines the project version for the bundle. -# Update this value when you upgrade the version of your project. -# To re-generate a bundle for another specific version without changing the standard setup, you can: -# - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) -# - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 0.0.1 - -# CHANNELS define the bundle channels used in the bundle. -# Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") -# To re-generate a bundle for other specific channels without changing the standard setup, you can: -# - use the CHANNELS as arg of the bundle target (e.g make bundle CHANNELS=candidate,fast,stable) -# - use environment variables to overwrite this value (e.g export CHANNELS="candidate,fast,stable") -ifneq ($(origin CHANNELS), undefined) -BUNDLE_CHANNELS := --channels=$(CHANNELS) -endif - -# DEFAULT_CHANNEL defines the default channel used in the bundle. -# Add a new line here if you would like to change its default config. (E.g DEFAULT_CHANNEL = "stable") -# To re-generate a bundle for any other default channel without changing the default setup, you can: -# - use the DEFAULT_CHANNEL as arg of the bundle target (e.g make bundle DEFAULT_CHANNEL=stable) -# - use environment variables to overwrite this value (e.g export DEFAULT_CHANNEL="stable") -ifneq ($(origin DEFAULT_CHANNEL), undefined) -BUNDLE_DEFAULT_CHANNEL := --default-channel=$(DEFAULT_CHANNEL) -endif -BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL) - -# IMAGE_TAG_BASE defines the docker.io namespace and part of the image name for remote images. -# This variable is used to construct full image tags for bundle and catalog images. -# -# For example, running 'make bundle-build bundle-push catalog-build catalog-push' will build and push both -# optimism-stacks.net/stackman-bundle:$VERSION and optimism-stacks.net/stackman-catalog:$VERSION. -IMAGE_TAG_BASE ?= optimism-stacks.net/stackman - -# BUNDLE_IMG defines the image:tag used for the bundle. -# You can use it as an arg. (E.g make bundle-build BUNDLE_IMG=/:) -BUNDLE_IMG ?= $(IMAGE_TAG_BASE)-bundle:v$(VERSION) - -# Image URL to use all building/pushing image targets -IMG ?= ethereumoptimism/stackman-controller:latest -# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. -ENVTEST_K8S_VERSION = 1.22 - -# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) -ifeq (,$(shell go env GOBIN)) -GOBIN=$(shell go env GOPATH)/bin -else -GOBIN=$(shell go env GOBIN) -endif - -# Setting SHELL to bash allows bash commands to be executed by recipes. -# This is a requirement for 'setup-envtest.sh' in the test target. -# Options are set to exit when a recipe line exits non-zero or a piped command fails. -SHELL = /usr/bin/env bash -o pipefail -.SHELLFLAGS = -ec - -all: build - -##@ General - -# The help target prints out all targets with their descriptions organized -# beneath their categories. The categories are represented by '##@' and the -# target descriptions by '##'. The awk commands is responsible for reading the -# entire set of makefiles included in this invocation, looking for lines of the -# file as xyz: ## something, and then pretty-format the target and help. Then, -# if there's a line with ##@ something, that gets pretty-printed as a category. -# More info on the usage of ANSI control characters for terminal formatting: -# https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters -# More info on the awk command: -# http://linuxcommand.org/lc3_adv_awk.php - -help: ## Display this help. - @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) - -##@ Development - -manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. - $(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases - -generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations. - $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..." - -fmt: ## Run go fmt against code. - go fmt ./... - -vet: ## Run go vet against code. - go vet ./... - -test: manifests generate fmt vet envtest ## Run tests. - KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" go test ./... -coverprofile cover.out - -##@ Build - -build: generate fmt vet ## Build manager binary. - go build -o bin/manager main.go - -run: manifests generate fmt vet ## Run a controller from your host. - go run ./main.go - -docker-build: test ## Build docker image with the manager. - docker build -t ${IMG} . - -docker-push: ## Push docker image with the manager. - docker push ${IMG} - -##@ Deployment - -install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config. - $(KUSTOMIZE) build config/crd | kubectl apply -f - - -uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config. - $(KUSTOMIZE) build config/crd | kubectl delete -f - - -deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. - cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} - $(KUSTOMIZE) build config/default | kubectl apply -f - - -undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config. - $(KUSTOMIZE) build config/default | kubectl delete -f - - - -CONTROLLER_GEN = $(shell pwd)/bin/controller-gen -controller-gen: ## Download controller-gen locally if necessary. - $(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0) - -KUSTOMIZE = $(shell pwd)/bin/kustomize -kustomize: ## Download kustomize locally if necessary. - $(call go-get-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/v3@v3.8.7) - -ENVTEST = $(shell pwd)/bin/setup-envtest -envtest: ## Download envtest-setup locally if necessary. - $(call go-get-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest@latest) - -# go-get-tool will 'go get' any package $2 and install it to $1. -PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST)))) -define go-get-tool -@[ -f $(1) ] || { \ -set -e ;\ -TMP_DIR=$$(mktemp -d) ;\ -cd $$TMP_DIR ;\ -go mod init tmp ;\ -echo "Downloading $(2)" ;\ -GOBIN=$(PROJECT_DIR)/bin go get $(2) ;\ -rm -rf $$TMP_DIR ;\ -} -endef - -.PHONY: bundle -bundle: manifests kustomize ## Generate bundle manifests and metadata, then validate generated files. - operator-sdk generate kustomize manifests -q - cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG) - $(KUSTOMIZE) build config/manifests | operator-sdk generate bundle -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS) - operator-sdk bundle validate ./bundle - -.PHONY: bundle-build -bundle-build: ## Build the bundle image. - docker build -f bundle.Dockerfile -t $(BUNDLE_IMG) . - -.PHONY: bundle-push -bundle-push: ## Push the bundle image. - $(MAKE) docker-push IMG=$(BUNDLE_IMG) - -.PHONY: opm -OPM = ./bin/opm -opm: ## Download opm locally if necessary. -ifeq (,$(wildcard $(OPM))) -ifeq (,$(shell which opm 2>/dev/null)) - @{ \ - set -e ;\ - mkdir -p $(dir $(OPM)) ;\ - OS=$(shell go env GOOS) && ARCH=$(shell go env GOARCH) && \ - curl -sSLo $(OPM) https://github.com/operator-framework/operator-registry/releases/download/v1.15.1/$${OS}-$${ARCH}-opm ;\ - chmod +x $(OPM) ;\ - } -else -OPM = $(shell which opm) -endif -endif - -# A comma-separated list of bundle images (e.g. make catalog-build BUNDLE_IMGS=example.com/operator-bundle:v0.1.0,example.com/operator-bundle:v0.2.0). -# These images MUST exist in a registry and be pull-able. -BUNDLE_IMGS ?= $(BUNDLE_IMG) - -# The image tag given to the resulting catalog image (e.g. make catalog-build CATALOG_IMG=example.com/operator-catalog:v0.2.0). -CATALOG_IMG ?= $(IMAGE_TAG_BASE)-catalog:v$(VERSION) - -# Set CATALOG_BASE_IMG to an existing catalog image tag to add $BUNDLE_IMGS to that image. -ifneq ($(origin CATALOG_BASE_IMG), undefined) -FROM_INDEX_OPT := --from-index $(CATALOG_BASE_IMG) -endif - -# Build a catalog image by adding bundle images to an empty catalog using the operator package manager tool, 'opm'. -# This recipe invokes 'opm' in 'semver' bundle add mode. For more information on add modes, see: -# https://github.com/operator-framework/community-operators/blob/7f1438c/docs/packaging-operator.md#updating-your-existing-operator -.PHONY: catalog-build -catalog-build: opm ## Build a catalog image. - $(OPM) index add --container-tool docker --mode semver --tag $(CATALOG_IMG) --bundles $(BUNDLE_IMGS) $(FROM_INDEX_OPT) - -# Push the catalog image. -.PHONY: catalog-push -catalog-push: ## Push a catalog image. - $(MAKE) docker-push IMG=$(CATALOG_IMG) diff --git a/go/stackman/PROJECT b/go/stackman/PROJECT deleted file mode 100644 index 2255971210a2..000000000000 --- a/go/stackman/PROJECT +++ /dev/null @@ -1,73 +0,0 @@ -domain: optimism-stacks.net -layout: -- go.kubebuilder.io/v3 -plugins: - manifests.sdk.operatorframework.io/v2: {} - scorecard.sdk.operatorframework.io/v2: {} -projectName: stackman -repo: github.com/ethereum-optimism/optimism/go/stackman -resources: -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: CliqueL1 - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: Deployer - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: DataTransportLayer - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: Sequencer - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: BatchSubmitter - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: GasOracle - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -- api: - crdVersion: v1 - namespaced: true - controller: true - domain: optimism-stacks.net - group: stack - kind: Actor - path: github.com/ethereum-optimism/optimism/go/stackman/api/v1 - version: v1 -version: "3" diff --git a/go/stackman/api/v1/actor_types.go b/go/stackman/api/v1/actor_types.go deleted file mode 100644 index 07489ee1a756..000000000000 --- a/go/stackman/api/v1/actor_types.go +++ /dev/null @@ -1,74 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// ActorSpec defines the desired state of Actor -type ActorSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - Image string `json:"image,omitempty"` - L1URL string `json:"l1_url"` - L2URL string `json:"l2_url"` - PrivateKey *Valuer `json:"private_key,omitempty"` - AddressManagerAddress string `json:"address_manager_address"` - TestFilename string `json:"test_filename,omitempty"` - Concurrency int `json:"concurrency,omitempty"` - RunForMS int `json:"run_for_ms,omitempty"` - RunCount int `json:"run_count,omitempty"` - ThinkTimeMS int `json:"think_time_ms,omitempty"` - Env []corev1.EnvVar `json:"env,omitempty"` -} - -// ActorStatus defines the observed state of Actor -type ActorStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// Actor is the Schema for the actors API -type Actor struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ActorSpec `json:"spec,omitempty"` - Status ActorStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// ActorList contains a list of Actor -type ActorList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Actor `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Actor{}, &ActorList{}) -} diff --git a/go/stackman/api/v1/batchsubmitter_types.go b/go/stackman/api/v1/batchsubmitter_types.go deleted file mode 100644 index 812617894888..000000000000 --- a/go/stackman/api/v1/batchsubmitter_types.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// BatchSubmitterSpec defines the desired state of BatchSubmitter -type BatchSubmitterSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - Image string `json:"image,omitempty"` - L1URL string `json:"l1_url,omitempty"` - L1TimeoutSeconds int `json:"l1_timeout_seconds,omitempty"` - L2URL string `json:"l2_url,omitempty"` - L2TimeoutSeconds int `json:"l2_timeout_seconds,omitempty"` - DeployerURL string `json:"deployer_url,omitempty"` - DeployerTimeoutSeconds int `json:"deployer_timeout_seconds,omitempty"` - Env []corev1.EnvVar `json:"env,omitempty"` -} - -// BatchSubmitterStatus defines the observed state of BatchSubmitter -type BatchSubmitterStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// BatchSubmitter is the Schema for the batchsubmitters API -type BatchSubmitter struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec BatchSubmitterSpec `json:"spec,omitempty"` - Status BatchSubmitterStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// BatchSubmitterList contains a list of BatchSubmitter -type BatchSubmitterList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []BatchSubmitter `json:"items"` -} - -func init() { - SchemeBuilder.Register(&BatchSubmitter{}, &BatchSubmitterList{}) -} diff --git a/go/stackman/api/v1/cliquel1_types.go b/go/stackman/api/v1/cliquel1_types.go deleted file mode 100644 index 583af5a4dc53..000000000000 --- a/go/stackman/api/v1/cliquel1_types.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// CliqueL1Spec defines the desired state of CliqueL1 -type CliqueL1Spec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - Image string `json:"image,omitempty"` - GenesisFile *Valuer `json:"genesis_file,omitempty"` - SealerPrivateKey *Valuer `json:"sealer_private_key"` - SealerAddress string `json:"sealer_address,omitempty"` - ChainID int `json:"chain_id,omitempty"` - DataPVC *PVCConfig `json:"data_pvc,omitempty"` - AdditionalArgs []string `json:"additional_args,omitempty"` -} - -// CliqueL1Status defines the observed state of CliqueL1 -type CliqueL1Status struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// CliqueL1 is the Schema for the cliquel1s API -type CliqueL1 struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec CliqueL1Spec `json:"spec,omitempty"` - Status CliqueL1Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// CliqueL1List contains a list of CliqueL1 -type CliqueL1List struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []CliqueL1 `json:"items"` -} - -func init() { - SchemeBuilder.Register(&CliqueL1{}, &CliqueL1List{}) -} diff --git a/go/stackman/api/v1/common.go b/go/stackman/api/v1/common.go deleted file mode 100644 index 64053334ca08..000000000000 --- a/go/stackman/api/v1/common.go +++ /dev/null @@ -1,33 +0,0 @@ -package v1 - -import ( - "gopkg.in/yaml.v2" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" -) - -type Valuer struct { - Value string `json:"value,omitempty"` - ValueFrom *corev1.EnvVarSource `json:"value_from,omitempty"` -} - -func (v *Valuer) String() string { - out, err := yaml.Marshal(v) - if err != nil { - panic(err) - } - return string(out) -} - -func (v *Valuer) EnvVar(name string) corev1.EnvVar { - return corev1.EnvVar{ - Name: name, - Value: v.Value, - ValueFrom: v.ValueFrom, - } -} - -type PVCConfig struct { - Name string `json:"name"` - Storage *resource.Quantity `json:"storage,omitempty"` -} diff --git a/go/stackman/api/v1/datatransportlayer_types.go b/go/stackman/api/v1/datatransportlayer_types.go deleted file mode 100644 index 75894cf75818..000000000000 --- a/go/stackman/api/v1/datatransportlayer_types.go +++ /dev/null @@ -1,70 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// DataTransportLayerSpec defines the desired state of DataTransportLayer -type DataTransportLayerSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - Image string `json:"image,omitempty"` - L1URL string `json:"l1_url,omitempty"` - L1TimeoutSeconds int `json:"l1_timeout_seconds,omitempty"` - DeployerURL string `json:"deployer_url,omitempty"` - DeployerTimeoutSeconds int `json:"deployer_timeout_seconds,omitempty"` - DataPVC *PVCConfig `json:"data_pvc,omitempty"` - Env []v1.EnvVar `json:"env,omitempty"` -} - -// DataTransportLayerStatus defines the observed state of DataTransportLayer -type DataTransportLayerStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// DataTransportLayer is the Schema for the datatransportlayers API -type DataTransportLayer struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec DataTransportLayerSpec `json:"spec,omitempty"` - Status DataTransportLayerStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// DataTransportLayerList contains a list of DataTransportLayer -type DataTransportLayerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []DataTransportLayer `json:"items"` -} - -func init() { - SchemeBuilder.Register(&DataTransportLayer{}, &DataTransportLayerList{}) -} diff --git a/go/stackman/api/v1/deployer_types.go b/go/stackman/api/v1/deployer_types.go deleted file mode 100644 index 994f1e9b5a1e..000000000000 --- a/go/stackman/api/v1/deployer_types.go +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// DeployerSpec defines the desired state of Deployer -type DeployerSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - Image string `json:"image,omitempty"` - L1URL string `json:"l1_url,omitempty"` - L1TimeoutSeconds int `json:"l1_timeout_seconds,omitempty"` - Env []corev1.EnvVar `json:"env,omitempty"` -} - -// DeployerStatus defines the observed state of Deployer -type DeployerStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// Deployer is the Schema for the deployers API -type Deployer struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec DeployerSpec `json:"spec,omitempty"` - Status DeployerStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// DeployerList contains a list of Deployer -type DeployerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Deployer `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Deployer{}, &DeployerList{}) -} diff --git a/go/stackman/api/v1/gasoracle_types.go b/go/stackman/api/v1/gasoracle_types.go deleted file mode 100644 index 5b3ee4dc8b7a..000000000000 --- a/go/stackman/api/v1/gasoracle_types.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// GasOracleSpec defines the desired state of GasOracle -type GasOracleSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - Image string `json:"image,omitempty"` - L1URL string `json:"l1_url,omitempty"` - L1TimeoutSeconds int `json:"l1_timeout_seconds,omitempty"` - L2URL string `json:"l2_url,omitempty"` - L2TimeoutSeconds int `json:"l2_timeout_seconds,omitempty"` - Env []v1.EnvVar `json:"env,omitempty"` -} - -// GasOracleStatus defines the observed state of GasOracle -type GasOracleStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// GasOracle is the Schema for the gasoracles API -type GasOracle struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec GasOracleSpec `json:"spec,omitempty"` - Status GasOracleStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// GasOracleList contains a list of GasOracle -type GasOracleList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []GasOracle `json:"items"` -} - -func init() { - SchemeBuilder.Register(&GasOracle{}, &GasOracleList{}) -} diff --git a/go/stackman/api/v1/groupversion_info.go b/go/stackman/api/v1/groupversion_info.go deleted file mode 100644 index 54b9e0a82c15..000000000000 --- a/go/stackman/api/v1/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1 contains API Schema definitions for the stack v1 API group -//+kubebuilder:object:generate=true -//+groupName=stack.optimism-stacks.net -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "stack.optimism-stacks.net", Version: "v1"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/go/stackman/api/v1/sequencer_types.go b/go/stackman/api/v1/sequencer_types.go deleted file mode 100644 index a5a544725be4..000000000000 --- a/go/stackman/api/v1/sequencer_types.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// SequencerSpec defines the desired state of Sequencer -type SequencerSpec struct { - // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - // Important: Run "make" to regenerate code after modifying this file - - Image string `json:"image,omitempty"` - L1URL string `json:"l1_url,omitempty"` - L1TimeoutSeconds int `json:"l1_timeout_seconds,omitempty"` - DeployerURL string `json:"deployer_url,omitempty"` - DeployerTimeoutSeconds int `json:"deployer_timeout_seconds,omitempty"` - DTLURL string `json:"dtl_url,omitempty"` - DTLTimeoutSeconds int `json:"dtl_timeout_seconds,omitempty"` - DataPVC *PVCConfig `json:"data_pvc,omitempty"` - Env []corev1.EnvVar `json:"env,omitempty"` - AdditionalArgs []string `json:"additional_args,omitempty"` -} - -// SequencerStatus defines the observed state of Sequencer -type SequencerStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// Sequencer is the Schema for the sequencers API -type Sequencer struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec SequencerSpec `json:"spec,omitempty"` - Status SequencerStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// SequencerList contains a list of Sequencer -type SequencerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Sequencer `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Sequencer{}, &SequencerList{}) -} diff --git a/go/stackman/api/v1/zz_generated.deepcopy.go b/go/stackman/api/v1/zz_generated.deepcopy.go deleted file mode 100644 index fb61b6e65a47..000000000000 --- a/go/stackman/api/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,772 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Actor) DeepCopyInto(out *Actor) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Actor. -func (in *Actor) DeepCopy() *Actor { - if in == nil { - return nil - } - out := new(Actor) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Actor) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActorList) DeepCopyInto(out *ActorList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Actor, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorList. -func (in *ActorList) DeepCopy() *ActorList { - if in == nil { - return nil - } - out := new(ActorList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActorList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActorSpec) DeepCopyInto(out *ActorSpec) { - *out = *in - if in.PrivateKey != nil { - in, out := &in.PrivateKey, &out.PrivateKey - *out = new(Valuer) - (*in).DeepCopyInto(*out) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorSpec. -func (in *ActorSpec) DeepCopy() *ActorSpec { - if in == nil { - return nil - } - out := new(ActorSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActorStatus) DeepCopyInto(out *ActorStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorStatus. -func (in *ActorStatus) DeepCopy() *ActorStatus { - if in == nil { - return nil - } - out := new(ActorStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BatchSubmitter) DeepCopyInto(out *BatchSubmitter) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BatchSubmitter. -func (in *BatchSubmitter) DeepCopy() *BatchSubmitter { - if in == nil { - return nil - } - out := new(BatchSubmitter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BatchSubmitter) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BatchSubmitterList) DeepCopyInto(out *BatchSubmitterList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]BatchSubmitter, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BatchSubmitterList. -func (in *BatchSubmitterList) DeepCopy() *BatchSubmitterList { - if in == nil { - return nil - } - out := new(BatchSubmitterList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BatchSubmitterList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BatchSubmitterSpec) DeepCopyInto(out *BatchSubmitterSpec) { - *out = *in - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BatchSubmitterSpec. -func (in *BatchSubmitterSpec) DeepCopy() *BatchSubmitterSpec { - if in == nil { - return nil - } - out := new(BatchSubmitterSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BatchSubmitterStatus) DeepCopyInto(out *BatchSubmitterStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BatchSubmitterStatus. -func (in *BatchSubmitterStatus) DeepCopy() *BatchSubmitterStatus { - if in == nil { - return nil - } - out := new(BatchSubmitterStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CliqueL1) DeepCopyInto(out *CliqueL1) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CliqueL1. -func (in *CliqueL1) DeepCopy() *CliqueL1 { - if in == nil { - return nil - } - out := new(CliqueL1) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CliqueL1) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CliqueL1List) DeepCopyInto(out *CliqueL1List) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]CliqueL1, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CliqueL1List. -func (in *CliqueL1List) DeepCopy() *CliqueL1List { - if in == nil { - return nil - } - out := new(CliqueL1List) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CliqueL1List) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CliqueL1Spec) DeepCopyInto(out *CliqueL1Spec) { - *out = *in - if in.GenesisFile != nil { - in, out := &in.GenesisFile, &out.GenesisFile - *out = new(Valuer) - (*in).DeepCopyInto(*out) - } - if in.SealerPrivateKey != nil { - in, out := &in.SealerPrivateKey, &out.SealerPrivateKey - *out = new(Valuer) - (*in).DeepCopyInto(*out) - } - if in.DataPVC != nil { - in, out := &in.DataPVC, &out.DataPVC - *out = new(PVCConfig) - (*in).DeepCopyInto(*out) - } - if in.AdditionalArgs != nil { - in, out := &in.AdditionalArgs, &out.AdditionalArgs - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CliqueL1Spec. -func (in *CliqueL1Spec) DeepCopy() *CliqueL1Spec { - if in == nil { - return nil - } - out := new(CliqueL1Spec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CliqueL1Status) DeepCopyInto(out *CliqueL1Status) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CliqueL1Status. -func (in *CliqueL1Status) DeepCopy() *CliqueL1Status { - if in == nil { - return nil - } - out := new(CliqueL1Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTransportLayer) DeepCopyInto(out *DataTransportLayer) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTransportLayer. -func (in *DataTransportLayer) DeepCopy() *DataTransportLayer { - if in == nil { - return nil - } - out := new(DataTransportLayer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DataTransportLayer) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTransportLayerList) DeepCopyInto(out *DataTransportLayerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]DataTransportLayer, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTransportLayerList. -func (in *DataTransportLayerList) DeepCopy() *DataTransportLayerList { - if in == nil { - return nil - } - out := new(DataTransportLayerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DataTransportLayerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTransportLayerSpec) DeepCopyInto(out *DataTransportLayerSpec) { - *out = *in - if in.DataPVC != nil { - in, out := &in.DataPVC, &out.DataPVC - *out = new(PVCConfig) - (*in).DeepCopyInto(*out) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTransportLayerSpec. -func (in *DataTransportLayerSpec) DeepCopy() *DataTransportLayerSpec { - if in == nil { - return nil - } - out := new(DataTransportLayerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTransportLayerStatus) DeepCopyInto(out *DataTransportLayerStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTransportLayerStatus. -func (in *DataTransportLayerStatus) DeepCopy() *DataTransportLayerStatus { - if in == nil { - return nil - } - out := new(DataTransportLayerStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Deployer) DeepCopyInto(out *Deployer) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployer. -func (in *Deployer) DeepCopy() *Deployer { - if in == nil { - return nil - } - out := new(Deployer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Deployer) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeployerList) DeepCopyInto(out *DeployerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Deployer, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeployerList. -func (in *DeployerList) DeepCopy() *DeployerList { - if in == nil { - return nil - } - out := new(DeployerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeployerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeployerSpec) DeepCopyInto(out *DeployerSpec) { - *out = *in - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeployerSpec. -func (in *DeployerSpec) DeepCopy() *DeployerSpec { - if in == nil { - return nil - } - out := new(DeployerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeployerStatus) DeepCopyInto(out *DeployerStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeployerStatus. -func (in *DeployerStatus) DeepCopy() *DeployerStatus { - if in == nil { - return nil - } - out := new(DeployerStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GasOracle) DeepCopyInto(out *GasOracle) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GasOracle. -func (in *GasOracle) DeepCopy() *GasOracle { - if in == nil { - return nil - } - out := new(GasOracle) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GasOracle) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GasOracleList) DeepCopyInto(out *GasOracleList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]GasOracle, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GasOracleList. -func (in *GasOracleList) DeepCopy() *GasOracleList { - if in == nil { - return nil - } - out := new(GasOracleList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GasOracleList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GasOracleSpec) DeepCopyInto(out *GasOracleSpec) { - *out = *in - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GasOracleSpec. -func (in *GasOracleSpec) DeepCopy() *GasOracleSpec { - if in == nil { - return nil - } - out := new(GasOracleSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GasOracleStatus) DeepCopyInto(out *GasOracleStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GasOracleStatus. -func (in *GasOracleStatus) DeepCopy() *GasOracleStatus { - if in == nil { - return nil - } - out := new(GasOracleStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PVCConfig) DeepCopyInto(out *PVCConfig) { - *out = *in - if in.Storage != nil { - in, out := &in.Storage, &out.Storage - x := (*in).DeepCopy() - *out = &x - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PVCConfig. -func (in *PVCConfig) DeepCopy() *PVCConfig { - if in == nil { - return nil - } - out := new(PVCConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Sequencer) DeepCopyInto(out *Sequencer) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sequencer. -func (in *Sequencer) DeepCopy() *Sequencer { - if in == nil { - return nil - } - out := new(Sequencer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Sequencer) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SequencerList) DeepCopyInto(out *SequencerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Sequencer, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SequencerList. -func (in *SequencerList) DeepCopy() *SequencerList { - if in == nil { - return nil - } - out := new(SequencerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SequencerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SequencerSpec) DeepCopyInto(out *SequencerSpec) { - *out = *in - if in.DataPVC != nil { - in, out := &in.DataPVC, &out.DataPVC - *out = new(PVCConfig) - (*in).DeepCopyInto(*out) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.AdditionalArgs != nil { - in, out := &in.AdditionalArgs, &out.AdditionalArgs - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SequencerSpec. -func (in *SequencerSpec) DeepCopy() *SequencerSpec { - if in == nil { - return nil - } - out := new(SequencerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SequencerStatus) DeepCopyInto(out *SequencerStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SequencerStatus. -func (in *SequencerStatus) DeepCopy() *SequencerStatus { - if in == nil { - return nil - } - out := new(SequencerStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Valuer) DeepCopyInto(out *Valuer) { - *out = *in - if in.ValueFrom != nil { - in, out := &in.ValueFrom, &out.ValueFrom - *out = new(corev1.EnvVarSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Valuer. -func (in *Valuer) DeepCopy() *Valuer { - if in == nil { - return nil - } - out := new(Valuer) - in.DeepCopyInto(out) - return out -} diff --git a/go/stackman/config/crd/bases/stack.optimism-stacks.net_cliquel1s.yaml b/go/stackman/config/crd/bases/stack.optimism-stacks.net_cliquel1s.yaml deleted file mode 100644 index 48e5709f1ab4..000000000000 --- a/go/stackman/config/crd/bases/stack.optimism-stacks.net_cliquel1s.yaml +++ /dev/null @@ -1,59 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.7.0 - creationTimestamp: null - name: cliquel1s.stack.optimism-stacks.net -spec: - group: stack.optimism-stacks.net - names: - kind: CliqueL1 - listKind: CliqueL1List - plural: cliquel1s - singular: cliquel1 - scope: Namespaced - versions: - - name: v1 - schema: - openAPIV3Schema: - description: CliqueL1 is the Schema for the cliquel1s API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: CliqueL1Spec defines the desired state of CliqueL1 - type: object - status: - description: CliqueL1Status defines the observed state of CliqueL1 - properties: - pod_names: - items: - type: string - type: array - required: - - pod_names - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/go/stackman/config/crd/kustomization.yaml b/go/stackman/config/crd/kustomization.yaml deleted file mode 100644 index fc099b3743e7..000000000000 --- a/go/stackman/config/crd/kustomization.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# This kustomization.yaml is not intended to be run by itself, -# since it depends on service name and namespace that are out of this kustomize package. -# It should be run by config/default -resources: -- bases/stack.optimism-stacks.net_cliquel1s.yaml -- bases/stack.optimism-stacks.net_deployers.yaml -- bases/stack.optimism-stacks.net_datatransportlayers.yaml -- bases/stack.optimism-stacks.net_sequencers.yaml -- bases/stack.optimism-stacks.net_batchsubmitters.yaml -- bases/stack.optimism-stacks.net_gasoracles.yaml -- bases/stack.optimism-stacks.net_actors.yaml -#+kubebuilder:scaffold:crdkustomizeresource - -patchesStrategicMerge: -# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix. -# patches here are for enabling the conversion webhook for each CRD -#- patches/webhook_in_cliquel1s.yaml -#- patches/webhook_in_deployers.yaml -#- patches/webhook_in_datatransportlayers.yaml -#- patches/webhook_in_sequencers.yaml -#- patches/webhook_in_batchsubmitters.yaml -#- patches/webhook_in_gasoracles.yaml -#- patches/webhook_in_actors.yaml -#+kubebuilder:scaffold:crdkustomizewebhookpatch - -# [CERTMANAGER] To enable cert-manager, uncomment all the sections with [CERTMANAGER] prefix. -# patches here are for enabling the CA injection for each CRD -#- patches/cainjection_in_cliquel1s.yaml -#- patches/cainjection_in_deployers.yaml -#- patches/cainjection_in_datatransportlayers.yaml -#- patches/cainjection_in_sequencers.yaml -#- patches/cainjection_in_batchsubmitters.yaml -#- patches/cainjection_in_gasoracles.yaml -#- patches/cainjection_in_actors.yaml -#+kubebuilder:scaffold:crdkustomizecainjectionpatch - -# the following config is for teaching kustomize how to do kustomization for CRDs. -configurations: -- kustomizeconfig.yaml diff --git a/go/stackman/config/crd/kustomizeconfig.yaml b/go/stackman/config/crd/kustomizeconfig.yaml deleted file mode 100644 index ec5c150a9df2..000000000000 --- a/go/stackman/config/crd/kustomizeconfig.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# This file is for teaching kustomize how to substitute name and namespace reference in CRD -nameReference: -- kind: Service - version: v1 - fieldSpecs: - - kind: CustomResourceDefinition - version: v1 - group: apiextensions.k8s.io - path: spec/conversion/webhook/clientConfig/service/name - -namespace: -- kind: CustomResourceDefinition - version: v1 - group: apiextensions.k8s.io - path: spec/conversion/webhook/clientConfig/service/namespace - create: false - -varReference: -- path: metadata/annotations diff --git a/go/stackman/config/crd/patches/cainjection_in_actors.yaml b/go/stackman/config/crd/patches/cainjection_in_actors.yaml deleted file mode 100644 index 4c3d6d38d590..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_actors.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: actors.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/cainjection_in_batchsubmitters.yaml b/go/stackman/config/crd/patches/cainjection_in_batchsubmitters.yaml deleted file mode 100644 index f415991b3948..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_batchsubmitters.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: batchsubmitters.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/cainjection_in_cliquel1s.yaml b/go/stackman/config/crd/patches/cainjection_in_cliquel1s.yaml deleted file mode 100644 index 4bec054d051b..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_cliquel1s.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: cliquel1s.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/cainjection_in_datatransportlayers.yaml b/go/stackman/config/crd/patches/cainjection_in_datatransportlayers.yaml deleted file mode 100644 index cc2f0d8a7780..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_datatransportlayers.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: datatransportlayers.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/cainjection_in_deployers.yaml b/go/stackman/config/crd/patches/cainjection_in_deployers.yaml deleted file mode 100644 index d7f85e39485f..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_deployers.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: deployers.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/cainjection_in_gasoracles.yaml b/go/stackman/config/crd/patches/cainjection_in_gasoracles.yaml deleted file mode 100644 index a0e86c51e087..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_gasoracles.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: gasoracles.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/cainjection_in_sequencers.yaml b/go/stackman/config/crd/patches/cainjection_in_sequencers.yaml deleted file mode 100644 index 9a7dff073372..000000000000 --- a/go/stackman/config/crd/patches/cainjection_in_sequencers.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# The following patch adds a directive for certmanager to inject CA into the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) - name: sequencers.stack.optimism-stacks.net diff --git a/go/stackman/config/crd/patches/webhook_in_actors.yaml b/go/stackman/config/crd/patches/webhook_in_actors.yaml deleted file mode 100644 index 24b358d9bbec..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_actors.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: actors.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/crd/patches/webhook_in_batchsubmitters.yaml b/go/stackman/config/crd/patches/webhook_in_batchsubmitters.yaml deleted file mode 100644 index e1d84f68384c..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_batchsubmitters.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: batchsubmitters.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/crd/patches/webhook_in_cliquel1s.yaml b/go/stackman/config/crd/patches/webhook_in_cliquel1s.yaml deleted file mode 100644 index 5c62467b7fd8..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_cliquel1s.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: cliquel1s.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/crd/patches/webhook_in_datatransportlayers.yaml b/go/stackman/config/crd/patches/webhook_in_datatransportlayers.yaml deleted file mode 100644 index 76112e42f86a..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_datatransportlayers.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: datatransportlayers.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/crd/patches/webhook_in_deployers.yaml b/go/stackman/config/crd/patches/webhook_in_deployers.yaml deleted file mode 100644 index 101f6c4d4c0d..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_deployers.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: deployers.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/crd/patches/webhook_in_gasoracles.yaml b/go/stackman/config/crd/patches/webhook_in_gasoracles.yaml deleted file mode 100644 index fd401b21b867..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_gasoracles.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: gasoracles.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/crd/patches/webhook_in_sequencers.yaml b/go/stackman/config/crd/patches/webhook_in_sequencers.yaml deleted file mode 100644 index 7f7a00b1d126..000000000000 --- a/go/stackman/config/crd/patches/webhook_in_sequencers.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# The following patch enables a conversion webhook for the CRD -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: sequencers.stack.optimism-stacks.net -spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - namespace: system - name: webhook-service - path: /convert - conversionReviewVersions: - - v1 diff --git a/go/stackman/config/default/kustomization.yaml b/go/stackman/config/default/kustomization.yaml deleted file mode 100644 index 16c3a646024c..000000000000 --- a/go/stackman/config/default/kustomization.yaml +++ /dev/null @@ -1,74 +0,0 @@ -# Adds namespace to all resources. -namespace: stackman-system - -# Value of this field is prepended to the -# names of all resources, e.g. a deployment named -# "wordpress" becomes "alices-wordpress". -# Note that it should also match with the prefix (text before '-') of the namespace -# field above. -namePrefix: stackman- - -# Labels to add to all resources and selectors. -#commonLabels: -# someName: someValue - -bases: -- ../crd -- ../rbac -- ../manager -# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in -# crd/kustomization.yaml -#- ../webhook -# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER'. 'WEBHOOK' components are required. -#- ../certmanager -# [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'. -- ../prometheus - -#patchesStrategicMerge: -# Protect the /metrics endpoint by putting it behind auth. -# If you want your controller-manager to expose the /metrics -# endpoint w/o any authn/z, please comment the following line. -#- manager_auth_proxy_patch.yaml - -# Mount the controller config file for loading manager configurations -# through a ComponentConfig type -#- manager_config_patch.yaml - -# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in -# crd/kustomization.yaml -#- manager_webhook_patch.yaml - -# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER'. -# Uncomment 'CERTMANAGER' sections in crd/kustomization.yaml to enable the CA injection in the admission webhooks. -# 'CERTMANAGER' needs to be enabled to use ca injection -#- webhookcainjection_patch.yaml - -# the following config is for teaching kustomize how to do var substitution -vars: -# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix. -#- name: CERTIFICATE_NAMESPACE # namespace of the certificate CR -# objref: -# kind: Certificate -# group: cert-manager.io -# version: v1 -# name: serving-cert # this name should match the one in certificate.yaml -# fieldref: -# fieldpath: metadata.namespace -#- name: CERTIFICATE_NAME -# objref: -# kind: Certificate -# group: cert-manager.io -# version: v1 -# name: serving-cert # this name should match the one in certificate.yaml -#- name: SERVICE_NAMESPACE # namespace of the service -# objref: -# kind: Service -# version: v1 -# name: webhook-service -# fieldref: -# fieldpath: metadata.namespace -#- name: SERVICE_NAME -# objref: -# kind: Service -# version: v1 -# name: webhook-service diff --git a/go/stackman/config/default/manager_auth_proxy_patch.yaml b/go/stackman/config/default/manager_auth_proxy_patch.yaml deleted file mode 100644 index 4e2232fa1a93..000000000000 --- a/go/stackman/config/default/manager_auth_proxy_patch.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# This patch inject a sidecar container which is a HTTP proxy for the -# controller manager, it performs RBAC authorization against the Kubernetes API using SubjectAccessReviews. -apiVersion: apps/v1 -kind: Deployment -metadata: - name: controller-manager - namespace: system -spec: - template: - spec: - containers: - - name: kube-rbac-proxy - image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 - args: - - "--secure-listen-address=0.0.0.0:8443" - - "--upstream=http://127.0.0.1:8080/" - - "--logtostderr=true" - - "--v=10" - ports: - - containerPort: 8443 - protocol: TCP - name: https - - name: manager - args: - - "--health-probe-bind-address=:8081" - - "--metrics-bind-address=127.0.0.1:8080" - - "--leader-elect" diff --git a/go/stackman/config/default/manager_config_patch.yaml b/go/stackman/config/default/manager_config_patch.yaml deleted file mode 100644 index 6c400155cfbc..000000000000 --- a/go/stackman/config/default/manager_config_patch.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: controller-manager - namespace: system -spec: - template: - spec: - containers: - - name: manager - args: - - "--config=controller_manager_config.yaml" - volumeMounts: - - name: manager-config - mountPath: /controller_manager_config.yaml - subPath: controller_manager_config.yaml - volumes: - - name: manager-config - configMap: - name: manager-config diff --git a/go/stackman/config/manager/controller_manager_config.yaml b/go/stackman/config/manager/controller_manager_config.yaml deleted file mode 100644 index 0c0a6b383298..000000000000 --- a/go/stackman/config/manager/controller_manager_config.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: controller-runtime.sigs.k8s.io/v1alpha1 -kind: ControllerManagerConfig -health: - healthProbeBindAddress: :8081 -metrics: - bindAddress: 127.0.0.1:8080 -webhook: - port: 9443 -leaderElection: - leaderElect: true - resourceName: 8103f40b.optimism-stacks.net diff --git a/go/stackman/config/manager/kustomization.yaml b/go/stackman/config/manager/kustomization.yaml deleted file mode 100644 index 5e793dd19fcd..000000000000 --- a/go/stackman/config/manager/kustomization.yaml +++ /dev/null @@ -1,16 +0,0 @@ -resources: -- manager.yaml - -generatorOptions: - disableNameSuffixHash: true - -configMapGenerator: -- files: - - controller_manager_config.yaml - name: manager-config -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -images: -- name: controller - newName: controller - newTag: latest diff --git a/go/stackman/config/manager/manager.yaml b/go/stackman/config/manager/manager.yaml deleted file mode 100644 index 202624427c27..000000000000 --- a/go/stackman/config/manager/manager.yaml +++ /dev/null @@ -1,56 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - labels: - control-plane: controller-manager - name: system ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: controller-manager - namespace: system - labels: - control-plane: controller-manager -spec: - selector: - matchLabels: - control-plane: controller-manager - replicas: 1 - template: - metadata: - labels: - control-plane: controller-manager - spec: - securityContext: - runAsNonRoot: true - containers: - - command: - - /manager - args: - - --leader-elect - image: controller:latest - name: manager - securityContext: - allowPrivilegeEscalation: false - livenessProbe: - httpGet: - path: /healthz - port: 8081 - initialDelaySeconds: 15 - periodSeconds: 20 - readinessProbe: - httpGet: - path: /readyz - port: 8081 - initialDelaySeconds: 5 - periodSeconds: 10 - resources: - limits: - cpu: 200m - memory: 100Mi - requests: - cpu: 100m - memory: 20Mi - serviceAccountName: controller-manager - terminationGracePeriodSeconds: 10 diff --git a/go/stackman/config/manifests/kustomization.yaml b/go/stackman/config/manifests/kustomization.yaml deleted file mode 100644 index de8f30bab083..000000000000 --- a/go/stackman/config/manifests/kustomization.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# These resources constitute the fully configured set of manifests -# used to generate the 'manifests/' directory in a bundle. -resources: -- bases/stackman.clusterserviceversion.yaml -- ../default -- ../samples -- ../scorecard - -# [WEBHOOK] To enable webhooks, uncomment all the sections with [WEBHOOK] prefix. -# Do NOT uncomment sections with prefix [CERTMANAGER], as OLM does not support cert-manager. -# These patches remove the unnecessary "cert" volume and its manager container volumeMount. -#patchesJson6902: -#- target: -# group: apps -# version: v1 -# kind: Deployment -# name: controller-manager -# namespace: system -# patch: |- -# # Remove the manager container's "cert" volumeMount, since OLM will create and mount a set of certs. -# # Update the indices in this path if adding or removing containers/volumeMounts in the manager's Deployment. -# - op: remove -# path: /spec/template/spec/containers/1/volumeMounts/0 -# # Remove the "cert" volume, since OLM will create and mount a set of certs. -# # Update the indices in this path if adding or removing volumes in the manager's Deployment. -# - op: remove -# path: /spec/template/spec/volumes/0 diff --git a/go/stackman/config/prometheus/kustomization.yaml b/go/stackman/config/prometheus/kustomization.yaml deleted file mode 100644 index ed137168a1db..000000000000 --- a/go/stackman/config/prometheus/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: -- monitor.yaml diff --git a/go/stackman/config/prometheus/monitor.yaml b/go/stackman/config/prometheus/monitor.yaml deleted file mode 100644 index d19136ae7101..000000000000 --- a/go/stackman/config/prometheus/monitor.yaml +++ /dev/null @@ -1,20 +0,0 @@ - -# Prometheus Monitor Service (Metrics) -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - labels: - control-plane: controller-manager - name: controller-manager-metrics-monitor - namespace: system -spec: - endpoints: - - path: /metrics - port: https - scheme: https - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - tlsConfig: - insecureSkipVerify: true - selector: - matchLabels: - control-plane: controller-manager diff --git a/go/stackman/config/rbac/actor_editor_role.yaml b/go/stackman/config/rbac/actor_editor_role.yaml deleted file mode 100644 index 94eaa0684e1c..000000000000 --- a/go/stackman/config/rbac/actor_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit actors. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: actor-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - actors - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - actors/status - verbs: - - get diff --git a/go/stackman/config/rbac/actor_viewer_role.yaml b/go/stackman/config/rbac/actor_viewer_role.yaml deleted file mode 100644 index bd7924aae085..000000000000 --- a/go/stackman/config/rbac/actor_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view actors. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: actor-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - actors - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - actors/status - verbs: - - get diff --git a/go/stackman/config/rbac/auth_proxy_client_clusterrole.yaml b/go/stackman/config/rbac/auth_proxy_client_clusterrole.yaml deleted file mode 100644 index 51a75db47a5b..000000000000 --- a/go/stackman/config/rbac/auth_proxy_client_clusterrole.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: metrics-reader -rules: -- nonResourceURLs: - - "/metrics" - verbs: - - get diff --git a/go/stackman/config/rbac/auth_proxy_role.yaml b/go/stackman/config/rbac/auth_proxy_role.yaml deleted file mode 100644 index 80e1857c594f..000000000000 --- a/go/stackman/config/rbac/auth_proxy_role.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: proxy-role -rules: -- apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create -- apiGroups: - - authorization.k8s.io - resources: - - subjectaccessreviews - verbs: - - create diff --git a/go/stackman/config/rbac/auth_proxy_role_binding.yaml b/go/stackman/config/rbac/auth_proxy_role_binding.yaml deleted file mode 100644 index ec7acc0a1b79..000000000000 --- a/go/stackman/config/rbac/auth_proxy_role_binding.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: proxy-rolebinding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: proxy-role -subjects: -- kind: ServiceAccount - name: controller-manager - namespace: system diff --git a/go/stackman/config/rbac/auth_proxy_service.yaml b/go/stackman/config/rbac/auth_proxy_service.yaml deleted file mode 100644 index 71f1797279e5..000000000000 --- a/go/stackman/config/rbac/auth_proxy_service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - control-plane: controller-manager - name: controller-manager-metrics-service - namespace: system -spec: - ports: - - name: https - port: 8443 - protocol: TCP - targetPort: https - selector: - control-plane: controller-manager diff --git a/go/stackman/config/rbac/batchsubmitter_editor_role.yaml b/go/stackman/config/rbac/batchsubmitter_editor_role.yaml deleted file mode 100644 index a5f374298bbe..000000000000 --- a/go/stackman/config/rbac/batchsubmitter_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit batchsubmitters. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: batchsubmitter-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - batchsubmitters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - batchsubmitters/status - verbs: - - get diff --git a/go/stackman/config/rbac/batchsubmitter_viewer_role.yaml b/go/stackman/config/rbac/batchsubmitter_viewer_role.yaml deleted file mode 100644 index ad073ced2366..000000000000 --- a/go/stackman/config/rbac/batchsubmitter_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view batchsubmitters. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: batchsubmitter-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - batchsubmitters - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - batchsubmitters/status - verbs: - - get diff --git a/go/stackman/config/rbac/cliquel1_editor_role.yaml b/go/stackman/config/rbac/cliquel1_editor_role.yaml deleted file mode 100644 index 265c340701ae..000000000000 --- a/go/stackman/config/rbac/cliquel1_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit cliquel1s. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cliquel1-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s/status - verbs: - - get diff --git a/go/stackman/config/rbac/cliquel1_viewer_role.yaml b/go/stackman/config/rbac/cliquel1_viewer_role.yaml deleted file mode 100644 index d85a5c77c44c..000000000000 --- a/go/stackman/config/rbac/cliquel1_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view cliquel1s. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cliquel1-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s/status - verbs: - - get diff --git a/go/stackman/config/rbac/datatransportlayer_editor_role.yaml b/go/stackman/config/rbac/datatransportlayer_editor_role.yaml deleted file mode 100644 index 1e9e83f60cda..000000000000 --- a/go/stackman/config/rbac/datatransportlayer_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit datatransportlayers. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: datatransportlayer-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - datatransportlayers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - datatransportlayers/status - verbs: - - get diff --git a/go/stackman/config/rbac/datatransportlayer_viewer_role.yaml b/go/stackman/config/rbac/datatransportlayer_viewer_role.yaml deleted file mode 100644 index 7908c2f3801e..000000000000 --- a/go/stackman/config/rbac/datatransportlayer_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view datatransportlayers. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: datatransportlayer-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - datatransportlayers - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - datatransportlayers/status - verbs: - - get diff --git a/go/stackman/config/rbac/deployer_editor_role.yaml b/go/stackman/config/rbac/deployer_editor_role.yaml deleted file mode 100644 index 12b58a38a6b6..000000000000 --- a/go/stackman/config/rbac/deployer_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit deployers. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: deployer-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - deployers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - deployers/status - verbs: - - get diff --git a/go/stackman/config/rbac/deployer_viewer_role.yaml b/go/stackman/config/rbac/deployer_viewer_role.yaml deleted file mode 100644 index 7e42ea2b8a4f..000000000000 --- a/go/stackman/config/rbac/deployer_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view deployers. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: deployer-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - deployers - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - deployers/status - verbs: - - get diff --git a/go/stackman/config/rbac/gasoracle_editor_role.yaml b/go/stackman/config/rbac/gasoracle_editor_role.yaml deleted file mode 100644 index 6de6b2b12d18..000000000000 --- a/go/stackman/config/rbac/gasoracle_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit gasoracles. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: gasoracle-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - gasoracles - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - gasoracles/status - verbs: - - get diff --git a/go/stackman/config/rbac/gasoracle_viewer_role.yaml b/go/stackman/config/rbac/gasoracle_viewer_role.yaml deleted file mode 100644 index 26761d97c70a..000000000000 --- a/go/stackman/config/rbac/gasoracle_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view gasoracles. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: gasoracle-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - gasoracles - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - gasoracles/status - verbs: - - get diff --git a/go/stackman/config/rbac/kustomization.yaml b/go/stackman/config/rbac/kustomization.yaml deleted file mode 100644 index 731832a6ac3b..000000000000 --- a/go/stackman/config/rbac/kustomization.yaml +++ /dev/null @@ -1,18 +0,0 @@ -resources: -# All RBAC will be applied under this service account in -# the deployment namespace. You may comment out this resource -# if your manager will use a service account that exists at -# runtime. Be sure to update RoleBinding and ClusterRoleBinding -# subjects if changing service account names. -- service_account.yaml -- role.yaml -- role_binding.yaml -- leader_election_role.yaml -- leader_election_role_binding.yaml -# Comment the following 4 lines if you want to disable -# the auth proxy (https://github.com/brancz/kube-rbac-proxy) -# which protects your /metrics endpoint. -- auth_proxy_service.yaml -- auth_proxy_role.yaml -- auth_proxy_role_binding.yaml -- auth_proxy_client_clusterrole.yaml diff --git a/go/stackman/config/rbac/leader_election_role.yaml b/go/stackman/config/rbac/leader_election_role.yaml deleted file mode 100644 index 4190ec8059e2..000000000000 --- a/go/stackman/config/rbac/leader_election_role.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# permissions to do leader election. -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: leader-election-role -rules: -- apiGroups: - - "" - resources: - - configmaps - verbs: - - get - - list - - watch - - create - - update - - patch - - delete -- apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - list - - watch - - create - - update - - patch - - delete -- apiGroups: - - "" - resources: - - events - verbs: - - create - - patch diff --git a/go/stackman/config/rbac/leader_election_role_binding.yaml b/go/stackman/config/rbac/leader_election_role_binding.yaml deleted file mode 100644 index 1d1321ed4f02..000000000000 --- a/go/stackman/config/rbac/leader_election_role_binding.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: leader-election-rolebinding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: leader-election-role -subjects: -- kind: ServiceAccount - name: controller-manager - namespace: system diff --git a/go/stackman/config/rbac/role.yaml b/go/stackman/config/rbac/role.yaml deleted file mode 100644 index 7fa662095761..000000000000 --- a/go/stackman/config/rbac/role.yaml +++ /dev/null @@ -1,60 +0,0 @@ - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - creationTimestamp: null - name: manager-role -rules: -- apiGroups: - - apps - resources: - - deployments - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - configmaps - - pods - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s/finalizers - verbs: - - update -- apiGroups: - - stack.optimism-stacks.net - resources: - - cliquel1s/status - verbs: - - get - - patch - - update diff --git a/go/stackman/config/rbac/role_binding.yaml b/go/stackman/config/rbac/role_binding.yaml deleted file mode 100644 index 2070ede4462f..000000000000 --- a/go/stackman/config/rbac/role_binding.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: manager-rolebinding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: manager-role -subjects: -- kind: ServiceAccount - name: controller-manager - namespace: system diff --git a/go/stackman/config/rbac/sequencer_editor_role.yaml b/go/stackman/config/rbac/sequencer_editor_role.yaml deleted file mode 100644 index cb44de4caf78..000000000000 --- a/go/stackman/config/rbac/sequencer_editor_role.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# permissions for end users to edit sequencers. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: sequencer-editor-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - sequencers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - sequencers/status - verbs: - - get diff --git a/go/stackman/config/rbac/sequencer_viewer_role.yaml b/go/stackman/config/rbac/sequencer_viewer_role.yaml deleted file mode 100644 index e4c9f715a13c..000000000000 --- a/go/stackman/config/rbac/sequencer_viewer_role.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# permissions for end users to view sequencers. -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: sequencer-viewer-role -rules: -- apiGroups: - - stack.optimism-stacks.net - resources: - - sequencers - verbs: - - get - - list - - watch -- apiGroups: - - stack.optimism-stacks.net - resources: - - sequencers/status - verbs: - - get diff --git a/go/stackman/config/rbac/service_account.yaml b/go/stackman/config/rbac/service_account.yaml deleted file mode 100644 index 7cd6025bfc4a..000000000000 --- a/go/stackman/config/rbac/service_account.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: controller-manager - namespace: system diff --git a/go/stackman/config/samples/kustomization.yaml b/go/stackman/config/samples/kustomization.yaml deleted file mode 100644 index db434677c46f..000000000000 --- a/go/stackman/config/samples/kustomization.yaml +++ /dev/null @@ -1,10 +0,0 @@ -## Append samples you want in your CSV to this file as resources ## -resources: -- stack_v1_cliquel1.yaml -- stack_v1_deployer.yaml -- stack_v1_datatransportlayer.yaml -- stack_v1_sequencer.yaml -- stack_v1_batchsubmitter.yaml -- stack_v1_gasoracle.yaml -- stack_v1_actor.yaml -#+kubebuilder:scaffold:manifestskustomizesamples diff --git a/go/stackman/config/samples/stack_v1_actor.yaml b/go/stackman/config/samples/stack_v1_actor.yaml deleted file mode 100644 index d8483ba57835..000000000000 --- a/go/stackman/config/samples/stack_v1_actor.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: Actor -metadata: - name: actor-sample -spec: - # Add fields here diff --git a/go/stackman/config/samples/stack_v1_batchsubmitter.yaml b/go/stackman/config/samples/stack_v1_batchsubmitter.yaml deleted file mode 100644 index a000265651a3..000000000000 --- a/go/stackman/config/samples/stack_v1_batchsubmitter.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: BatchSubmitter -metadata: - name: batchsubmitter-sample -spec: - # Add fields here diff --git a/go/stackman/config/samples/stack_v1_cliquel1.yaml b/go/stackman/config/samples/stack_v1_cliquel1.yaml deleted file mode 100644 index 0bf9135e6a33..000000000000 --- a/go/stackman/config/samples/stack_v1_cliquel1.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: CliqueL1 -metadata: - name: cliquel1-sample -spec: - # Add fields here diff --git a/go/stackman/config/samples/stack_v1_datatransportlayer.yaml b/go/stackman/config/samples/stack_v1_datatransportlayer.yaml deleted file mode 100644 index 5d2a61c7613b..000000000000 --- a/go/stackman/config/samples/stack_v1_datatransportlayer.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: DataTransportLayer -metadata: - name: datatransportlayer-sample -spec: - # Add fields here diff --git a/go/stackman/config/samples/stack_v1_deployer.yaml b/go/stackman/config/samples/stack_v1_deployer.yaml deleted file mode 100644 index 96aa2e1b7071..000000000000 --- a/go/stackman/config/samples/stack_v1_deployer.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: Deployer -metadata: - name: deployer-sample -spec: - # Add fields here diff --git a/go/stackman/config/samples/stack_v1_gasoracle.yaml b/go/stackman/config/samples/stack_v1_gasoracle.yaml deleted file mode 100644 index d4f2af31135a..000000000000 --- a/go/stackman/config/samples/stack_v1_gasoracle.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: GasOracle -metadata: - name: gasoracle-sample -spec: - # Add fields here diff --git a/go/stackman/config/samples/stack_v1_sequencer.yaml b/go/stackman/config/samples/stack_v1_sequencer.yaml deleted file mode 100644 index 622ff1f93ba2..000000000000 --- a/go/stackman/config/samples/stack_v1_sequencer.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: stack.optimism-stacks.net/v1 -kind: Sequencer -metadata: - name: sequencer-sample -spec: - # Add fields here diff --git a/go/stackman/config/scorecard/bases/config.yaml b/go/stackman/config/scorecard/bases/config.yaml deleted file mode 100644 index c77047841ed8..000000000000 --- a/go/stackman/config/scorecard/bases/config.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: scorecard.operatorframework.io/v1alpha3 -kind: Configuration -metadata: - name: config -stages: -- parallel: true - tests: [] diff --git a/go/stackman/config/scorecard/kustomization.yaml b/go/stackman/config/scorecard/kustomization.yaml deleted file mode 100644 index 50cd2d084eb9..000000000000 --- a/go/stackman/config/scorecard/kustomization.yaml +++ /dev/null @@ -1,16 +0,0 @@ -resources: -- bases/config.yaml -patchesJson6902: -- path: patches/basic.config.yaml - target: - group: scorecard.operatorframework.io - version: v1alpha3 - kind: Configuration - name: config -- path: patches/olm.config.yaml - target: - group: scorecard.operatorframework.io - version: v1alpha3 - kind: Configuration - name: config -#+kubebuilder:scaffold:patchesJson6902 diff --git a/go/stackman/config/scorecard/patches/basic.config.yaml b/go/stackman/config/scorecard/patches/basic.config.yaml deleted file mode 100644 index c19af06f96d9..000000000000 --- a/go/stackman/config/scorecard/patches/basic.config.yaml +++ /dev/null @@ -1,10 +0,0 @@ -- op: add - path: /stages/0/tests/- - value: - entrypoint: - - scorecard-test - - basic-check-spec - image: quay.io/operator-framework/scorecard-test:v1.15.0 - labels: - suite: basic - test: basic-check-spec-test diff --git a/go/stackman/config/scorecard/patches/olm.config.yaml b/go/stackman/config/scorecard/patches/olm.config.yaml deleted file mode 100644 index 0e4888c96502..000000000000 --- a/go/stackman/config/scorecard/patches/olm.config.yaml +++ /dev/null @@ -1,50 +0,0 @@ -- op: add - path: /stages/0/tests/- - value: - entrypoint: - - scorecard-test - - olm-bundle-validation - image: quay.io/operator-framework/scorecard-test:v1.15.0 - labels: - suite: olm - test: olm-bundle-validation-test -- op: add - path: /stages/0/tests/- - value: - entrypoint: - - scorecard-test - - olm-crds-have-validation - image: quay.io/operator-framework/scorecard-test:v1.15.0 - labels: - suite: olm - test: olm-crds-have-validation-test -- op: add - path: /stages/0/tests/- - value: - entrypoint: - - scorecard-test - - olm-crds-have-resources - image: quay.io/operator-framework/scorecard-test:v1.15.0 - labels: - suite: olm - test: olm-crds-have-resources-test -- op: add - path: /stages/0/tests/- - value: - entrypoint: - - scorecard-test - - olm-spec-descriptors - image: quay.io/operator-framework/scorecard-test:v1.15.0 - labels: - suite: olm - test: olm-spec-descriptors-test -- op: add - path: /stages/0/tests/- - value: - entrypoint: - - scorecard-test - - olm-status-descriptors - image: quay.io/operator-framework/scorecard-test:v1.15.0 - labels: - suite: olm - test: olm-status-descriptors-test diff --git a/go/stackman/controllers/actor_controller.go b/go/stackman/controllers/actor_controller.go deleted file mode 100644 index 9825b215d7bd..000000000000 --- a/go/stackman/controllers/actor_controller.go +++ /dev/null @@ -1,231 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - "crypto/md5" - "encoding/hex" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "strconv" - "time" - - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// ActorReconciler reconciles a Actor object -type ActorReconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=actors,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=actors/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=actors/finalizers,verbs=update - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the Actor object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *ActorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.Actor{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("actor resource not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting actor") - return ctrl.Result{}, err - } - - deployment := &appsv1.Deployment{} - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.deployment(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "actor"), deployment) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - argsHash := r.argsHash(crd) - if deployment.Labels["args_hash"] != argsHash { - err := r.Update(ctx, r.deployment(crd)) - if err != nil { - lgr.Error(err, "error updating actor deployment") - return ctrl.Result{}, err - } - - return ctrl.Result{RequeueAfter: 10 * time.Second}, nil - } - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.service(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "actor"), &corev1.Service{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *ActorReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.Actor{}). - Complete(r) -} - -func (r *ActorReconciler) labels(crd *stackv1.Actor) map[string]string { - return map[string]string{ - "actor": crd.ObjectMeta.Name, - } -} - -func (r *ActorReconciler) argsHash(crd *stackv1.Actor) string { - h := md5.New() - h.Write([]byte(crd.Spec.Image)) - h.Write([]byte(crd.Spec.L1URL)) - h.Write([]byte(crd.Spec.L2URL)) - h.Write([]byte(crd.Spec.PrivateKey.String())) - h.Write([]byte(crd.Spec.AddressManagerAddress)) - h.Write([]byte(crd.Spec.TestFilename)) - h.Write([]byte(strconv.Itoa(crd.Spec.Concurrency))) - h.Write([]byte(strconv.Itoa(crd.Spec.RunForMS))) - h.Write([]byte(strconv.Itoa(crd.Spec.RunCount))) - h.Write([]byte(strconv.Itoa(crd.Spec.ThinkTimeMS))) - return hex.EncodeToString(h.Sum(nil)) -} - -func (r *ActorReconciler) deployment(crd *stackv1.Actor) *appsv1.Deployment { - replicas := int32(1) - command := []string{ - "yarn", - "test:actor", - "-f", - crd.Spec.TestFilename, - "-c", - strconv.Itoa(crd.Spec.Concurrency), - "--serve", - } - if crd.Spec.RunForMS != 0 { - command = append(command, "-t") - command = append(command, strconv.Itoa(crd.Spec.RunForMS)) - } else if crd.Spec.RunCount != 0 { - command = append(command, "-r") - command = append(command, strconv.Itoa(crd.Spec.RunCount)) - } - if crd.Spec.ThinkTimeMS != 0 { - command = append(command, "--think-time") - command = append(command, strconv.Itoa(crd.Spec.ThinkTimeMS)) - } - env := append([]corev1.EnvVar{ - crd.Spec.PrivateKey.EnvVar("PRIVATE_KEY"), - { - Name: "L1_URL", - Value: crd.Spec.L1URL, - }, - { - Name: "L2_URL", - Value: crd.Spec.L2URL, - }, - { - Name: "IS_LIVE_NETWORK", - Value: "true", - }, - { - Name: "ADDRESS_MANAGER", - Value: crd.Spec.AddressManagerAddress, - }, - }, crd.Spec.Env...) - deployment := &appsv1.Deployment{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "actor", map[string]string{ - "args_hash": r.argsHash(crd), - "actor": crd.ObjectMeta.Name, - }), - Spec: appsv1.DeploymentSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: r.labels(crd), - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: r.labels(crd), - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - Containers: []corev1.Container{ - { - Name: "actor", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - WorkingDir: "/opt/optimism/integration-tests", - Command: command, - Env: env, - Ports: []corev1.ContainerPort{ - { - Name: "metrics", - ContainerPort: 8545, - }, - }, - }, - }, - }, - }, - }, - } - ctrl.SetControllerReference(crd, deployment, r.Scheme) - return deployment -} - -func (r *ActorReconciler) service(crd *stackv1.Actor) *corev1.Service { - service := &corev1.Service{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "actor", r.labels(crd)), - Spec: corev1.ServiceSpec{ - Selector: r.labels(crd), - Type: corev1.ServiceTypeClusterIP, - Ports: []corev1.ServicePort{ - { - Name: "metrics", - Port: 8545, - }, - }, - }, - } - ctrl.SetControllerReference(crd, service, r.Scheme) - return service -} diff --git a/go/stackman/controllers/batchsubmitter_controller.go b/go/stackman/controllers/batchsubmitter_controller.go deleted file mode 100644 index e8abeca5c742..000000000000 --- a/go/stackman/controllers/batchsubmitter_controller.go +++ /dev/null @@ -1,319 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - "crypto/md5" - "encoding/hex" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "strconv" - - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// BatchSubmitterReconciler reconciles a BatchSubmitter object -type BatchSubmitterReconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=batchsubmitters,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=batchsubmitters/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=batchsubmitters/finalizers,verbs=update - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the BatchSubmitter object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *BatchSubmitterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.BatchSubmitter{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("batch submitter resource not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting batch submitter") - return ctrl.Result{}, err - } - - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.entrypointsCfgMap(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "batch-submitter-entrypoints"), &corev1.ConfigMap{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - statefulSet := &appsv1.StatefulSet{} - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.statefulSet(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "batch-submitter"), statefulSet) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - argsHash := r.statefulSetArgsHash(crd) - if statefulSet.Labels["args_hash"] != argsHash { - err := r.Update(ctx, r.statefulSet(crd)) - if err != nil { - lgr.Error(err, "error updating batch submitter statefulSet") - return ctrl.Result{}, err - } - - return ctrl.Result{Requeue: true}, nil - } - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.service(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "batch-submitter"), &corev1.Service{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *BatchSubmitterReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.BatchSubmitter{}). - Complete(r) -} - -func (r *BatchSubmitterReconciler) labels() map[string]string { - return map[string]string{ - "app": "batch-submitter", - } -} - -func (r *BatchSubmitterReconciler) entrypointsCfgMap(crd *stackv1.BatchSubmitter) *corev1.ConfigMap { - cfgMap := &corev1.ConfigMap{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "batch-submitter-entrypoints", r.labels()), - Data: map[string]string{ - "entrypoint.sh": BatchSubmitterEntrypoint, - }, - } - ctrl.SetControllerReference(crd, cfgMap, r.Scheme) - return cfgMap -} - -func (r *BatchSubmitterReconciler) statefulSetArgsHash(crd *stackv1.BatchSubmitter) string { - h := md5.New() - h.Write([]byte(crd.Spec.Image)) - h.Write([]byte(crd.Spec.L1URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L1TimeoutSeconds))) - h.Write([]byte(crd.Spec.L2URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L2TimeoutSeconds))) - h.Write([]byte(crd.Spec.DeployerURL)) - h.Write([]byte(strconv.Itoa(crd.Spec.DeployerTimeoutSeconds))) - for _, ev := range crd.Spec.Env { - h.Write([]byte(ev.String())) - } - return hex.EncodeToString(h.Sum(nil)) -} - -func (r *BatchSubmitterReconciler) statefulSet(crd *stackv1.BatchSubmitter) *appsv1.StatefulSet { - replicas := int32(1) - defaultMode := int32(0o777) - labels := r.labels() - labels["args_hash"] = r.statefulSetArgsHash(crd) - initContainers := []corev1.Container{ - { - Name: "wait-for-l1", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.L1URL), - "-t", - strconv.Itoa(crd.Spec.L1TimeoutSeconds), - }, - }, - { - Name: "wait-for-l2", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.L2URL), - "-t", - strconv.Itoa(crd.Spec.L2TimeoutSeconds), - }, - }, - } - baseEnv := []corev1.EnvVar{ - { - Name: "L1_NODE_WEB3_URL", - Value: crd.Spec.L1URL, - }, - { - Name: "L2_NODE_WEB3_URL", - Value: crd.Spec.L2URL, - }, - { - Name: "RUN_METRICS_SERVER", - Value: "true", - }, - { - Name: "METRICS_HOSTNAME", - Value: "0.0.0.0", - }, - { - Name: "METRICS_PORT", - Value: "9090", - }, - } - if crd.Spec.DeployerURL != "" { - initContainers = append(initContainers, corev1.Container{ - Name: "wait-for-deployer", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.DeployerURL), - "-t", - strconv.Itoa(crd.Spec.DeployerTimeoutSeconds), - }, - }) - baseEnv = append(baseEnv, []corev1.EnvVar{ - { - Name: "ROLLUP_STATE_DUMP_PATH", - Value: "http://deployer:8081/state-dump.latest.json", - }, - { - Name: "DEPLOYER_URL", - Value: crd.Spec.DeployerURL, - }, - }...) - } - statefulSet := &appsv1.StatefulSet{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "batch-submitter", labels), - Spec: appsv1.StatefulSetSpec{ - Replicas: &replicas, - Selector: &v1.LabelSelector{ - MatchLabels: map[string]string{ - "app": "batch-submitter", - }, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: v1.ObjectMeta{ - Labels: r.labels(), - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - InitContainers: initContainers, - Containers: []corev1.Container{ - { - Name: "batch-submitter", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - WorkingDir: "/opt/optimism/packages/batch-submitter", - Command: []string{ - "/bin/sh", - "/opt/entrypoints/entrypoint.sh", - "npm", - "run", - "start", - }, - Env: append(baseEnv, crd.Spec.Env...), - VolumeMounts: []corev1.VolumeMount{ - { - Name: "entrypoints", - MountPath: "/opt/entrypoints", - }, - }, - Ports: []corev1.ContainerPort{ - { - Name: "metrics", - ContainerPort: 9090, - }, - }, - }, - }, - Volumes: []corev1.Volume{ - { - Name: "entrypoints", - VolumeSource: corev1.VolumeSource{ - ConfigMap: &corev1.ConfigMapVolumeSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: ObjectName(crd.ObjectMeta, "batch-submitter-entrypoints"), - }, - DefaultMode: &defaultMode, - }, - }, - }, - }, - }, - }, - }, - } - ctrl.SetControllerReference(crd, statefulSet, r.Scheme) - return statefulSet -} - -func (r *BatchSubmitterReconciler) service(crd *stackv1.BatchSubmitter) *corev1.Service { - service := &corev1.Service{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "batch-submitter", r.labels()), - Spec: corev1.ServiceSpec{ - Selector: map[string]string{ - "app": "batch-submitter", - }, - Ports: []corev1.ServicePort{ - { - Name: "metrics", - Port: 9090, - }, - }, - }, - } - ctrl.SetControllerReference(crd, service, r.Scheme) - return service -} - -const BatchSubmitterEntrypoint = ` -#!/bin/sh - -if [ -n "$DEPLOYER_URL" ]; then - echo "Loading addresses from $DEPLOYER_URL." - ADDRESSES=$(curl --fail --show-error --silent "$DEPLOYER_URL/addresses.json") - export ADDRESS_MANAGER_ADDRESS=$(echo $ADDRESSES | jq -r ".AddressManager") -fi - -exec "$@" -` diff --git a/go/stackman/controllers/cliquel1_controller.go b/go/stackman/controllers/cliquel1_controller.go deleted file mode 100644 index 74ab6040a221..000000000000 --- a/go/stackman/controllers/cliquel1_controller.go +++ /dev/null @@ -1,330 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - "strconv" - - "k8s.io/apimachinery/pkg/api/errors" - - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// CliqueL1Reconciler reconciles a CliqueL1 object -type CliqueL1Reconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=cliquel1s,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=cliquel1s/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=cliquel1s/finalizers,verbs=update -//+kubebuilder:rbac:groups=apps,resources=deployments;statefulsets,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=core,resources=services;pods;configmaps,verbs=get;list;watch;create;update;patch;delete - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the CliqueL1 object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *CliqueL1Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.CliqueL1{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("clique resource, not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting clique") - return ctrl.Result{}, err - } - - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.entrypointsCfgMap(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "clique-entrypoints"), &corev1.ConfigMap{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - nsName := ObjectNamespacedName(crd.ObjectMeta, "clique") - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.statefulSet(crd) - }, nsName, &appsv1.StatefulSet{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.service(crd) - }, nsName, &corev1.Service{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *CliqueL1Reconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.CliqueL1{}). - Owns(&corev1.ConfigMap{}). - Owns(&appsv1.Deployment{}). - Owns(&corev1.Service{}). - Complete(r) -} - -func (r *CliqueL1Reconciler) entrypointsCfgMap(crd *stackv1.CliqueL1) *corev1.ConfigMap { - cfgMap := &corev1.ConfigMap{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "clique-entrypoints", map[string]string{ - "app": "clique", - }), - Data: map[string]string{ - "entrypoint.sh": CliqueEntrypoint, - }, - } - ctrl.SetControllerReference(crd, cfgMap, r.Scheme) - return cfgMap -} - -func (r *CliqueL1Reconciler) statefulSet(crd *stackv1.CliqueL1) *appsv1.StatefulSet { - replicas := int32(1) - labels := map[string]string{ - "app": "clique", - } - defaultMode := int32(0o777) - volumes := []corev1.Volume{ - { - Name: "entrypoints", - VolumeSource: corev1.VolumeSource{ - ConfigMap: &corev1.ConfigMapVolumeSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: ObjectName(crd.ObjectMeta, "clique-entrypoints"), - }, - DefaultMode: &defaultMode, - }, - }, - }, - } - var volumeClaimTemplates []corev1.PersistentVolumeClaim - dbVolumeName := "db" - if crd.Spec.DataPVC != nil { - storage := resource.MustParse("128Gi") - dbVolumeName = crd.Spec.DataPVC.Name - if crd.Spec.DataPVC.Storage != nil { - storage = *crd.Spec.DataPVC.Storage - } - volumeClaimTemplates = []corev1.PersistentVolumeClaim{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: crd.Spec.DataPVC.Name, - }, - Spec: corev1.PersistentVolumeClaimSpec{ - AccessModes: []corev1.PersistentVolumeAccessMode{ - corev1.ReadWriteOnce, - }, - Resources: corev1.ResourceRequirements{ - Requests: corev1.ResourceList{ - corev1.ResourceStorage: storage, - }, - }, - }, - }, - } - } else { - volumes = append(volumes, corev1.Volume{ - Name: dbVolumeName, - VolumeSource: corev1.VolumeSource{ - EmptyDir: &corev1.EmptyDirVolumeSource{}, - }, - }) - } - statefulSet := &appsv1.StatefulSet{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "clique", labels), - Spec: appsv1.StatefulSetSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "app": "clique", - }, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: labels, - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - Containers: []corev1.Container{ - { - Name: "geth", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - Command: append([]string{ - "/bin/sh", - "/opt/entrypoints/entrypoint.sh", - }, crd.Spec.AdditionalArgs...), - Env: []corev1.EnvVar{ - crd.Spec.SealerPrivateKey.EnvVar("BLOCK_SIGNER_PRIVATE_KEY"), - crd.Spec.GenesisFile.EnvVar("GENESIS_DATA"), - { - Name: "BLOCK_SIGNER_ADDRESS", - Value: crd.Spec.SealerAddress, - }, - { - Name: "CHAIN_ID", - Value: strconv.Itoa(crd.Spec.ChainID), - }, - }, - VolumeMounts: []corev1.VolumeMount{ - { - Name: "entrypoints", - MountPath: "/opt/entrypoints", - }, - { - Name: dbVolumeName, - MountPath: "/db", - }, - }, - Ports: []corev1.ContainerPort{ - { - ContainerPort: 8085, - }, - { - ContainerPort: 8086, - }, - }, - }, - }, - Volumes: volumes, - }, - }, - VolumeClaimTemplates: volumeClaimTemplates, - }, - } - ctrl.SetControllerReference(crd, statefulSet, r.Scheme) - return statefulSet -} - -func (r *CliqueL1Reconciler) service(crd *stackv1.CliqueL1) *corev1.Service { - labels := map[string]string{ - "app": "clique", - } - service := &corev1.Service{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "clique", labels), - Spec: corev1.ServiceSpec{ - Selector: map[string]string{ - "app": "clique", - }, - Ports: []corev1.ServicePort{ - { - Name: "rpc", - Port: 8545, - TargetPort: intstr.FromInt(8545), - }, - { - Name: "ws", - Port: 8546, - TargetPort: intstr.FromInt(8546), - }, - }, - }, - } - ctrl.SetControllerReference(crd, service, r.Scheme) - return service -} - -const CliqueEntrypoint = ` -#!/bin/sh -set -exu - -VERBOSITY=${VERBOSITY:-9} -GETH_DATA_DIR=/db -GETH_CHAINDATA_DIR="$GETH_DATA_DIR/geth/chaindata" -GETH_KEYSTORE_DIR="$GETH_DATA_DIR/keystore" - -if [ ! -d "$GETH_KEYSTORE_DIR" ]; then - echo "$GETH_KEYSTORE_DIR missing, running account import" - echo -n "pwd" > "$GETH_DATA_DIR"/password - echo -n "$BLOCK_SIGNER_PRIVATE_KEY" | sed 's/0x//' > "$GETH_DATA_DIR"/block-signer-key - geth account import \ - --datadir="$GETH_DATA_DIR" \ - --password="$GETH_DATA_DIR"/password \ - "$GETH_DATA_DIR"/block-signer-key -else - echo "$GETH_KEYSTORE_DIR exists." -fi - -if [ ! -d "$GETH_CHAINDATA_DIR" ]; then - echo "$GETH_CHAINDATA_DIR missing, running init" - echo "Creating genesis file." - echo -n "$GENESIS_DATA" > "$GETH_DATA_DIR/genesis.json" - geth --verbosity="$VERBOSITY" init \ - --datadir="$GETH_DATA_DIR" \ - "$GETH_DATA_DIR/genesis.json" -else - echo "$GETH_CHAINDATA_DIR exists." -fi - -geth \ - --datadir="$GETH_DATA_DIR" \ - --verbosity="$VERBOSITY" \ - --http \ - --http.corsdomain="*" \ - --http.vhosts="*" \ - --http.addr=0.0.0.0 \ - --http.port=8545 \ - --ws.addr=0.0.0.0 \ - --ws.port=8546 \ - --ws.origins="*" \ - --syncmode=full \ - --nodiscover \ - --maxpeers=1 \ - --networkid=$CHAIN_ID \ - --unlock=$BLOCK_SIGNER_ADDRESS \ - --mine \ - --miner.etherbase=$BLOCK_SIGNER_ADDRESS \ - --password="$GETH_DATA_DIR"/password \ - --allow-insecure-unlock \ - "$@" -` diff --git a/go/stackman/controllers/datatransportlayer_controller.go b/go/stackman/controllers/datatransportlayer_controller.go deleted file mode 100644 index b8618b71eb7f..000000000000 --- a/go/stackman/controllers/datatransportlayer_controller.go +++ /dev/null @@ -1,343 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - "crypto/md5" - "encoding/hex" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/resource" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" - "strconv" - - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// DataTransportLayerReconciler reconciles a DataTransportLayer object -type DataTransportLayerReconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=datatransportlayers,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=datatransportlayers/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=datatransportlayers/finalizers,verbs=update - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the DataTransportLayer object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *DataTransportLayerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.DataTransportLayer{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("dtl resource not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting dtl") - return ctrl.Result{}, err - } - - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.entrypointsCfgMap(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "dtl-entrypoints"), &corev1.ConfigMap{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - statefulSet := &appsv1.StatefulSet{} - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.statefulSet(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "dtl"), statefulSet) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - argsHash := r.argsHash(crd) - if statefulSet.Labels["args_hash"] != argsHash { - err := r.Update(ctx, r.statefulSet(crd)) - if err != nil { - lgr.Error(err, "error updating dtl statefulSet") - return ctrl.Result{}, err - } - - return ctrl.Result{Requeue: true}, nil - } - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.service(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "dtl"), &corev1.Service{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *DataTransportLayerReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.DataTransportLayer{}). - Owns(&corev1.ConfigMap{}). - Owns(&appsv1.Deployment{}). - Owns(&corev1.Service{}). - Complete(r) -} - -func (r *DataTransportLayerReconciler) labels() map[string]string { - return map[string]string{ - "app": "dtl", - } -} - -func (r *DataTransportLayerReconciler) argsHash(crd *stackv1.DataTransportLayer) string { - h := md5.New() - h.Write([]byte(crd.Spec.Image)) - h.Write([]byte(crd.Spec.L1URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L1TimeoutSeconds))) - h.Write([]byte(crd.Spec.DeployerURL)) - h.Write([]byte(strconv.Itoa(crd.Spec.DeployerTimeoutSeconds))) - if crd.Spec.DataPVC != nil { - h.Write([]byte(crd.Spec.DataPVC.Name)) - h.Write([]byte(crd.Spec.DataPVC.Storage.String())) - } - for _, ev := range crd.Spec.Env { - h.Write([]byte(ev.String())) - } - return hex.EncodeToString(h.Sum(nil)) -} - -func (r *DataTransportLayerReconciler) entrypointsCfgMap(crd *stackv1.DataTransportLayer) *corev1.ConfigMap { - cfgMap := &corev1.ConfigMap{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "dtl-entrypoints", r.labels()), - Data: map[string]string{ - "entrypoint.sh": DTLEntrypoint, - }, - } - ctrl.SetControllerReference(crd, cfgMap, r.Scheme) - return cfgMap -} - -func (r *DataTransportLayerReconciler) statefulSet(crd *stackv1.DataTransportLayer) *appsv1.StatefulSet { - replicas := int32(1) - defaultMode := int32(0o777) - initContainers := []corev1.Container{ - { - Name: "wait-for-l1", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.L1URL), - "-t", - strconv.Itoa(crd.Spec.L1TimeoutSeconds), - }, - }, - } - baseEnv := []corev1.EnvVar{ - { - Name: "DATA_TRANSPORT_LAYER__L1_RPC_ENDPOINT", - Value: crd.Spec.L1URL, - }, - } - if crd.Spec.DeployerURL != "" { - initContainers = append(initContainers, corev1.Container{ - Name: "wait-for-deployer", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.DeployerURL), - "-t", - strconv.Itoa(crd.Spec.DeployerTimeoutSeconds), - }, - }) - baseEnv = append(baseEnv, corev1.EnvVar{ - Name: "DEPLOYER_URL", - Value: crd.Spec.DeployerURL, - }) - } - volumes := []corev1.Volume{ - { - Name: "entrypoints", - VolumeSource: corev1.VolumeSource{ - ConfigMap: &corev1.ConfigMapVolumeSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: ObjectName(crd.ObjectMeta, "dtl-entrypoints"), - }, - DefaultMode: &defaultMode, - }, - }, - }, - } - var volumeClaimTemplates []corev1.PersistentVolumeClaim - dbVolumeName := "db" - if crd.Spec.DataPVC != nil { - storage := resource.MustParse("10Gi") - dbVolumeName = crd.Spec.DataPVC.Name - if crd.Spec.DataPVC.Storage != nil { - storage = *crd.Spec.DataPVC.Storage - } - volumeClaimTemplates = []corev1.PersistentVolumeClaim{ - { - ObjectMeta: v1.ObjectMeta{ - Name: crd.Spec.DataPVC.Name, - }, - Spec: corev1.PersistentVolumeClaimSpec{ - AccessModes: []corev1.PersistentVolumeAccessMode{ - corev1.ReadWriteOnce, - }, - Resources: corev1.ResourceRequirements{ - Requests: corev1.ResourceList{ - corev1.ResourceStorage: storage, - }, - }, - }, - }, - } - } else { - volumes = append(volumes, corev1.Volume{ - Name: dbVolumeName, - VolumeSource: corev1.VolumeSource{ - EmptyDir: &corev1.EmptyDirVolumeSource{}, - }, - }) - } - statefulSet := &appsv1.StatefulSet{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "dtl", r.labels()), - Spec: appsv1.StatefulSetSpec{ - Replicas: &replicas, - Selector: &v1.LabelSelector{ - MatchLabels: map[string]string{ - "app": "dtl", - }, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: v1.ObjectMeta{ - Labels: r.labels(), - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - InitContainers: initContainers, - Containers: []corev1.Container{ - { - Name: "dtl", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - Command: []string{ - "/bin/sh", - "/opt/entrypoints/entrypoint.sh", - "node", - "/opt/optimism/packages/data-transport-layer/dist/src/services/run.js", - }, - Env: append(baseEnv, crd.Spec.Env...), - VolumeMounts: []corev1.VolumeMount{ - { - Name: dbVolumeName, - MountPath: "/db", - }, - { - Name: "entrypoints", - MountPath: "/opt/entrypoints", - }, - }, - Ports: []corev1.ContainerPort{ - { - Name: "api", - ContainerPort: 7878, - }, - { - Name: "metrics", - ContainerPort: 3000, - }, - }, - LivenessProbe: &corev1.Probe{ - Handler: corev1.Handler{ - HTTPGet: &corev1.HTTPGetAction{ - Path: "/eth/syncing", - Port: intstr.FromInt(7878), - }, - }, - }, - }, - }, - Volumes: volumes, - }, - }, - VolumeClaimTemplates: volumeClaimTemplates, - }, - } - ctrl.SetControllerReference(crd, statefulSet, r.Scheme) - return statefulSet -} - -func (r *DataTransportLayerReconciler) service(crd *stackv1.DataTransportLayer) *corev1.Service { - service := &corev1.Service{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "dtl", r.labels()), - Spec: corev1.ServiceSpec{ - Selector: map[string]string{ - "app": "dtl", - }, - Ports: []corev1.ServicePort{ - { - Port: 3000, - }, - { - Port: 7878, - }, - }, - }, - } - ctrl.SetControllerReference(crd, service, r.Scheme) - return service -} - -const DTLEntrypoint = ` -#!/bin/sh - -if [ -n "$DEPLOYER_URL" ]; then - echo "Loading addresses from $DEPLOYER_URL." - ADDRESSES=$(curl --fail --show-error --silent "$DEPLOYER_URL/addresses.json") - export DATA_TRANSPORT_LAYER__ADDRESS_MANAGER=$(echo $ADDRESSES | jq -r ".AddressManager") -fi - -exec "$@" -` diff --git a/go/stackman/controllers/deployer_controller.go b/go/stackman/controllers/deployer_controller.go deleted file mode 100644 index 7d2b95ba967a..000000000000 --- a/go/stackman/controllers/deployer_controller.go +++ /dev/null @@ -1,298 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - "crypto/md5" - "encoding/hex" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "strconv" - "time" - - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// DeployerReconciler reconciles a Deployer object -type DeployerReconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=deployers,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=deployers/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=deployers/finalizers,verbs=update -//+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=core,resources=services;pods;configmaps,verbs=get;list;watch;create;update;patch;delete - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the Deployer object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *DeployerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.Deployer{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("deployer resource not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting deployer") - return ctrl.Result{}, err - } - - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.entrypointsCfgMap(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "entrypoints"), &corev1.ConfigMap{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - deployment := &appsv1.Deployment{} - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.deployment(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "deployer"), deployment) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - argsHash := r.deploymentArgsHash(crd) - if deployment.Labels["args_hash"] != argsHash { - err := r.Update(ctx, r.deployment(crd)) - if err != nil { - lgr.Error(err, "error updating deployer deployment") - return ctrl.Result{}, err - } - - return ctrl.Result{RequeueAfter: 30 * time.Second}, nil - } - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.service(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "deployer"), &corev1.Service{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *DeployerReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.Deployer{}). - Owns(&corev1.ConfigMap{}). - Owns(&appsv1.Deployment{}). - Owns(&corev1.Service{}). - Complete(r) -} - -func (r *DeployerReconciler) labels(crd *stackv1.Deployer) map[string]string { - return map[string]string{ - "app": "deployer", - "deployer_crd": crd.Namespace, - } -} - -func (r *DeployerReconciler) entrypointsCfgMap(crd *stackv1.Deployer) *corev1.ConfigMap { - cfgMap := &corev1.ConfigMap{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "entrypoints", r.labels(crd)), - Data: map[string]string{ - "entrypoint.sh": DeployerEntrypoint, - }, - } - ctrl.SetControllerReference(crd, cfgMap, r.Scheme) - return cfgMap -} - -func (r *DeployerReconciler) deploymentArgsHash(crd *stackv1.Deployer) string { - h := md5.New() - h.Write([]byte(crd.Spec.Image)) - h.Write([]byte(crd.Spec.L1URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L1TimeoutSeconds))) - for _, ev := range crd.Spec.Env { - h.Write([]byte(ev.String())) - } - return hex.EncodeToString(h.Sum(nil)) -} - -func (r *DeployerReconciler) deployment(crd *stackv1.Deployer) *appsv1.Deployment { - replicas := int32(1) - defaultMode := int32(0o777) - deployment := &appsv1.Deployment{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "deployer", map[string]string{ - "app": "deployer", - "deployer_crd": crd.Namespace, - "args_hash": r.deploymentArgsHash(crd), - }), - Spec: appsv1.DeploymentSpec{ - Replicas: &replicas, - Selector: &v1.LabelSelector{ - MatchLabels: map[string]string{ - "app": "deployer", - }, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: v1.ObjectMeta{ - Labels: r.labels(crd), - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - InitContainers: []corev1.Container{ - { - Name: "wait-for-l1", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.L1URL), - "-t", - strconv.Itoa(crd.Spec.L1TimeoutSeconds), - }, - }, - }, - Containers: []corev1.Container{ - { - Name: "deployer", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - Command: []string{ - "/bin/bash", - "/opt/entrypoints/entrypoint.sh", - }, - Env: append([]corev1.EnvVar{ - { - Name: "L1_NODE_WEB3_URL", - Value: crd.Spec.L1URL, - }, - { - Name: "NO_COMPILE", - Value: "1", - }, - { - Name: "AUTOMATICALLY_TRANSFER_OWNERSHIP", - Value: "true", - }, - }, crd.Spec.Env...), - VolumeMounts: []corev1.VolumeMount{ - { - Name: "entrypoints", - MountPath: "/opt/entrypoints", - }, - }, - Ports: []corev1.ContainerPort{ - { - ContainerPort: 8081, - }, - }, - }, - }, - Volumes: []corev1.Volume{ - { - Name: "entrypoints", - VolumeSource: corev1.VolumeSource{ - ConfigMap: &corev1.ConfigMapVolumeSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: ObjectName(crd.ObjectMeta, "entrypoints"), - }, - DefaultMode: &defaultMode, - }, - }, - }, - }, - }, - }, - }, - } - ctrl.SetControllerReference(crd, deployment, r.Scheme) - return deployment -} - -func (r *DeployerReconciler) service(crd *stackv1.Deployer) *corev1.Service { - service := &corev1.Service{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "deployer", r.labels(crd)), - Spec: corev1.ServiceSpec{ - Selector: map[string]string{ - "app": "deployer", - }, - Ports: []corev1.ServicePort{ - { - Name: "web", - Port: 8081, - }, - }, - }, - } - ctrl.SetControllerReference(crd, service, r.Scheme) - return service -} - -const DeployerEntrypoint = ` -#!/bin/bash -set -e -cd /optimism/packages/contracts -yarn run deploy - -function envSet() { - VAR=$1 - export $VAR=$(cat ./dist/dumps/addresses.json | jq -r ".$2") -} - -# set the address to the proxy gateway if possible -envSet L1_STANDARD_BRIDGE_ADDRESS Proxy__OVM_L1StandardBridge -if [ $L1_STANDARD_BRIDGE_ADDRESS == null ]; then - envSet L1_STANDARD_BRIDGE_ADDRESS L1StandardBridge -fi - -envSet L1_CROSS_DOMAIN_MESSENGER_ADDRESS Proxy__OVM_L1CrossDomainMessenger -if [ $L1_CROSS_DOMAIN_MESSENGER_ADDRESS == null ]; then - envSet L1_CROSS_DOMAIN_MESSENGER_ADDRESS L1CrossDomainMessenger -fi - -# build the dump file -yarn run build:dump - -echo "Starting server." - -# service the addresses and dumps -python3 -m http.server \ - --bind "0.0.0.0" 8081 \ - --directory ./dist/dumps -` diff --git a/go/stackman/controllers/gasoracle_controller.go b/go/stackman/controllers/gasoracle_controller.go deleted file mode 100644 index 705cf74458c7..000000000000 --- a/go/stackman/controllers/gasoracle_controller.go +++ /dev/null @@ -1,186 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - "crypto/md5" - "encoding/hex" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "strconv" - - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// GasOracleReconciler reconciles a GasOracle object -type GasOracleReconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=gasoracles,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=gasoracles/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=gasoracles/finalizers,verbs=update - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the GasOracle object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *GasOracleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.GasOracle{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("gas oracle resource not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting gas oracle") - return ctrl.Result{}, err - } - - deployment := &appsv1.Deployment{} - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.deployment(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "gas-oracle"), deployment) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - argsHash := r.deploymentArgsHash(crd) - if deployment.Labels["args_hash"] != argsHash { - err := r.Update(ctx, r.deployment(crd)) - if err != nil { - lgr.Error(err, "error updating gas oracle deployment") - return ctrl.Result{}, err - } - - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *GasOracleReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.GasOracle{}). - Complete(r) -} - -func (r *GasOracleReconciler) labels() map[string]string { - return map[string]string{ - "app": "gas-oracle", - } -} - -func (r *GasOracleReconciler) deploymentArgsHash(crd *stackv1.GasOracle) string { - h := md5.New() - h.Write([]byte(crd.Spec.Image)) - h.Write([]byte(crd.Spec.L1URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L1TimeoutSeconds))) - h.Write([]byte(crd.Spec.L2URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L2TimeoutSeconds))) - for _, ev := range crd.Spec.Env { - h.Write([]byte(ev.String())) - } - return hex.EncodeToString(h.Sum(nil)) -} - -func (r *GasOracleReconciler) deployment(crd *stackv1.GasOracle) *appsv1.Deployment { - replicas := int32(1) - labels := r.labels() - labels["args_hash"] = r.deploymentArgsHash(crd) - baseEnv := []corev1.EnvVar{ - { - Name: "GAS_PRICE_ORACLE_ETHEREUM_HTTP_URL", - Value: crd.Spec.L1URL, - }, - { - Name: "GAS_PRICE_ORACLE_LAYER_TWO_HTTP_URL", - Value: crd.Spec.L2URL, - }, - } - deployment := &appsv1.Deployment{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "gas-oracle", labels), - Spec: appsv1.DeploymentSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "app": "gas-oracle", - }, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: r.labels(), - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - InitContainers: []corev1.Container{ - { - Name: "wait-for-l1", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.L1URL), - "-t", - strconv.Itoa(crd.Spec.L1TimeoutSeconds), - }, - }, - { - Name: "wait-for-l2", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.L2URL), - "-t", - strconv.Itoa(crd.Spec.L2TimeoutSeconds), - }, - }, - }, - Containers: []corev1.Container{ - { - Name: "gpo", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - Env: append(baseEnv, crd.Spec.Env...), - }, - }, - }, - }, - }, - } - ctrl.SetControllerReference(crd, deployment, r.Scheme) - return deployment -} diff --git a/go/stackman/controllers/sequencer_controller.go b/go/stackman/controllers/sequencer_controller.go deleted file mode 100644 index ad974eb3877c..000000000000 --- a/go/stackman/controllers/sequencer_controller.go +++ /dev/null @@ -1,374 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "context" - "crypto/md5" - "encoding/hex" - "fmt" - appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/log" - "strconv" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" -) - -// SequencerReconciler reconciles a Sequencer object -type SequencerReconciler struct { - client.Client - Scheme *runtime.Scheme -} - -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=sequencers,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=sequencers/status,verbs=get;update;patch -//+kubebuilder:rbac:groups=stack.optimism-stacks.net,resources=sequencers/finalizers,verbs=update - -// Reconcile is part of the main kubernetes reconciliation loop which aims to -// move the current state of the cluster closer to the desired state. -// TODO(user): Modify the Reconcile function to compare the state specified by -// the Sequencer object against the actual cluster state, and then -// perform operations to make the cluster state reflect the state specified by -// the user. -// -// For more details, check Reconcile and its Result here: -// - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile -func (r *SequencerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - lgr := log.FromContext(ctx) - - crd := &stackv1.Sequencer{} - if err := r.Get(ctx, req.NamespacedName, crd); err != nil { - if errors.IsNotFound(err) { - lgr.Info("sequencer resource not found, ignoring") - return ctrl.Result{}, nil - } - - lgr.Error(err, "error getting sequencer") - return ctrl.Result{}, err - } - - created, err := GetOrCreateResource(ctx, r, func() client.Object { - return r.entrypointsCfgMap(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "sequencer-entrypoints"), &corev1.ConfigMap{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - statefulSet := &appsv1.StatefulSet{} - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.statefulSet(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "sequencer"), statefulSet) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - argsHash := r.deploymentArgsHash(crd) - if statefulSet.Labels["args_hash"] != argsHash { - err := r.Update(ctx, r.statefulSet(crd)) - if err != nil { - lgr.Error(err, "error updating sequencer statefulSet") - return ctrl.Result{}, err - } - - return ctrl.Result{Requeue: true}, nil - } - - created, err = GetOrCreateResource(ctx, r, func() client.Object { - return r.service(crd) - }, ObjectNamespacedName(crd.ObjectMeta, "sequencer"), &corev1.Service{}) - if err != nil { - return ctrl.Result{}, err - } - if created { - return ctrl.Result{Requeue: true}, nil - } - - return ctrl.Result{}, nil -} - -// SetupWithManager sets up the controller with the Manager. -func (r *SequencerReconciler) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&stackv1.Sequencer{}). - Complete(r) -} - -func (r *SequencerReconciler) labels() map[string]string { - return map[string]string{ - "app": "sequencer", - } -} - -func (r *SequencerReconciler) entrypointsCfgMap(crd *stackv1.Sequencer) *corev1.ConfigMap { - cfgMap := &corev1.ConfigMap{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "sequencer-entrypoints", r.labels()), - Data: map[string]string{ - "entrypoint.sh": SequencerEntrypoint, - }, - } - ctrl.SetControllerReference(crd, cfgMap, r.Scheme) - return cfgMap -} - -func (r *SequencerReconciler) statefulSet(crd *stackv1.Sequencer) *appsv1.StatefulSet { - replicas := int32(1) - defaultMode := int32(0o777) - om := ObjectMeta(crd.ObjectMeta, "sequencer", r.labels()) - om.Labels["args_hash"] = r.deploymentArgsHash(crd) - initContainers := []corev1.Container{ - { - Name: "wait-for-dtl", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.DTLURL), - "-t", - strconv.Itoa(crd.Spec.DTLTimeoutSeconds), - }, - }, - } - baseEnv := []corev1.EnvVar{ - { - Name: "ROLLUP_CLIENT_HTTP", - Value: crd.Spec.DTLURL, - }, - } - if crd.Spec.DeployerURL != "" { - initContainers = append(initContainers, corev1.Container{ - Name: "wait-for-deployer", - Image: "mslipper/wait-for-it:latest", - ImagePullPolicy: corev1.PullAlways, - Args: []string{ - Hostify(crd.Spec.DeployerURL), - "-t", - strconv.Itoa(crd.Spec.DeployerTimeoutSeconds), - }, - }) - baseEnv = append(baseEnv, []corev1.EnvVar{ - { - Name: "L2GETH_GENESIS_URL", - Value: fmt.Sprintf("%s/state-dump.latest.json", crd.Spec.DeployerURL), - }, - { - Name: "DEPLOYER_URL", - Value: crd.Spec.DeployerURL, - }, - }...) - } - volumes := []corev1.Volume{ - { - Name: "entrypoints", - VolumeSource: corev1.VolumeSource{ - ConfigMap: &corev1.ConfigMapVolumeSource{ - LocalObjectReference: corev1.LocalObjectReference{ - Name: ObjectName(crd.ObjectMeta, "sequencer-entrypoints"), - }, - DefaultMode: &defaultMode, - }, - }, - }, - } - var volumeClaimTemplates []corev1.PersistentVolumeClaim - dbVolumeName := "db" - if crd.Spec.DataPVC != nil { - dbVolumeName = crd.Spec.DataPVC.Name - storage := resource.MustParse("128Gi") - if crd.Spec.DataPVC.Storage != nil { - storage = *crd.Spec.DataPVC.Storage - } - volumeClaimTemplates = []corev1.PersistentVolumeClaim{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: crd.Spec.DataPVC.Name, - }, - Spec: corev1.PersistentVolumeClaimSpec{ - AccessModes: []corev1.PersistentVolumeAccessMode{ - corev1.ReadWriteOnce, - }, - Resources: corev1.ResourceRequirements{ - Requests: corev1.ResourceList{ - corev1.ResourceStorage: storage, - }, - }, - }, - }, - } - } else { - volumes = append(volumes, corev1.Volume{ - Name: dbVolumeName, - VolumeSource: corev1.VolumeSource{ - EmptyDir: &corev1.EmptyDirVolumeSource{}, - }, - }) - } - statefulSet := &appsv1.StatefulSet{ - ObjectMeta: om, - Spec: appsv1.StatefulSetSpec{ - Replicas: &replicas, - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "app": "sequencer", - }, - }, - Template: corev1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: r.labels(), - }, - Spec: corev1.PodSpec{ - RestartPolicy: corev1.RestartPolicyAlways, - InitContainers: initContainers, - Containers: []corev1.Container{ - { - Name: "sequencer", - Image: crd.Spec.Image, - ImagePullPolicy: corev1.PullAlways, - Command: append([]string{ - "/bin/sh", - "/opt/entrypoints/entrypoint.sh", - }, crd.Spec.AdditionalArgs...), - Env: append(baseEnv, crd.Spec.Env...), - VolumeMounts: []corev1.VolumeMount{ - { - Name: dbVolumeName, - MountPath: "/db", - }, - { - Name: "entrypoints", - MountPath: "/opt/entrypoints", - }, - }, - Ports: []corev1.ContainerPort{ - { - ContainerPort: 8545, - }, - { - ContainerPort: 8546, - }, - }, - }, - }, - Volumes: volumes, - }, - }, - VolumeClaimTemplates: volumeClaimTemplates, - }, - } - ctrl.SetControllerReference(crd, statefulSet, r.Scheme) - return statefulSet -} - -func (r *SequencerReconciler) service(crd *stackv1.Sequencer) *corev1.Service { - service := &corev1.Service{ - ObjectMeta: ObjectMeta(crd.ObjectMeta, "sequencer", r.labels()), - Spec: corev1.ServiceSpec{ - Selector: map[string]string{ - "app": "sequencer", - }, - Type: corev1.ServiceTypeClusterIP, - Ports: []corev1.ServicePort{ - { - Name: "rpc", - Port: 8545, - }, - { - Name: "websocket", - Port: 8546, - }, - }, - }, - } - ctrl.SetControllerReference(crd, service, r.Scheme) - return service -} - -func (r *SequencerReconciler) deploymentArgsHash(crd *stackv1.Sequencer) string { - h := md5.New() - h.Write([]byte(crd.Spec.Image)) - h.Write([]byte(crd.Spec.L1URL)) - h.Write([]byte(strconv.Itoa(crd.Spec.L1TimeoutSeconds))) - h.Write([]byte(crd.Spec.DeployerURL)) - h.Write([]byte(strconv.Itoa(crd.Spec.DeployerTimeoutSeconds))) - h.Write([]byte(crd.Spec.DTLURL)) - h.Write([]byte(strconv.Itoa(crd.Spec.DTLTimeoutSeconds))) - if crd.Spec.DataPVC != nil { - h.Write([]byte(crd.Spec.DataPVC.Name)) - h.Write([]byte(crd.Spec.DataPVC.Storage.String())) - } - for _, ev := range crd.Spec.Env { - h.Write([]byte(ev.String())) - } - for _, arg := range crd.Spec.AdditionalArgs { - h.Write([]byte(arg)) - } - return hex.EncodeToString(h.Sum(nil)) -} - -const SequencerEntrypoint = ` -#!/bin/sh -set -exu - -VERBOSITY=${VERBOSITY:-9} -GETH_DATA_DIR=/db -GETH_CHAINDATA_DIR="$GETH_DATA_DIR/geth/chaindata" -GETH_KEYSTORE_DIR="$GETH_DATA_DIR/keystore" - -if [ ! -d "$GETH_KEYSTORE_DIR" ]; then - echo "$GETH_KEYSTORE_DIR missing, running account import" - echo -n "pwd" > "$GETH_DATA_DIR"/password - echo -n "$BLOCK_SIGNER_PRIVATE_KEY" | sed 's/0x//' > "$GETH_DATA_DIR"/block-signer-key - geth account import \ - --datadir="$GETH_DATA_DIR" \ - --password="$GETH_DATA_DIR"/password \ - "$GETH_DATA_DIR"/block-signer-key -else - echo "$GETH_KEYSTORE_DIR exists." -fi - -if [ ! -d "$GETH_CHAINDATA_DIR" ]; then - echo "$GETH_CHAINDATA_DIR missing, running init" - echo "Retrieving genesis file $L2GETH_GENESIS_URL" - curl --silent -o "$GETH_DATA_DIR/genesis.json" "$L2GETH_GENESIS_URL" - geth --verbosity="$VERBOSITY" init \ - --datadir="$GETH_DATA_DIR" \ - "$GETH_DATA_DIR/genesis.json" -else - echo "$GETH_CHAINDATA_DIR exists." -fi - -geth \ - --verbosity="$VERBOSITY" \ - --datadir="$GETH_DATA_DIR" \ - --password="$GETH_DATA_DIR/password" \ - --allow-insecure-unlock \ - --unlock="$BLOCK_SIGNER_ADDRESS" \ - --mine \ - --miner.etherbase=$BLOCK_SIGNER_ADDRESS \ - "$@" -` diff --git a/go/stackman/controllers/suite_test.go b/go/stackman/controllers/suite_test.go deleted file mode 100644 index 9ff441db4e7f..000000000000 --- a/go/stackman/controllers/suite_test.go +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controllers - -import ( - "path/filepath" - "testing" - - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/envtest" - "sigs.k8s.io/controller-runtime/pkg/envtest/printer" - logf "sigs.k8s.io/controller-runtime/pkg/log" - "sigs.k8s.io/controller-runtime/pkg/log/zap" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" - //+kubebuilder:scaffold:imports -) - -// These tests use Ginkgo (BDD-style Go testing framework). Refer to -// http://onsi.github.io/ginkgo/ to learn more about Ginkgo. - -var cfg *rest.Config -var k8sClient client.Client -var testEnv *envtest.Environment - -func TestAPIs(t *testing.T) { - RegisterFailHandler(Fail) - - RunSpecsWithDefaultAndCustomReporters(t, - "Controller Suite", - []Reporter{printer.NewlineReporter{}}) -} - -var _ = BeforeSuite(func() { - logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) - - By("bootstrapping test environment") - testEnv = &envtest.Environment{ - CRDDirectoryPaths: []string{filepath.Join("..", "config", "crd", "bases")}, - ErrorIfCRDPathMissing: true, - } - - cfg, err := testEnv.Start() - Expect(err).NotTo(HaveOccurred()) - Expect(cfg).NotTo(BeNil()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - err = stackv1.AddToScheme(scheme.Scheme) - Expect(err).NotTo(HaveOccurred()) - - //+kubebuilder:scaffold:scheme - - k8sClient, err = client.New(cfg, client.Options{Scheme: scheme.Scheme}) - Expect(err).NotTo(HaveOccurred()) - Expect(k8sClient).NotTo(BeNil()) - -}, 60) - -var _ = AfterSuite(func() { - By("tearing down the test environment") - err := testEnv.Stop() - Expect(err).NotTo(HaveOccurred()) -}) diff --git a/go/stackman/controllers/util.go b/go/stackman/controllers/util.go deleted file mode 100644 index 5c436fc26787..000000000000 --- a/go/stackman/controllers/util.go +++ /dev/null @@ -1,87 +0,0 @@ -package controllers - -import ( - "context" - "fmt" - "k8s.io/apimachinery/pkg/api/errors" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" - "regexp" - "sigs.k8s.io/controller-runtime/pkg/client" - "strconv" - "strings" -) - -var httpRe *regexp.Regexp -var pathRe *regexp.Regexp -var portRe *regexp.Regexp - -func Hostify(in string) string { - port := 80 - if strings.HasPrefix(in, "https://") { - port = 443 - } - - out := httpRe.ReplaceAllString(in, "") - out = pathRe.ReplaceAllString(out, "") - if portRe.MatchString(out) { - return out - } - - return out + ":" + strconv.Itoa(port) -} - -func ObjectName(om v1.ObjectMeta, name string) string { - return fmt.Sprintf("%s-%s", om.Name, name) -} - -func ObjectNamespacedName(om v1.ObjectMeta, name string) types.NamespacedName { - return types.NamespacedName{ - Name: ObjectName(om, name), - Namespace: om.Namespace, - } -} - -func ObjectMeta(om v1.ObjectMeta, name string, labels map[string]string) v1.ObjectMeta { - return v1.ObjectMeta{ - Name: ObjectName(om, name), - Namespace: om.Namespace, - Labels: labels, - } -} - -type Creator func() client.Object - -type ReaderWriter interface { - client.Reader - client.Writer -} - -func GetOrCreateResource( - ctx context.Context, - client ReaderWriter, - creator Creator, - name types.NamespacedName, - proto client.Object, -) (bool, error) { - err := client.Get(ctx, name, proto) - if err == nil { - return false, nil - } - - if errors.IsNotFound(err) { - err = client.Create(ctx, creator()) - if err != nil { - return false, err - } - return true, nil - } - - return false, err -} - -func init() { - httpRe = regexp.MustCompile("^http(s)?://") - pathRe = regexp.MustCompile("/(.*)$") - portRe = regexp.MustCompile(":([\\d]+)$") -} diff --git a/go/stackman/controllers/util_test.go b/go/stackman/controllers/util_test.go deleted file mode 100644 index 8984adb48d1d..000000000000 --- a/go/stackman/controllers/util_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package controllers - -import ( - "github.com/stretchr/testify/require" - "testing" -) - -func TestHostify(t *testing.T) { - tests := [][2]string{ - { - "https://test.infura.io/v1/123456", - "test.infura.io:443", - }, - { - "http://test.infura.io/v1/123456", - "test.infura.io:80", - }, - { - "test.infura.io/v1/123456", - "test.infura.io:80", - }, - { - "test.infura.io", - "test.infura.io:80", - }, - { - "http://sequencer:8545", - "sequencer:8545", - }, - } - for _, tt := range tests { - t.Run(tt[0], func(t *testing.T) { - require.Equal(t, tt[1], Hostify(tt[0])) - }) - } -} diff --git a/go/stackman/go.mod b/go/stackman/go.mod deleted file mode 100644 index 897885f54722..000000000000 --- a/go/stackman/go.mod +++ /dev/null @@ -1,14 +0,0 @@ -module github.com/ethereum-optimism/optimism/go/stackman - -go 1.16 - -require ( - github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.15.0 - github.com/stretchr/testify v1.7.0 - gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/api v0.22.1 - k8s.io/apimachinery v0.22.1 - k8s.io/client-go v0.22.1 - sigs.k8s.io/controller-runtime v0.10.0 -) diff --git a/go/stackman/go.sum b/go/stackman/go.sum deleted file mode 100644 index 80d4bda8be15..000000000000 --- a/go/stackman/go.sum +++ /dev/null @@ -1,781 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0 h1:3ithwDMr7/3vpAMXiH+ZQnYbuIsh+OPhUPMFC9enmn0= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= -github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= -github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest/adal v0.9.13 h1:Mp5hbtOePIzM8pJVRa3YLrWWmZtoxRXqUEzCfJt3+/Q= -github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= -github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= -github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= -github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= -github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= -github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= -github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= -github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= -github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= -github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c= -github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= -github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/zapr v0.4.0 h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM= -github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= -github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.15.0 h1:WjP/FQ/sk43MRmnEcT+MlDw2TFvkrXlprrPST/IudjU= -github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= -go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= -go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= -go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= -go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= -go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= -go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= -go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= -go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= -go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= -go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= -go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE= -go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 h1:ADo5wSpq2gqaCGQWzk7S5vd//0iyyLeAratkEoG5dLE= -golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 h1:c8PlLMqBbOHoqtjteWm5/kbe6rNY2pbRfbIMVnepueo= -golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.2 h1:kRBLX7v7Af8W7Gdbbc908OJcdgtK8bOz9Uaj8/F1ACA= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= -gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.22.1 h1:ISu3tD/jRhYfSW8jI/Q1e+lRxkR7w9UwQEZ7FgslrwY= -k8s.io/api v0.22.1/go.mod h1:bh13rkTp3F1XEaLGykbyRD2QaTTzPm0e/BMd8ptFONY= -k8s.io/apiextensions-apiserver v0.22.1 h1:YSJYzlFNFSfUle+yeEXX0lSQyLEoxoPJySRupepb0gE= -k8s.io/apiextensions-apiserver v0.22.1/go.mod h1:HeGmorjtRmRLE+Q8dJu6AYRoZccvCMsghwS8XTUYb2c= -k8s.io/apimachinery v0.22.1 h1:DTARnyzmdHMz7bFWFDDm22AM4pLWTQECMpRTFu2d2OM= -k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= -k8s.io/apiserver v0.22.1/go.mod h1:2mcM6dzSt+XndzVQJX21Gx0/Klo7Aen7i0Ai6tIa400= -k8s.io/client-go v0.22.1 h1:jW0ZSHi8wW260FvcXHkIa0NLxFBQszTlhiAVsU5mopw= -k8s.io/client-go v0.22.1/go.mod h1:BquC5A4UOo4qVDUtoc04/+Nxp1MeHcVc1HJm1KmG8kk= -k8s.io/code-generator v0.22.1/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o= -k8s.io/component-base v0.22.1 h1:SFqIXsEN3v3Kkr1bS6rstrs1wd45StJqbtgbQ4nRQdo= -k8s.io/component-base v0.22.1/go.mod h1:0D+Bl8rrnsPN9v0dyYvkqFfBeAd4u7n77ze+p8CMiPo= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= -k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e h1:KLHHjkdQFomZy8+06csTWZ0m1343QqxZhR2LJ1OxCYM= -k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210802155522-efc7438f0176 h1:Mx0aa+SUAcNRQbs5jUzV8lkDlGFU8laZsY9jrcVX5SY= -k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/controller-runtime v0.10.0 h1:HgyZmMpjUOrtkaFtCnfxsR1bGRuFoAczSNbn2MoKj5U= -sigs.k8s.io/controller-runtime v0.10.0/go.mod h1:GCdh6kqV6IY4LK0JLwX0Zm6g233RtVGdb/f0+KSfprg= -sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/go/stackman/hack/boilerplate.go.txt b/go/stackman/hack/boilerplate.go.txt deleted file mode 100644 index 45dbbbbcf098..000000000000 --- a/go/stackman/hack/boilerplate.go.txt +++ /dev/null @@ -1,15 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ \ No newline at end of file diff --git a/go/stackman/main.go b/go/stackman/main.go deleted file mode 100644 index 0abb12f6b706..000000000000 --- a/go/stackman/main.go +++ /dev/null @@ -1,146 +0,0 @@ -/* -Copyright 2021. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package main - -import ( - "flag" - "os" - - // Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.) - // to ensure that exec-entrypoint and run can make use of them. - _ "k8s.io/client-go/plugin/pkg/client/auth" - - "k8s.io/apimachinery/pkg/runtime" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - clientgoscheme "k8s.io/client-go/kubernetes/scheme" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/healthz" - "sigs.k8s.io/controller-runtime/pkg/log/zap" - - stackv1 "github.com/ethereum-optimism/optimism/go/stackman/api/v1" - "github.com/ethereum-optimism/optimism/go/stackman/controllers" - //+kubebuilder:scaffold:imports -) - -var ( - scheme = runtime.NewScheme() - setupLog = ctrl.Log.WithName("setup") -) - -func init() { - utilruntime.Must(clientgoscheme.AddToScheme(scheme)) - - utilruntime.Must(stackv1.AddToScheme(scheme)) - //+kubebuilder:scaffold:scheme -} - -func main() { - var metricsAddr string - var enableLeaderElection bool - var probeAddr string - flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metric endpoint binds to.") - flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") - flag.BoolVar(&enableLeaderElection, "leader-elect", false, - "Enable leader election for controller manager. "+ - "Enabling this will ensure there is only one active controller manager.") - opts := zap.Options{ - Development: true, - } - opts.BindFlags(flag.CommandLine) - flag.Parse() - - ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) - - mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - HealthProbeBindAddress: probeAddr, - LeaderElection: enableLeaderElection, - LeaderElectionID: "8103f40b.optimism-stacks.net", - }) - if err != nil { - setupLog.Error(err, "unable to start manager") - os.Exit(1) - } - - if err = (&controllers.CliqueL1Reconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "CliqueL1") - os.Exit(1) - } - if err = (&controllers.DeployerReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "Deployer") - os.Exit(1) - } - if err = (&controllers.DataTransportLayerReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "DataTransportLayer") - os.Exit(1) - } - if err = (&controllers.SequencerReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "Sequencer") - os.Exit(1) - } - if err = (&controllers.BatchSubmitterReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "BatchSubmitter") - os.Exit(1) - } - if err = (&controllers.GasOracleReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "GasOracle") - os.Exit(1) - } - if err = (&controllers.ActorReconciler{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "Actor") - os.Exit(1) - } - //+kubebuilder:scaffold:builder - - if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil { - setupLog.Error(err, "unable to set up health check") - os.Exit(1) - } - if err := mgr.AddReadyzCheck("readyz", healthz.Ping); err != nil { - setupLog.Error(err, "unable to set up ready check") - os.Exit(1) - } - - setupLog.Info("starting manager") - if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { - setupLog.Error(err, "problem running manager") - os.Exit(1) - } -} diff --git a/go/indexer/CHANGELOG.md b/indexer/CHANGELOG.md similarity index 100% rename from go/indexer/CHANGELOG.md rename to indexer/CHANGELOG.md diff --git a/ops/docker/Dockerfile.indexer b/indexer/Dockerfile similarity index 53% rename from ops/docker/Dockerfile.indexer rename to indexer/Dockerfile index aa0096cbd9cf..5bb594b8a844 100644 --- a/ops/docker/Dockerfile.indexer +++ b/indexer/Dockerfile @@ -2,11 +2,12 @@ FROM golang:1.18.0-alpine3.15 as builder RUN apk add --no-cache make gcc musl-dev linux-headers git jq bash -COPY ./go/indexer /go/indexer -COPY ./go/indexer/go.mod ./go/indexer/go.sum /go/indexer/ +COPY ./indexer /go/indexer +COPY ./l2geth /go/l2geth + +COPY ./indexer/docker.go.work /go/go.work + WORKDIR /go/indexer -RUN go mod graph | grep -v indexer | awk '{if ($1 !~ "@") print $2}' | xargs -n 1 go get -COPY ./go/indexer/ ./ RUN make FROM alpine:3.15 diff --git a/go/indexer/Makefile b/indexer/Makefile similarity index 100% rename from go/indexer/Makefile rename to indexer/Makefile diff --git a/go/indexer/bindings/address_manager/address_manager.go b/indexer/bindings/address_manager/address_manager.go similarity index 100% rename from go/indexer/bindings/address_manager/address_manager.go rename to indexer/bindings/address_manager/address_manager.go diff --git a/go/indexer/bindings/l1bridge/l1_standard_bridge.go b/indexer/bindings/l1bridge/l1_standard_bridge.go similarity index 100% rename from go/indexer/bindings/l1bridge/l1_standard_bridge.go rename to indexer/bindings/l1bridge/l1_standard_bridge.go diff --git a/go/indexer/bindings/l1erc20/l1erc20.go b/indexer/bindings/l1erc20/l1erc20.go similarity index 100% rename from go/indexer/bindings/l1erc20/l1erc20.go rename to indexer/bindings/l1erc20/l1erc20.go diff --git a/go/indexer/bindings/l2bridge/l2_standard_bridge.go b/indexer/bindings/l2bridge/l2_standard_bridge.go similarity index 100% rename from go/indexer/bindings/l2bridge/l2_standard_bridge.go rename to indexer/bindings/l2bridge/l2_standard_bridge.go diff --git a/go/indexer/bindings/l2erc20/l2erc20.go b/indexer/bindings/l2erc20/l2erc20.go similarity index 100% rename from go/indexer/bindings/l2erc20/l2erc20.go rename to indexer/bindings/l2erc20/l2erc20.go diff --git a/go/indexer/bindings/scc/statecommitmentchain.go b/indexer/bindings/scc/statecommitmentchain.go similarity index 100% rename from go/indexer/bindings/scc/statecommitmentchain.go rename to indexer/bindings/scc/statecommitmentchain.go diff --git a/go/indexer/cmd/indexer/main.go b/indexer/cmd/indexer/main.go similarity index 89% rename from go/indexer/cmd/indexer/main.go rename to indexer/cmd/indexer/main.go index e2a442b3cb9c..e1287f70d013 100644 --- a/go/indexer/cmd/indexer/main.go +++ b/indexer/cmd/indexer/main.go @@ -8,8 +8,8 @@ import ( "github.com/ethereum/go-ethereum/params" "github.com/urfave/cli" - "github.com/ethereum-optimism/optimism/go/indexer" - "github.com/ethereum-optimism/optimism/go/indexer/flags" + "github.com/ethereum-optimism/optimism/indexer" + "github.com/ethereum-optimism/optimism/indexer/flags" ) var ( diff --git a/go/indexer/config.go b/indexer/config.go similarity index 98% rename from go/indexer/config.go rename to indexer/config.go index a78bed6f5018..6b890d3f4d34 100644 --- a/go/indexer/config.go +++ b/indexer/config.go @@ -7,7 +7,7 @@ import ( "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli" - "github.com/ethereum-optimism/optimism/go/indexer/flags" + "github.com/ethereum-optimism/optimism/indexer/flags" ) var ( diff --git a/go/indexer/config_test.go b/indexer/config_test.go similarity index 91% rename from go/indexer/config_test.go rename to indexer/config_test.go index 9b4bb8a48689..67db90e967ed 100644 --- a/go/indexer/config_test.go +++ b/indexer/config_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - indexer "github.com/ethereum-optimism/optimism/go/indexer" + indexer "github.com/ethereum-optimism/optimism/indexer" "github.com/stretchr/testify/require" ) diff --git a/go/indexer/contracts/ERC20.sol/ERC20.dbg.json b/indexer/contracts/ERC20.sol/ERC20.dbg.json similarity index 100% rename from go/indexer/contracts/ERC20.sol/ERC20.dbg.json rename to indexer/contracts/ERC20.sol/ERC20.dbg.json diff --git a/go/indexer/contracts/ERC20.sol/ERC20.json b/indexer/contracts/ERC20.sol/ERC20.json similarity index 100% rename from go/indexer/contracts/ERC20.sol/ERC20.json rename to indexer/contracts/ERC20.sol/ERC20.json diff --git a/go/indexer/crypto.go b/indexer/crypto.go similarity index 100% rename from go/indexer/crypto.go rename to indexer/crypto.go diff --git a/go/indexer/crypto_test.go b/indexer/crypto_test.go similarity index 97% rename from go/indexer/crypto_test.go rename to indexer/crypto_test.go index 796f0ea288f8..1b298cbab780 100644 --- a/go/indexer/crypto_test.go +++ b/indexer/crypto_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - indexer "github.com/ethereum-optimism/optimism/go/indexer" + indexer "github.com/ethereum-optimism/optimism/indexer" l2common "github.com/ethereum-optimism/optimism/l2geth/common" "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" diff --git a/go/indexer/db/airdrop.go b/indexer/db/airdrop.go similarity index 100% rename from go/indexer/db/airdrop.go rename to indexer/db/airdrop.go diff --git a/go/indexer/db/db.go b/indexer/db/db.go similarity index 100% rename from go/indexer/db/db.go rename to indexer/db/db.go diff --git a/go/indexer/db/deposit.go b/indexer/db/deposit.go similarity index 100% rename from go/indexer/db/deposit.go rename to indexer/db/deposit.go diff --git a/go/indexer/db/eth.go b/indexer/db/eth.go similarity index 100% rename from go/indexer/db/eth.go rename to indexer/db/eth.go diff --git a/go/indexer/db/guid.go b/indexer/db/guid.go similarity index 100% rename from go/indexer/db/guid.go rename to indexer/db/guid.go diff --git a/go/indexer/db/l1block.go b/indexer/db/l1block.go similarity index 100% rename from go/indexer/db/l1block.go rename to indexer/db/l1block.go diff --git a/go/indexer/db/locator.go b/indexer/db/locator.go similarity index 100% rename from go/indexer/db/locator.go rename to indexer/db/locator.go diff --git a/go/indexer/db/pagination.go b/indexer/db/pagination.go similarity index 100% rename from go/indexer/db/pagination.go rename to indexer/db/pagination.go diff --git a/go/indexer/db/sql.go b/indexer/db/sql.go similarity index 100% rename from go/indexer/db/sql.go rename to indexer/db/sql.go diff --git a/go/indexer/db/state_batch.go b/indexer/db/state_batch.go similarity index 100% rename from go/indexer/db/state_batch.go rename to indexer/db/state_batch.go diff --git a/go/indexer/db/token.go b/indexer/db/token.go similarity index 100% rename from go/indexer/db/token.go rename to indexer/db/token.go diff --git a/go/indexer/db/txn.go b/indexer/db/txn.go similarity index 100% rename from go/indexer/db/txn.go rename to indexer/db/txn.go diff --git a/go/indexer/db/withdrawal.go b/indexer/db/withdrawal.go similarity index 100% rename from go/indexer/db/withdrawal.go rename to indexer/db/withdrawal.go diff --git a/indexer/docker.go.work b/indexer/docker.go.work new file mode 100644 index 000000000000..46799c92be7d --- /dev/null +++ b/indexer/docker.go.work @@ -0,0 +1,6 @@ +go 1.18 + +use ( + ./indexer + ./l2geth +) diff --git a/go/indexer/flags/flags.go b/indexer/flags/flags.go similarity index 100% rename from go/indexer/flags/flags.go rename to indexer/flags/flags.go diff --git a/go/indexer/flags/flags_test.go b/indexer/flags/flags_test.go similarity index 100% rename from go/indexer/flags/flags_test.go rename to indexer/flags/flags_test.go diff --git a/go/indexer/go.mod b/indexer/go.mod similarity index 95% rename from go/indexer/go.mod rename to indexer/go.mod index 1a58ae55aa53..d5a779b4eb7c 100644 --- a/go/indexer/go.mod +++ b/indexer/go.mod @@ -1,9 +1,11 @@ -module github.com/ethereum-optimism/optimism/go/indexer +module github.com/ethereum-optimism/optimism/indexer go 1.17 +replace github.com/ethereum-optimism/optimism/l2geth v0.0.0 => ../l2geth + require ( - github.com/ethereum-optimism/optimism/l2geth v0.0.0-20220104205740-f39387287484 + github.com/ethereum-optimism/optimism/l2geth v0.0.0 github.com/ethereum/go-ethereum v1.10.16 github.com/getsentry/sentry-go v0.12.0 github.com/google/uuid v1.3.0 diff --git a/go/indexer/go.sum b/indexer/go.sum similarity index 100% rename from go/indexer/go.sum rename to indexer/go.sum diff --git a/go/indexer/indexer.go b/indexer/indexer.go similarity index 95% rename from go/indexer/indexer.go rename to indexer/indexer.go index ca4f5ae629e1..92f89cd1c13e 100644 --- a/go/indexer/indexer.go +++ b/indexer/indexer.go @@ -9,17 +9,17 @@ import ( "strconv" "time" - "github.com/ethereum-optimism/optimism/go/indexer/services" + "github.com/ethereum-optimism/optimism/indexer/services" l2rpc "github.com/ethereum-optimism/optimism/l2geth/rpc" - "github.com/ethereum-optimism/optimism/go/indexer/metrics" - "github.com/ethereum-optimism/optimism/go/indexer/server" + "github.com/ethereum-optimism/optimism/indexer/metrics" + "github.com/ethereum-optimism/optimism/indexer/server" "github.com/rs/cors" - database "github.com/ethereum-optimism/optimism/go/indexer/db" - "github.com/ethereum-optimism/optimism/go/indexer/services/l1" - "github.com/ethereum-optimism/optimism/go/indexer/services/l2" + database "github.com/ethereum-optimism/optimism/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/services/l1" + "github.com/ethereum-optimism/optimism/indexer/services/l2" l2ethclient "github.com/ethereum-optimism/optimism/l2geth/ethclient" "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/log" diff --git a/go/indexer/metrics/metrics.go b/indexer/metrics/metrics.go similarity index 100% rename from go/indexer/metrics/metrics.go rename to indexer/metrics/metrics.go diff --git a/go/indexer/package.json b/indexer/package.json similarity index 100% rename from go/indexer/package.json rename to indexer/package.json diff --git a/go/indexer/sentry_log.go b/indexer/sentry_log.go similarity index 100% rename from go/indexer/sentry_log.go rename to indexer/sentry_log.go diff --git a/go/indexer/server/server.go b/indexer/server/server.go similarity index 97% rename from go/indexer/server/server.go rename to indexer/server/server.go index 2d832b059012..0b194f2baedf 100644 --- a/go/indexer/server/server.go +++ b/indexer/server/server.go @@ -6,7 +6,7 @@ import ( "runtime/debug" "time" - "github.com/ethereum-optimism/optimism/go/indexer/metrics" + "github.com/ethereum-optimism/optimism/indexer/metrics" "github.com/ethereum/go-ethereum/log" ) diff --git a/go/indexer/services/airdrop.go b/indexer/services/airdrop.go similarity index 84% rename from go/indexer/services/airdrop.go rename to indexer/services/airdrop.go index d801b30a72c0..ef67ab9b1dd3 100644 --- a/go/indexer/services/airdrop.go +++ b/indexer/services/airdrop.go @@ -3,9 +3,9 @@ package services import ( "net/http" - "github.com/ethereum-optimism/optimism/go/indexer/db" - "github.com/ethereum-optimism/optimism/go/indexer/metrics" - "github.com/ethereum-optimism/optimism/go/indexer/server" + "github.com/ethereum-optimism/optimism/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/metrics" + "github.com/ethereum-optimism/optimism/indexer/server" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/log" "github.com/gorilla/mux" diff --git a/go/indexer/services/l1/bridge/addresses.go b/indexer/services/l1/bridge/addresses.go similarity index 95% rename from go/indexer/services/l1/bridge/addresses.go rename to indexer/services/l1/bridge/addresses.go index 00927ec7b05b..d24a7780a0fb 100644 --- a/go/indexer/services/l1/bridge/addresses.go +++ b/indexer/services/l1/bridge/addresses.go @@ -3,7 +3,7 @@ package bridge import ( "fmt" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/address_manager" + "github.com/ethereum-optimism/optimism/indexer/bindings/address_manager" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) diff --git a/go/indexer/services/l1/bridge/bridge.go b/indexer/services/l1/bridge/bridge.go similarity index 92% rename from go/indexer/services/l1/bridge/bridge.go rename to indexer/services/l1/bridge/bridge.go index 27493f85fbae..0f0f41755625 100644 --- a/go/indexer/services/l1/bridge/bridge.go +++ b/indexer/services/l1/bridge/bridge.go @@ -5,9 +5,9 @@ import ( "errors" "math/big" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l1bridge" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/scc" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/bindings/l1bridge" + "github.com/ethereum-optimism/optimism/indexer/bindings/scc" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) diff --git a/go/indexer/services/l1/bridge/const.go b/indexer/services/l1/bridge/const.go similarity index 100% rename from go/indexer/services/l1/bridge/const.go rename to indexer/services/l1/bridge/const.go diff --git a/go/indexer/services/l1/bridge/eth_bridge.go b/indexer/services/l1/bridge/eth_bridge.go similarity index 90% rename from go/indexer/services/l1/bridge/eth_bridge.go rename to indexer/services/l1/bridge/eth_bridge.go index 6ea9a4e4a184..892749fdeb1f 100644 --- a/go/indexer/services/l1/bridge/eth_bridge.go +++ b/indexer/services/l1/bridge/eth_bridge.go @@ -3,8 +3,8 @@ package bridge import ( "context" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l1bridge" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/bindings/l1bridge" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) diff --git a/go/indexer/services/l1/bridge/filter.go b/indexer/services/l1/bridge/filter.go similarity index 94% rename from go/indexer/services/l1/bridge/filter.go rename to indexer/services/l1/bridge/filter.go index 14800f54de74..edc6d08ffa62 100644 --- a/go/indexer/services/l1/bridge/filter.go +++ b/indexer/services/l1/bridge/filter.go @@ -4,8 +4,8 @@ import ( "context" "time" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l1bridge" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/scc" + "github.com/ethereum-optimism/optimism/indexer/bindings/l1bridge" + "github.com/ethereum-optimism/optimism/indexer/bindings/scc" "github.com/ethereum/go-ethereum/accounts/abi/bind" ) diff --git a/go/indexer/services/l1/bridge/log.go b/indexer/services/l1/bridge/log.go similarity index 100% rename from go/indexer/services/l1/bridge/log.go rename to indexer/services/l1/bridge/log.go diff --git a/go/indexer/services/l1/bridge/standard_bridge.go b/indexer/services/l1/bridge/standard_bridge.go similarity index 91% rename from go/indexer/services/l1/bridge/standard_bridge.go rename to indexer/services/l1/bridge/standard_bridge.go index d0e3ade39e05..0951627ea4a3 100644 --- a/go/indexer/services/l1/bridge/standard_bridge.go +++ b/indexer/services/l1/bridge/standard_bridge.go @@ -3,8 +3,8 @@ package bridge import ( "context" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l1bridge" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/bindings/l1bridge" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) diff --git a/go/indexer/services/l1/confirmed_headers.go b/indexer/services/l1/confirmed_headers.go similarity index 99% rename from go/indexer/services/l1/confirmed_headers.go rename to indexer/services/l1/confirmed_headers.go index 7f02a2395255..aa472448fba5 100644 --- a/go/indexer/services/l1/confirmed_headers.go +++ b/indexer/services/l1/confirmed_headers.go @@ -7,7 +7,7 @@ import ( "math/big" "time" - "github.com/ethereum-optimism/optimism/go/indexer/services/util" + "github.com/ethereum-optimism/optimism/indexer/services/util" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" diff --git a/go/indexer/services/l1/query.go b/indexer/services/l1/query.go similarity index 85% rename from go/indexer/services/l1/query.go rename to indexer/services/l1/query.go index ec0ba7b8cca7..eeb86c6f6945 100644 --- a/go/indexer/services/l1/query.go +++ b/indexer/services/l1/query.go @@ -3,12 +3,12 @@ package l1 import ( "context" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l1erc20" + "github.com/ethereum-optimism/optimism/indexer/bindings/l1erc20" "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/scc" - "github.com/ethereum-optimism/optimism/go/indexer/db" - "github.com/ethereum-optimism/optimism/go/indexer/services/l1/bridge" + "github.com/ethereum-optimism/optimism/indexer/bindings/scc" + "github.com/ethereum-optimism/optimism/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/services/l1/bridge" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" ) diff --git a/go/indexer/services/l1/service.go b/indexer/services/l1/service.go similarity index 97% rename from go/indexer/services/l1/service.go rename to indexer/services/l1/service.go index 50407fb79b47..0161a6b837cb 100644 --- a/go/indexer/services/l1/service.go +++ b/indexer/services/l1/service.go @@ -11,16 +11,16 @@ import ( "sync/atomic" "time" - "github.com/ethereum-optimism/optimism/go/indexer/metrics" + "github.com/ethereum-optimism/optimism/indexer/metrics" "github.com/prometheus/client_golang/prometheus" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/scc" - "github.com/ethereum-optimism/optimism/go/indexer/server" - "github.com/ethereum-optimism/optimism/go/indexer/services/l1/bridge" + "github.com/ethereum-optimism/optimism/indexer/bindings/scc" + "github.com/ethereum-optimism/optimism/indexer/server" + "github.com/ethereum-optimism/optimism/indexer/services/l1/bridge" _ "github.com/lib/pq" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/ethclient" diff --git a/go/indexer/services/l2/bridge/bridge.go b/indexer/services/l2/bridge/bridge.go similarity index 93% rename from go/indexer/services/l2/bridge/bridge.go rename to indexer/services/l2/bridge/bridge.go index 68c9c5aa06d9..cd9cb800453a 100644 --- a/go/indexer/services/l2/bridge/bridge.go +++ b/indexer/services/l2/bridge/bridge.go @@ -5,8 +5,8 @@ import ( "errors" "math/big" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l2bridge" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/bindings/l2bridge" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum-optimism/optimism/l2geth/accounts/abi/bind" "github.com/ethereum-optimism/optimism/l2geth/common" diff --git a/go/indexer/services/l2/bridge/const.go b/indexer/services/l2/bridge/const.go similarity index 100% rename from go/indexer/services/l2/bridge/const.go rename to indexer/services/l2/bridge/const.go diff --git a/go/indexer/services/l2/bridge/filter.go b/indexer/services/l2/bridge/filter.go similarity index 92% rename from go/indexer/services/l2/bridge/filter.go rename to indexer/services/l2/bridge/filter.go index 302d906b0d88..bc67b6d4de29 100644 --- a/go/indexer/services/l2/bridge/filter.go +++ b/indexer/services/l2/bridge/filter.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l2bridge" + "github.com/ethereum-optimism/optimism/indexer/bindings/l2bridge" "github.com/ethereum-optimism/optimism/l2geth/accounts/abi/bind" ) diff --git a/go/indexer/services/l2/bridge/log.go b/indexer/services/l2/bridge/log.go similarity index 100% rename from go/indexer/services/l2/bridge/log.go rename to indexer/services/l2/bridge/log.go diff --git a/go/indexer/services/l2/bridge/standard_bridge.go b/indexer/services/l2/bridge/standard_bridge.go similarity index 91% rename from go/indexer/services/l2/bridge/standard_bridge.go rename to indexer/services/l2/bridge/standard_bridge.go index 9ee5693a3a69..52f23ed6e356 100644 --- a/go/indexer/services/l2/bridge/standard_bridge.go +++ b/indexer/services/l2/bridge/standard_bridge.go @@ -3,8 +3,8 @@ package bridge import ( "context" - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l2bridge" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/bindings/l2bridge" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum-optimism/optimism/l2geth/accounts/abi/bind" "github.com/ethereum-optimism/optimism/l2geth/common" diff --git a/go/indexer/services/l2/confirmed_headers.go b/indexer/services/l2/confirmed_headers.go similarity index 98% rename from go/indexer/services/l2/confirmed_headers.go rename to indexer/services/l2/confirmed_headers.go index 17b31e346b11..7d7889182f01 100644 --- a/go/indexer/services/l2/confirmed_headers.go +++ b/indexer/services/l2/confirmed_headers.go @@ -6,7 +6,7 @@ import ( "math/big" "time" - "github.com/ethereum-optimism/optimism/go/indexer/services/util" + "github.com/ethereum-optimism/optimism/indexer/services/util" "github.com/ethereum-optimism/optimism/l2geth/rpc" "github.com/ethereum-optimism/optimism/l2geth/core/types" diff --git a/go/indexer/services/l2/query.go b/indexer/services/l2/query.go similarity index 86% rename from go/indexer/services/l2/query.go rename to indexer/services/l2/query.go index 06357fc38919..7c939a2f3e70 100644 --- a/go/indexer/services/l2/query.go +++ b/indexer/services/l2/query.go @@ -1,8 +1,8 @@ package l2 import ( - "github.com/ethereum-optimism/optimism/go/indexer/bindings/l2erc20" - "github.com/ethereum-optimism/optimism/go/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/bindings/l2erc20" + "github.com/ethereum-optimism/optimism/indexer/db" "github.com/ethereum-optimism/optimism/l2geth/accounts/abi/bind" l2common "github.com/ethereum-optimism/optimism/l2geth/common" l2ethclient "github.com/ethereum-optimism/optimism/l2geth/ethclient" diff --git a/go/indexer/services/l2/service.go b/indexer/services/l2/service.go similarity index 97% rename from go/indexer/services/l2/service.go rename to indexer/services/l2/service.go index a5d615b480c7..af0437fe3089 100644 --- a/go/indexer/services/l2/service.go +++ b/indexer/services/l2/service.go @@ -12,12 +12,12 @@ import ( l2rpc "github.com/ethereum-optimism/optimism/l2geth/rpc" - "github.com/ethereum-optimism/optimism/go/indexer/metrics" - "github.com/ethereum-optimism/optimism/go/indexer/server" + "github.com/ethereum-optimism/optimism/indexer/metrics" + "github.com/ethereum-optimism/optimism/indexer/server" "github.com/prometheus/client_golang/prometheus" - "github.com/ethereum-optimism/optimism/go/indexer/db" - "github.com/ethereum-optimism/optimism/go/indexer/services/l2/bridge" + "github.com/ethereum-optimism/optimism/indexer/db" + "github.com/ethereum-optimism/optimism/indexer/services/l2/bridge" "github.com/ethereum-optimism/optimism/l2geth/common" "github.com/ethereum-optimism/optimism/l2geth/core/types" l2ethclient "github.com/ethereum-optimism/optimism/l2geth/ethclient" diff --git a/go/indexer/services/util/util.go b/indexer/services/util/util.go similarity index 100% rename from go/indexer/services/util/util.go rename to indexer/services/util/util.go diff --git a/go/l2geth-exporter/.gitignore b/l2geth-exporter/.gitignore similarity index 100% rename from go/l2geth-exporter/.gitignore rename to l2geth-exporter/.gitignore diff --git a/go/l2geth-exporter/CHANGELOG.md b/l2geth-exporter/CHANGELOG.md similarity index 100% rename from go/l2geth-exporter/CHANGELOG.md rename to l2geth-exporter/CHANGELOG.md diff --git a/ops/docker/Dockerfile.l2geth-exporter b/l2geth-exporter/Dockerfile similarity index 74% rename from ops/docker/Dockerfile.l2geth-exporter rename to l2geth-exporter/Dockerfile index a622c9d9738a..4421f74f16b6 100644 --- a/ops/docker/Dockerfile.l2geth-exporter +++ b/l2geth-exporter/Dockerfile @@ -1,6 +1,7 @@ -FROM golang:1.16 as builder +FROM golang:1.18.0-alpine3.15 as builder + +COPY ./l2geth-exporter /app -COPY ./go/l2geth-exporter /app/ WORKDIR /app/ RUN make build diff --git a/go/l2geth-exporter/Makefile b/l2geth-exporter/Makefile similarity index 100% rename from go/l2geth-exporter/Makefile rename to l2geth-exporter/Makefile diff --git a/go/l2geth-exporter/bindings/CanonicalTransactionChain.go b/l2geth-exporter/bindings/CanonicalTransactionChain.go similarity index 100% rename from go/l2geth-exporter/bindings/CanonicalTransactionChain.go rename to l2geth-exporter/bindings/CanonicalTransactionChain.go diff --git a/go/l2geth-exporter/bindings/StateCommitmentChain.go b/l2geth-exporter/bindings/StateCommitmentChain.go similarity index 100% rename from go/l2geth-exporter/bindings/StateCommitmentChain.go rename to l2geth-exporter/bindings/StateCommitmentChain.go diff --git a/go/l2geth-exporter/collector.go b/l2geth-exporter/collector.go similarity index 100% rename from go/l2geth-exporter/collector.go rename to l2geth-exporter/collector.go diff --git a/go/l2geth-exporter/go.mod b/l2geth-exporter/go.mod similarity index 63% rename from go/l2geth-exporter/go.mod rename to l2geth-exporter/go.mod index 572b3f40d62f..4db6f032ccf7 100644 --- a/go/l2geth-exporter/go.mod +++ b/l2geth-exporter/go.mod @@ -1,4 +1,4 @@ -module github.com/ethereum-optimism/optimism/go/l2geth-exporter +module github.com/ethereum-optimism/optimism/l2geth-exporter go 1.16 diff --git a/go/l2geth-exporter/go.sum b/l2geth-exporter/go.sum similarity index 100% rename from go/l2geth-exporter/go.sum rename to l2geth-exporter/go.sum diff --git a/go/l2geth-exporter/l1contracts/main.go b/l2geth-exporter/l1contracts/main.go similarity index 94% rename from go/l2geth-exporter/l1contracts/main.go rename to l2geth-exporter/l1contracts/main.go index 781892c27f1b..f7fcc516d4af 100644 --- a/go/l2geth-exporter/l1contracts/main.go +++ b/l2geth-exporter/l1contracts/main.go @@ -4,7 +4,7 @@ import ( "context" "math/big" - "github.com/ethereum-optimism/optimism/go/l2geth-exporter/bindings" + "github.com/ethereum-optimism/optimism/l2geth-exporter/bindings" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" diff --git a/go/l2geth-exporter/main.go b/l2geth-exporter/main.go similarity index 97% rename from go/l2geth-exporter/main.go rename to l2geth-exporter/main.go index fc5db0c74695..cc4c2eaeedc2 100644 --- a/go/l2geth-exporter/main.go +++ b/l2geth-exporter/main.go @@ -7,7 +7,7 @@ import ( "os" "time" - "github.com/ethereum-optimism/optimism/go/l2geth-exporter/l1contracts" + "github.com/ethereum-optimism/optimism/l2geth-exporter/l1contracts" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/log" diff --git a/go/l2geth-exporter/package.json b/l2geth-exporter/package.json similarity index 100% rename from go/l2geth-exporter/package.json rename to l2geth-exporter/package.json diff --git a/ops/docker/Dockerfile.geth b/l2geth/Dockerfile similarity index 68% rename from ops/docker/Dockerfile.geth rename to l2geth/Dockerfile index c372279a04e3..8ce4f9b0c44c 100644 --- a/ops/docker/Dockerfile.geth +++ b/l2geth/Dockerfile @@ -3,17 +3,16 @@ FROM golang:1.18.0-alpine3.15 as builder RUN apk add --no-cache make gcc musl-dev linux-headers git -COPY ./l2geth/go.mod ./l2geth/go.sum /go-ethereum/ -WORKDIR /go-ethereum -RUN go mod download -COPY ./l2geth ./ +COPY ./l2geth /app/l2geth + +WORKDIR /app/l2geth RUN make geth # Pull Geth into a second stage deploy alpine container FROM alpine:3.15 RUN apk add --no-cache ca-certificates jq curl -COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/ +COPY --from=builder /app/l2geth/build/bin/geth /usr/local/bin/ WORKDIR /usr/local/bin/ EXPOSE 8545 8546 8547 diff --git a/go/op-exporter/.gitignore b/op-exporter/.gitignore similarity index 100% rename from go/op-exporter/.gitignore rename to op-exporter/.gitignore diff --git a/go/op-exporter/CHANGELOG.md b/op-exporter/CHANGELOG.md similarity index 100% rename from go/op-exporter/CHANGELOG.md rename to op-exporter/CHANGELOG.md diff --git a/ops/docker/Dockerfile.op-exporter b/op-exporter/Dockerfile similarity index 74% rename from ops/docker/Dockerfile.op-exporter rename to op-exporter/Dockerfile index 6bd5fbc4a8b6..a45f5e3352fd 100644 --- a/ops/docker/Dockerfile.op-exporter +++ b/op-exporter/Dockerfile @@ -1,6 +1,7 @@ -FROM golang:1.16 as builder +FROM golang:1.18.0-alpine3.15 as builder + +COPY ./op-exporter /app -COPY ./go/op-exporter /app/ WORKDIR /app/ RUN make build diff --git a/go/op-exporter/Makefile b/op-exporter/Makefile similarity index 51% rename from go/op-exporter/Makefile rename to op-exporter/Makefile index 270f078dd51b..7d2c0c50d51b 100644 --- a/go/op-exporter/Makefile +++ b/op-exporter/Makefile @@ -10,9 +10,9 @@ ifndef BUILDDATE BUILDDATE := `date +%Y-%m-%d` endif -LDFLAGSSTRING :=-X github.com/ethereum-optimism/optimism/go/op_exporter/version.Version=$(VERSION) -LDFLAGSSTRING +=-X github.com/ethereum-optimism/optimism/go/op_exporter/version.GitCommit=$(GITCOMMIT) -LDFLAGSSTRING +=-X github.com/ethereum-optimism/optimism/go/op_exporter/version.BuildDate=$(BUILDDATE) +LDFLAGSSTRING :=-X github.com/ethereum-optimism/op_exporter/version.Version=$(VERSION) +LDFLAGSSTRING +=-X github.com/ethereum-optimism/op_exporter/version.GitCommit=$(GITCOMMIT) +LDFLAGSSTRING +=-X github.com/ethereum-optimism/op_exporter/version.BuildDate=$(BUILDDATE) LDFLAGS :=-ldflags "$(LDFLAGSSTRING)" diff --git a/go/op-exporter/README.md b/op-exporter/README.md similarity index 100% rename from go/op-exporter/README.md rename to op-exporter/README.md diff --git a/go/op-exporter/collector.go b/op-exporter/collector.go similarity index 100% rename from go/op-exporter/collector.go rename to op-exporter/collector.go diff --git a/go/op-exporter/go.mod b/op-exporter/go.mod similarity index 65% rename from go/op-exporter/go.mod rename to op-exporter/go.mod index fc90e7bd96e9..20df8aa9ac31 100644 --- a/go/op-exporter/go.mod +++ b/op-exporter/go.mod @@ -1,9 +1,8 @@ -module github.com/ethereum-optimism/optimism/go/op-exporter +module github.com/ethereum-optimism/optimism/op-exporter go 1.16 require ( - github.com/ethereum-optimism/optimism/go/op_exporter v0.0.0-20211207210647-c5a8db939ad4 github.com/ethereum/go-ethereum v1.10.4 github.com/prometheus/client_golang v1.4.0 github.com/sirupsen/logrus v1.4.2 diff --git a/go/op-exporter/go.sum b/op-exporter/go.sum similarity index 99% rename from go/op-exporter/go.sum rename to op-exporter/go.sum index 30054c4c3747..cc15dc5481e2 100644 --- a/go/op-exporter/go.sum +++ b/op-exporter/go.sum @@ -124,8 +124,8 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkg github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum-optimism/optimism/go/op_exporter v0.0.0-20211207210647-c5a8db939ad4 h1:tTFuDWKAWayPWkqWd8CPwSfDoO4tMVScZgM5nhXs2+c= -github.com/ethereum-optimism/optimism/go/op_exporter v0.0.0-20211207210647-c5a8db939ad4/go.mod h1:w2HqYJpeDcqB6ZpPDsD7NmkvJCDAs23uNW7YHTn4g0M= +github.com/ethereum-optimism/op_exporter v0.0.0-20211207210647-c5a8db939ad4 h1:tTFuDWKAWayPWkqWd8CPwSfDoO4tMVScZgM5nhXs2+c= +github.com/ethereum-optimism/op_exporter v0.0.0-20211207210647-c5a8db939ad4/go.mod h1:w2HqYJpeDcqB6ZpPDsD7NmkvJCDAs23uNW7YHTn4g0M= github.com/ethereum/go-ethereum v1.10.4 h1:JPZPL2MHbegfFStcaOrrggMVIcf57OQHQ0J3UhjQ+xQ= github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= diff --git a/go/op-exporter/k8sClient/main.go b/op-exporter/k8sClient/main.go similarity index 100% rename from go/op-exporter/k8sClient/main.go rename to op-exporter/k8sClient/main.go diff --git a/go/op-exporter/main.go b/op-exporter/main.go similarity index 98% rename from go/op-exporter/main.go rename to op-exporter/main.go index cc381d454f34..822c0d4965dd 100644 --- a/go/op-exporter/main.go +++ b/op-exporter/main.go @@ -10,8 +10,8 @@ import ( "sync" "time" - "github.com/ethereum-optimism/optimism/go/op_exporter/k8sClient" - "github.com/ethereum-optimism/optimism/go/op_exporter/version" + "github.com/ethereum-optimism/op_exporter/k8sClient" + "github.com/ethereum-optimism/op_exporter/version" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/prometheus/client_golang/prometheus/promhttp" log "github.com/sirupsen/logrus" diff --git a/go/op-exporter/package.json b/op-exporter/package.json similarity index 100% rename from go/op-exporter/package.json rename to op-exporter/package.json diff --git a/go/op-exporter/rpc.go b/op-exporter/rpc.go similarity index 100% rename from go/op-exporter/rpc.go rename to op-exporter/rpc.go diff --git a/go/op-exporter/version/version.go b/op-exporter/version/version.go similarity index 100% rename from go/op-exporter/version/version.go rename to op-exporter/version/version.go diff --git a/ops/docker-compose.yml b/ops/docker-compose.yml index d4ce98d1c189..f3241100ae3b 100644 --- a/ops/docker-compose.yml +++ b/ops/docker-compose.yml @@ -73,7 +73,7 @@ services: - deployer build: context: .. - dockerfile: ./ops/docker/Dockerfile.geth + dockerfile: ./l2geth/Dockerfile image: ethereumoptimism/l2geth:${DOCKER_TAG_L2GETH:-latest} # override with the geth script and the env vars required for it entrypoint: sh ./geth.sh @@ -127,7 +127,7 @@ services: replicas: 1 build: context: .. - dockerfile: ./ops/docker/Dockerfile.geth + dockerfile: ./l2geth/Dockerfile image: ethereumoptimism/l2geth:${DOCKER_TAG_L2GETH:-latest} entrypoint: sh ./geth.sh env_file: @@ -154,7 +154,7 @@ services: replicas: 1 build: context: .. - dockerfile: ./ops/docker/Dockerfile.geth + dockerfile: ./l2geth/Dockerfile image: ethereumoptimism/l2geth:${DOCKER_TAG_L2GETH:-latest} entrypoint: sh ./geth.sh env_file: @@ -221,7 +221,7 @@ services: replicas: 0 build: context: .. - dockerfile: ./ops/docker/Dockerfile.gas-oracle + dockerfile: ./gas-oracle/Dockerfile image: ethereumoptimism/gas-oracle:${DOCKER_TAG_GAS_ORACLE:-latest} environment: GAS_PRICE_ORACLE_ETHEREUM_HTTP_URL: http://l1_chain:8545 @@ -236,7 +236,7 @@ services: - l2geth build: context: .. - dockerfile: ./ops/docker/Dockerfile.batch-submitter-service + dockerfile: ./batch-submitter/Dockerfile image: ethereumoptimism/batch-submitter-service:${DOCKER_TAG_BATCH_SUBMITTER_SERVICE:-latest} entrypoint: ./batch-submitter.sh env_file: diff --git a/ops/scripts/build-ci.sh b/ops/scripts/build-ci.sh index 7380fc42d425..4967b70fd421 100755 --- a/ops/scripts/build-ci.sh +++ b/ops/scripts/build-ci.sh @@ -15,7 +15,7 @@ function build() { } mkdir -p /tmp/.buildx-cache-new -build l2geth "ethereumoptimism/l2geth:latest" "./ops/docker/Dockerfile.geth" . +build l2geth "ethereumoptimism/l2geth:latest" "./l2geth/Dockerfile" . build l1chain "ethereumoptimism/hardhat:latest" "./ops/docker/hardhat/Dockerfile" ./ops/docker/hardhat wait diff --git a/go/proxyd/.gitignore b/proxyd/.gitignore similarity index 100% rename from go/proxyd/.gitignore rename to proxyd/.gitignore diff --git a/go/proxyd/CHANGELOG.md b/proxyd/CHANGELOG.md similarity index 100% rename from go/proxyd/CHANGELOG.md rename to proxyd/CHANGELOG.md diff --git a/go/proxyd/Dockerfile b/proxyd/Dockerfile similarity index 86% rename from go/proxyd/Dockerfile rename to proxyd/Dockerfile index d772798ed10c..f6ba052ba04c 100644 --- a/go/proxyd/Dockerfile +++ b/proxyd/Dockerfile @@ -6,14 +6,15 @@ ARG GITVERSION=docker RUN apk add make jq git gcc musl-dev linux-headers +COPY ./proxyd /app + WORKDIR /app -COPY ./go/proxyd /app RUN make proxyd FROM alpine:3.15 -COPY ./go/proxyd/entrypoint.sh /bin/entrypoint.sh +COPY ./proxyd/entrypoint.sh /bin/entrypoint.sh RUN apk update && \ apk add ca-certificates && \ diff --git a/go/proxyd/Makefile b/proxyd/Makefile similarity index 100% rename from go/proxyd/Makefile rename to proxyd/Makefile diff --git a/go/proxyd/README.md b/proxyd/README.md similarity index 100% rename from go/proxyd/README.md rename to proxyd/README.md diff --git a/go/proxyd/backend.go b/proxyd/backend.go similarity index 100% rename from go/proxyd/backend.go rename to proxyd/backend.go diff --git a/go/proxyd/cache.go b/proxyd/cache.go similarity index 100% rename from go/proxyd/cache.go rename to proxyd/cache.go diff --git a/go/proxyd/cache_test.go b/proxyd/cache_test.go similarity index 100% rename from go/proxyd/cache_test.go rename to proxyd/cache_test.go diff --git a/go/proxyd/cmd/proxyd/main.go b/proxyd/cmd/proxyd/main.go similarity index 95% rename from go/proxyd/cmd/proxyd/main.go rename to proxyd/cmd/proxyd/main.go index 72ba1b9641e2..db3828b337ff 100644 --- a/go/proxyd/cmd/proxyd/main.go +++ b/proxyd/cmd/proxyd/main.go @@ -6,7 +6,7 @@ import ( "syscall" "github.com/BurntSushi/toml" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/ethereum/go-ethereum/log" ) diff --git a/go/proxyd/config.go b/proxyd/config.go similarity index 100% rename from go/proxyd/config.go rename to proxyd/config.go diff --git a/go/proxyd/entrypoint.sh b/proxyd/entrypoint.sh similarity index 100% rename from go/proxyd/entrypoint.sh rename to proxyd/entrypoint.sh diff --git a/go/proxyd/errors.go b/proxyd/errors.go similarity index 100% rename from go/proxyd/errors.go rename to proxyd/errors.go diff --git a/go/proxyd/example.config.toml b/proxyd/example.config.toml similarity index 100% rename from go/proxyd/example.config.toml rename to proxyd/example.config.toml diff --git a/go/proxyd/go.mod b/proxyd/go.mod similarity index 93% rename from go/proxyd/go.mod rename to proxyd/go.mod index e9a28a93184d..9ed597833247 100644 --- a/go/proxyd/go.mod +++ b/proxyd/go.mod @@ -1,4 +1,4 @@ -module github.com/ethereum-optimism/optimism/go/proxyd +module github.com/ethereum-optimism/optimism/proxyd go 1.16 diff --git a/go/proxyd/go.sum b/proxyd/go.sum similarity index 100% rename from go/proxyd/go.sum rename to proxyd/go.sum diff --git a/go/proxyd/integration_tests/batch_timeout_test.go b/proxyd/integration_tests/batch_timeout_test.go similarity index 95% rename from go/proxyd/integration_tests/batch_timeout_test.go rename to proxyd/integration_tests/batch_timeout_test.go index 649752bcfa57..372f047c7294 100644 --- a/go/proxyd/integration_tests/batch_timeout_test.go +++ b/proxyd/integration_tests/batch_timeout_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/batching_test.go b/proxyd/integration_tests/batching_test.go similarity index 98% rename from go/proxyd/integration_tests/batching_test.go rename to proxyd/integration_tests/batching_test.go index ce528005dd6a..59c6eb59b3df 100644 --- a/go/proxyd/integration_tests/batching_test.go +++ b/proxyd/integration_tests/batching_test.go @@ -5,7 +5,7 @@ import ( "os" "testing" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/caching_test.go b/proxyd/integration_tests/caching_test.go similarity index 99% rename from go/proxyd/integration_tests/caching_test.go rename to proxyd/integration_tests/caching_test.go index 78892aa65f95..a75a59106ca5 100644 --- a/go/proxyd/integration_tests/caching_test.go +++ b/proxyd/integration_tests/caching_test.go @@ -8,7 +8,7 @@ import ( "time" "github.com/alicebob/miniredis" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/failover_test.go b/proxyd/integration_tests/failover_test.go similarity index 99% rename from go/proxyd/integration_tests/failover_test.go rename to proxyd/integration_tests/failover_test.go index c939904df2b0..f99d1e622dde 100644 --- a/go/proxyd/integration_tests/failover_test.go +++ b/proxyd/integration_tests/failover_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/max_rpc_conns_test.go b/proxyd/integration_tests/max_rpc_conns_test.go similarity index 97% rename from go/proxyd/integration_tests/max_rpc_conns_test.go rename to proxyd/integration_tests/max_rpc_conns_test.go index dfe3b08c3122..1ee1febe1c78 100644 --- a/go/proxyd/integration_tests/max_rpc_conns_test.go +++ b/proxyd/integration_tests/max_rpc_conns_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/mock_backend_test.go b/proxyd/integration_tests/mock_backend_test.go similarity index 98% rename from go/proxyd/integration_tests/mock_backend_test.go rename to proxyd/integration_tests/mock_backend_test.go index e3ee6a42c7c6..94b00e12e943 100644 --- a/go/proxyd/integration_tests/mock_backend_test.go +++ b/proxyd/integration_tests/mock_backend_test.go @@ -9,7 +9,7 @@ import ( "net/http/httptest" "sync" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" ) type RecordedRequest struct { diff --git a/go/proxyd/integration_tests/rate_limit_test.go b/proxyd/integration_tests/rate_limit_test.go similarity index 95% rename from go/proxyd/integration_tests/rate_limit_test.go rename to proxyd/integration_tests/rate_limit_test.go index e460ab9a588e..409598e535d6 100644 --- a/go/proxyd/integration_tests/rate_limit_test.go +++ b/proxyd/integration_tests/rate_limit_test.go @@ -4,7 +4,7 @@ import ( "os" "testing" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/testdata/batch_timeout.toml b/proxyd/integration_tests/testdata/batch_timeout.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/batch_timeout.toml rename to proxyd/integration_tests/testdata/batch_timeout.toml diff --git a/go/proxyd/integration_tests/testdata/batching.toml b/proxyd/integration_tests/testdata/batching.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/batching.toml rename to proxyd/integration_tests/testdata/batching.toml diff --git a/go/proxyd/integration_tests/testdata/caching.toml b/proxyd/integration_tests/testdata/caching.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/caching.toml rename to proxyd/integration_tests/testdata/caching.toml diff --git a/go/proxyd/integration_tests/testdata/failover.toml b/proxyd/integration_tests/testdata/failover.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/failover.toml rename to proxyd/integration_tests/testdata/failover.toml diff --git a/go/proxyd/integration_tests/testdata/max_rpc_conns.toml b/proxyd/integration_tests/testdata/max_rpc_conns.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/max_rpc_conns.toml rename to proxyd/integration_tests/testdata/max_rpc_conns.toml diff --git a/go/proxyd/integration_tests/testdata/out_of_service_interval.toml b/proxyd/integration_tests/testdata/out_of_service_interval.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/out_of_service_interval.toml rename to proxyd/integration_tests/testdata/out_of_service_interval.toml diff --git a/go/proxyd/integration_tests/testdata/rate_limit.toml b/proxyd/integration_tests/testdata/rate_limit.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/rate_limit.toml rename to proxyd/integration_tests/testdata/rate_limit.toml diff --git a/go/proxyd/integration_tests/testdata/retries.toml b/proxyd/integration_tests/testdata/retries.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/retries.toml rename to proxyd/integration_tests/testdata/retries.toml diff --git a/go/proxyd/integration_tests/testdata/whitelist.toml b/proxyd/integration_tests/testdata/whitelist.toml similarity index 100% rename from go/proxyd/integration_tests/testdata/whitelist.toml rename to proxyd/integration_tests/testdata/whitelist.toml diff --git a/go/proxyd/integration_tests/util_test.go b/proxyd/integration_tests/util_test.go similarity index 97% rename from go/proxyd/integration_tests/util_test.go rename to proxyd/integration_tests/util_test.go index c0fbe2b31b4e..bd798ec471cb 100644 --- a/go/proxyd/integration_tests/util_test.go +++ b/proxyd/integration_tests/util_test.go @@ -10,7 +10,7 @@ import ( "testing" "github.com/BurntSushi/toml" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/ethereum/go-ethereum/log" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/integration_tests/validation_test.go b/proxyd/integration_tests/validation_test.go similarity index 99% rename from go/proxyd/integration_tests/validation_test.go rename to proxyd/integration_tests/validation_test.go index 5a22ba2259ac..be964c14d0d7 100644 --- a/go/proxyd/integration_tests/validation_test.go +++ b/proxyd/integration_tests/validation_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/ethereum-optimism/optimism/go/proxyd" + "github.com/ethereum-optimism/optimism/proxyd" "github.com/stretchr/testify/require" ) diff --git a/go/proxyd/lvc.go b/proxyd/lvc.go similarity index 100% rename from go/proxyd/lvc.go rename to proxyd/lvc.go diff --git a/go/proxyd/methods.go b/proxyd/methods.go similarity index 100% rename from go/proxyd/methods.go rename to proxyd/methods.go diff --git a/go/proxyd/metrics.go b/proxyd/metrics.go similarity index 100% rename from go/proxyd/metrics.go rename to proxyd/metrics.go diff --git a/go/proxyd/package.json b/proxyd/package.json similarity index 100% rename from go/proxyd/package.json rename to proxyd/package.json diff --git a/go/proxyd/proxyd.go b/proxyd/proxyd.go similarity index 100% rename from go/proxyd/proxyd.go rename to proxyd/proxyd.go diff --git a/go/proxyd/rate_limiter.go b/proxyd/rate_limiter.go similarity index 100% rename from go/proxyd/rate_limiter.go rename to proxyd/rate_limiter.go diff --git a/go/proxyd/rpc.go b/proxyd/rpc.go similarity index 100% rename from go/proxyd/rpc.go rename to proxyd/rpc.go diff --git a/go/proxyd/rpc_test.go b/proxyd/rpc_test.go similarity index 100% rename from go/proxyd/rpc_test.go rename to proxyd/rpc_test.go diff --git a/go/proxyd/server.go b/proxyd/server.go similarity index 100% rename from go/proxyd/server.go rename to proxyd/server.go diff --git a/go/proxyd/string_set.go b/proxyd/string_set.go similarity index 100% rename from go/proxyd/string_set.go rename to proxyd/string_set.go diff --git a/go/proxyd/tls.go b/proxyd/tls.go similarity index 100% rename from go/proxyd/tls.go rename to proxyd/tls.go diff --git a/go/teleportr/.gitignore b/teleportr/.gitignore similarity index 100% rename from go/teleportr/.gitignore rename to teleportr/.gitignore diff --git a/go/teleportr/CHANGELOG.md b/teleportr/CHANGELOG.md similarity index 100% rename from go/teleportr/CHANGELOG.md rename to teleportr/CHANGELOG.md diff --git a/ops/docker/Dockerfile.teleportr b/teleportr/Dockerfile similarity index 64% rename from ops/docker/Dockerfile.teleportr rename to teleportr/Dockerfile index 65c1a57f2621..91741b1a9382 100644 --- a/ops/docker/Dockerfile.teleportr +++ b/teleportr/Dockerfile @@ -2,11 +2,11 @@ FROM golang:1.18.0-alpine3.15 as builder RUN apk add --no-cache make gcc musl-dev linux-headers git jq bash -COPY ./go/bss-core /go/bss-core -COPY ./go/teleportr/go.mod ./go/teleportr/go.sum /go/teleportr/ +COPY ./bss-core /go/bss-core +COPY ./teleportr /go/teleportr +COPY ./teleportr/docker.go.work /go/go.work + WORKDIR /go/teleportr -RUN go mod graph | grep -v bss-core | awk '{if ($1 !~ "@") print $2}' | xargs -n 1 go get -COPY ./go/teleportr/ ./ RUN make teleportr teleportr-api FROM alpine:3.15 diff --git a/go/teleportr/Makefile b/teleportr/Makefile similarity index 100% rename from go/teleportr/Makefile rename to teleportr/Makefile diff --git a/go/teleportr/api/metrics.go b/teleportr/api/metrics.go similarity index 100% rename from go/teleportr/api/metrics.go rename to teleportr/api/metrics.go diff --git a/go/teleportr/api/server.go b/teleportr/api/server.go similarity index 97% rename from go/teleportr/api/server.go rename to teleportr/api/server.go index 4d4869a70f01..47fe373f257b 100644 --- a/go/teleportr/api/server.go +++ b/teleportr/api/server.go @@ -15,13 +15,13 @@ import ( "syscall" "time" - bsscore "github.com/ethereum-optimism/optimism/go/bss-core" - "github.com/ethereum-optimism/optimism/go/bss-core/dial" - "github.com/ethereum-optimism/optimism/go/bss-core/drivers" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" - "github.com/ethereum-optimism/optimism/go/teleportr/bindings/deposit" - "github.com/ethereum-optimism/optimism/go/teleportr/db" - "github.com/ethereum-optimism/optimism/go/teleportr/flags" + bsscore "github.com/ethereum-optimism/optimism/bss-core" + "github.com/ethereum-optimism/optimism/bss-core/dial" + "github.com/ethereum-optimism/optimism/bss-core/drivers" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/teleportr/bindings/deposit" + "github.com/ethereum-optimism/optimism/teleportr/db" + "github.com/ethereum-optimism/optimism/teleportr/flags" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" diff --git a/go/teleportr/bindings/deposit/teleportr_deposit.go b/teleportr/bindings/deposit/teleportr_deposit.go similarity index 100% rename from go/teleportr/bindings/deposit/teleportr_deposit.go rename to teleportr/bindings/deposit/teleportr_deposit.go diff --git a/go/teleportr/bindings/disburse/teleportr_disburser.go b/teleportr/bindings/disburse/teleportr_disburser.go similarity index 100% rename from go/teleportr/bindings/disburse/teleportr_disburser.go rename to teleportr/bindings/disburse/teleportr_disburser.go diff --git a/go/teleportr/cmd/teleportr-api/main.go b/teleportr/cmd/teleportr-api/main.go similarity index 87% rename from go/teleportr/cmd/teleportr-api/main.go rename to teleportr/cmd/teleportr-api/main.go index ea08fb57affe..b3a53166d459 100644 --- a/go/teleportr/cmd/teleportr-api/main.go +++ b/teleportr/cmd/teleportr-api/main.go @@ -7,8 +7,8 @@ import ( "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli" - "github.com/ethereum-optimism/optimism/go/teleportr/api" - "github.com/ethereum-optimism/optimism/go/teleportr/flags" + "github.com/ethereum-optimism/optimism/teleportr/api" + "github.com/ethereum-optimism/optimism/teleportr/flags" ) var ( diff --git a/go/teleportr/cmd/teleportr/main.go b/teleportr/cmd/teleportr/main.go similarity index 89% rename from go/teleportr/cmd/teleportr/main.go rename to teleportr/cmd/teleportr/main.go index 3815abbd7f25..1720de7df35e 100644 --- a/go/teleportr/cmd/teleportr/main.go +++ b/teleportr/cmd/teleportr/main.go @@ -7,8 +7,8 @@ import ( "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli" - "github.com/ethereum-optimism/optimism/go/teleportr" - "github.com/ethereum-optimism/optimism/go/teleportr/flags" + "github.com/ethereum-optimism/optimism/teleportr" + "github.com/ethereum-optimism/optimism/teleportr/flags" ) var ( diff --git a/go/teleportr/config.go b/teleportr/config.go similarity index 98% rename from go/teleportr/config.go rename to teleportr/config.go index dba892e46b04..27c317042825 100644 --- a/go/teleportr/config.go +++ b/teleportr/config.go @@ -3,7 +3,7 @@ package teleportr import ( "time" - "github.com/ethereum-optimism/optimism/go/teleportr/flags" + "github.com/ethereum-optimism/optimism/teleportr/flags" "github.com/urfave/cli" ) diff --git a/go/teleportr/db/db.go b/teleportr/db/db.go similarity index 100% rename from go/teleportr/db/db.go rename to teleportr/db/db.go diff --git a/go/teleportr/db/db_test.go b/teleportr/db/db_test.go similarity index 99% rename from go/teleportr/db/db_test.go rename to teleportr/db/db_test.go index ee1e55dfbf6b..f9a3df356951 100644 --- a/go/teleportr/db/db_test.go +++ b/teleportr/db/db_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/go/teleportr/db" + "github.com/ethereum-optimism/optimism/teleportr/db" "github.com/ethereum/go-ethereum/common" "github.com/google/uuid" "github.com/stretchr/testify/require" diff --git a/teleportr/docker.go.work b/teleportr/docker.go.work new file mode 100644 index 000000000000..7f5b996987ff --- /dev/null +++ b/teleportr/docker.go.work @@ -0,0 +1,6 @@ +go 1.18 + +use ( + ./bss-core + ./teleportr +) diff --git a/go/teleportr/drivers/disburser/driver.go b/teleportr/drivers/disburser/driver.go similarity index 98% rename from go/teleportr/drivers/disburser/driver.go rename to teleportr/drivers/disburser/driver.go index 4b63f029292a..c835b1267982 100644 --- a/go/teleportr/drivers/disburser/driver.go +++ b/teleportr/drivers/disburser/driver.go @@ -9,11 +9,11 @@ import ( "strings" "time" - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" - "github.com/ethereum-optimism/optimism/go/teleportr/bindings/deposit" - "github.com/ethereum-optimism/optimism/go/teleportr/bindings/disburse" - "github.com/ethereum-optimism/optimism/go/teleportr/db" + "github.com/ethereum-optimism/optimism/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/teleportr/bindings/deposit" + "github.com/ethereum-optimism/optimism/teleportr/bindings/disburse" + "github.com/ethereum-optimism/optimism/teleportr/db" "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/accounts/abi/bind" diff --git a/go/teleportr/drivers/disburser/find_start_block_number.go b/teleportr/drivers/disburser/find_start_block_number.go similarity index 100% rename from go/teleportr/drivers/disburser/find_start_block_number.go rename to teleportr/drivers/disburser/find_start_block_number.go diff --git a/go/teleportr/drivers/disburser/find_start_block_number_test.go b/teleportr/drivers/disburser/find_start_block_number_test.go similarity index 97% rename from go/teleportr/drivers/disburser/find_start_block_number_test.go rename to teleportr/drivers/disburser/find_start_block_number_test.go index ce9fcf9040bb..85968bc0ecaf 100644 --- a/go/teleportr/drivers/disburser/find_start_block_number_test.go +++ b/teleportr/drivers/disburser/find_start_block_number_test.go @@ -3,7 +3,7 @@ package disburser_test import ( "testing" - "github.com/ethereum-optimism/optimism/go/teleportr/drivers/disburser" + "github.com/ethereum-optimism/optimism/teleportr/drivers/disburser" "github.com/stretchr/testify/require" ) diff --git a/go/teleportr/drivers/disburser/metrics.go b/teleportr/drivers/disburser/metrics.go similarity index 98% rename from go/teleportr/drivers/disburser/metrics.go rename to teleportr/drivers/disburser/metrics.go index f109c899a64e..d26e06ba80f8 100644 --- a/go/teleportr/drivers/disburser/metrics.go +++ b/teleportr/drivers/disburser/metrics.go @@ -1,7 +1,7 @@ package disburser import ( - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/metrics" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" ) diff --git a/go/teleportr/flags/api_flags.go b/teleportr/flags/api_flags.go similarity index 100% rename from go/teleportr/flags/api_flags.go rename to teleportr/flags/api_flags.go diff --git a/go/teleportr/flags/flags.go b/teleportr/flags/flags.go similarity index 100% rename from go/teleportr/flags/flags.go rename to teleportr/flags/flags.go diff --git a/go/teleportr/flags/flags_test.go b/teleportr/flags/flags_test.go similarity index 100% rename from go/teleportr/flags/flags_test.go rename to teleportr/flags/flags_test.go diff --git a/go/teleportr/go.mod b/teleportr/go.mod similarity index 92% rename from go/teleportr/go.mod rename to teleportr/go.mod index 5eca492e3ac7..fe2807a76b72 100644 --- a/go/teleportr/go.mod +++ b/teleportr/go.mod @@ -1,9 +1,11 @@ -module github.com/ethereum-optimism/optimism/go/teleportr +module github.com/ethereum-optimism/optimism/teleportr go 1.17 +replace github.com/ethereum-optimism/optimism/bss-core v0.0.0 => ../bss-core + require ( - github.com/ethereum-optimism/optimism/go/bss-core v0.0.0-20220218171106-67a0414d7606 + github.com/ethereum-optimism/optimism/bss-core v0.0.0 github.com/ethereum/go-ethereum v1.10.16 github.com/google/uuid v1.3.0 github.com/gorilla/mux v1.8.0 @@ -61,4 +63,3 @@ require ( gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect ) -replace github.com/ethereum-optimism/optimism/go/bss-core => ../bss-core diff --git a/go/teleportr/go.sum b/teleportr/go.sum similarity index 100% rename from go/teleportr/go.sum rename to teleportr/go.sum diff --git a/go/teleportr/package.json b/teleportr/package.json similarity index 100% rename from go/teleportr/package.json rename to teleportr/package.json diff --git a/go/teleportr/teleportr.go b/teleportr/teleportr.go similarity index 91% rename from go/teleportr/teleportr.go rename to teleportr/teleportr.go index de1e4fb68069..264f0806a320 100644 --- a/go/teleportr/teleportr.go +++ b/teleportr/teleportr.go @@ -7,12 +7,12 @@ import ( "syscall" "time" - bsscore "github.com/ethereum-optimism/optimism/go/bss-core" - "github.com/ethereum-optimism/optimism/go/bss-core/dial" - "github.com/ethereum-optimism/optimism/go/bss-core/metrics" - "github.com/ethereum-optimism/optimism/go/bss-core/txmgr" - "github.com/ethereum-optimism/optimism/go/teleportr/db" - "github.com/ethereum-optimism/optimism/go/teleportr/drivers/disburser" + bsscore "github.com/ethereum-optimism/optimism/bss-core" + "github.com/ethereum-optimism/optimism/bss-core/dial" + "github.com/ethereum-optimism/optimism/bss-core/metrics" + "github.com/ethereum-optimism/optimism/bss-core/txmgr" + "github.com/ethereum-optimism/optimism/teleportr/db" + "github.com/ethereum-optimism/optimism/teleportr/drivers/disburser" "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli" )