Giter Site home page Giter Site logo

expel-io / vault-plugin-database-cloudsql Goto Github PK

View Code? Open in Web Editor NEW
31.0 31.0 1.0 80 KB

Hashicorp Vault plugin to connect to CloudSQL instances with github.com/GoogleCloudPlatform/cloud-sql-go-connector

License: BSD 2-Clause "Simplified" License

Makefile 3.98% Go 64.18% HCL 31.84%
prod-library

vault-plugin-database-cloudsql's People

Contributors

davidmontoyago avatar iahmad94 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

digikin

vault-plugin-database-cloudsql's Issues

Support for new versions of Vault

I'm working on integrating our internal tooling with creating vault cloudsql postgres roles. I've gotten this working locally using vault:1.8.3 but our actual dev and production environments are on vault 1.10.x. When I use vault:1.10.8 locally I get this error:

* error creating database object: invalid database version: 2 errors occurred:
        * error getting plugin type: unable to get database plugin type: rpc error: code = Unavailable desc = error reading from server: EOF
        * Incompatible API version with plugin. Plugin version: 5, Client versions: [4 3]

Here are the logs from the container when trying to interact and create a connection:

2022-11-08T16:44:45.786Z [INFO]  secrets.database.database_c57aeb57.cloudsql: configuring client automatic mTLS
2022-11-08T16:44:45.793Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: starting plugin: path=/vault/plugins/cloudsql args=["/vault/plugins/cloudsql", "-log-level=debug", "-db-type=cloudsql-postgres"]
2022-11-08T16:44:45.793Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: plugin started: path=/vault/plugins/cloudsql pid=41
2022-11-08T16:44:45.793Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: waiting for RPC address: path=/vault/plugins/cloudsql
2022-11-08T16:44:45.797Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: 2022-11-08T16:44:45.797Z [DEBUG] vault-plugin-database-cloudsql: initializing cloudsql plugin with multiplexing=%t: EXTRA_VALUE_AT_END=true
2022-11-08T16:44:45.863Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: 2022-11-08T16:44:45.863Z [INFO]  vault-plugin-database-cloudsql: configuring server automatic mTLS
2022-11-08T16:44:45.884Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: 2022-11-08T16:44:45.884Z [DEBUG] vault-plugin-database-cloudsql: plugin address: network=unix address=/tmp/plugin514498414
2022-11-08T16:44:45.884Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: using plugin: version=6
2022-11-08T16:44:45.894Z [TRACE] secrets.database.database_c57aeb57.cloudsql.stdio: waiting for stdio data
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: panic: sql: Register called twice for driver cloudsql-postgres
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: 
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: goroutine 47 [running]:
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: database/sql.Register({0x7ffc019cda62, 0x11}, {0xe16840, 0xc0001ca480})
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /usr/lib/go/src/database/sql/sql.go:51 +0x13d
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: cloud.google.com/go/cloudsqlconn/postgres/pgxv4.RegisterDriver({0x7ffc019cda62, 0x11}, {0xc00008b7d0?, 0xc00008b7d8?, 0x40d987?})
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/cloud.google.com/go/[email protected]/postgres/pgxv4/postgres.go:42 +0xbe
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: github.com/expel-io/vault-plugin-database-cloudsql/cloudsql.newPostgresDatabase({0x7ffc019cda62?, 0x1?}, 0xc0001d27e0)
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/Projects/vault-plugin-database-cloudsql/cloudsql.go:114 +0x49
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: github.com/expel-io/vault-plugin-database-cloudsql/cloudsql.New({0x7ffc019cda62, 0x11})
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/Projects/vault-plugin-database-cloudsql/cloudsql.go:41 +0x106
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: main.Serve.func1()
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/Projects/vault-plugin-database-cloudsql/cmd/vault-plugin-database-cloudsql/serve.go:43 +0x25
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: github.com/hashicorp/vault/sdk/database/dbplugin/v5.(*gRPCServer).createDatabase(0xc0002c48c0, {0xc0001e1380, 0xa})
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/github.com/hashicorp/vault/[email protected]/database/dbplugin/v5/grpc_server.go:56 +0x30
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: github.com/hashicorp/vault/sdk/database/dbplugin/v5.(*gRPCServer).getOrCreateDatabase(0xc0002c48c0, {0xe1ed30, 0xc000491c20})
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/github.com/hashicorp/vault/[email protected]/database/dbplugin/v5/grpc_server.go:51 +0x153
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: github.com/hashicorp/vault/sdk/database/dbplugin/v5.(*gRPCServer).Type(0xc3b8a0?, {0xe1ed30?, 0xc000491c20?}, 0xc00059ba20?)
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/github.com/hashicorp/vault/[email protected]/database/dbplugin/v5/grpc_server.go:270 +0x2a
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: github.com/hashicorp/vault/sdk/database/dbplugin/v5/proto._Database_Type_Handler({0xccaf00?, 0xc0002c48c0}, {0xe1ed30, 0xc000491c20}, 0xc00029a380, 0x0)
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/github.com/hashicorp/vault/[email protected]/database/dbplugin/v5/proto/database_grpc.pb.go:217 +0x170
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: google.golang.org/grpc.(*Server).processUnaryRPC(0xc0003d2000, {0xe226b8, 0xc0001029c0}, 0xc0000bd0e0, 0xc000490a20, 0x12fd520, 0x0)
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/google.golang.org/[email protected]/server.go:1340 +0xd23
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: google.golang.org/grpc.(*Server).handleStream(0xc0003d2000, {0xe226b8, 0xc0001029c0}, 0xc0000bd0e0, 0x0)
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/google.golang.org/[email protected]/server.go:1713 +0xa2f
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: google.golang.org/grpc.(*Server).serveStreams.func1.2()
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/google.golang.org/[email protected]/server.go:965 +0x98
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: created by google.golang.org/grpc.(*Server).serveStreams.func1
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql:  /home/caseymau/go/pkg/mod/google.golang.org/[email protected]/server.go:963 +0x28a
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = error reading from server: EOF"
2022-11-08T16:44:45.897Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: plugin process exited: path=/vault/plugins/cloudsql pid=41 error="exit status 2"
2022-11-08T16:44:45.950Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: starting plugin: path=/vault/plugins/cloudsql args=["/vault/plugins/cloudsql", "-log-level=debug", "-db-type=cloudsql-postgres"]
2022-11-08T16:44:45.950Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: plugin started: path=/vault/plugins/cloudsql pid=51
2022-11-08T16:44:45.950Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: waiting for RPC address: path=/vault/plugins/cloudsql
2022-11-08T16:44:45.954Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: 2022-11-08T16:44:45.954Z [DEBUG] vault-plugin-database-cloudsql: initializing cloudsql plugin with multiplexing=%t: EXTRA_VALUE_AT_END=true
2022-11-08T16:44:46.100Z [DEBUG] secrets.database.database_c57aeb57.cloudsql.cloudsql: 2022-11-08T16:44:46.100Z [DEBUG] vault-plugin-database-cloudsql: plugin address: network=unix address=/tmp/plugin2080400221
2022-11-08T16:44:46.101Z [DEBUG] secrets.database.database_c57aeb57.cloudsql: plugin process exited: path=/vault/plugins/cloudsql pid=51 error="signal: killed"

I'm new to using Vault and creating a plugin to interface with it but I'm happy to help contribute.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.