Skip to content

Commit

Permalink
add cockroachdb (#5)
Browse files Browse the repository at this point in the history
Co-authored-by: Adrian Liechti <[email protected]>
  • Loading branch information
adrianliechti and adrianliechti committed Oct 2, 2022
1 parent dccbc37 commit 81042a7
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
2 changes: 2 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"github.com/adrianliechti/devkit/pkg/catalog/activemq"
"github.com/adrianliechti/devkit/pkg/catalog/azurite"
"github.com/adrianliechti/devkit/pkg/catalog/cassandra"
"github.com/adrianliechti/devkit/pkg/catalog/cockroachdb"
"github.com/adrianliechti/devkit/pkg/catalog/db2"
"github.com/adrianliechti/devkit/pkg/catalog/directus"
"github.com/adrianliechti/devkit/pkg/catalog/elasticsearch"
Expand Down Expand Up @@ -79,6 +80,7 @@ func initApp() cli.App {
catalog.Command(&activemq.Manager{}),
catalog.Command(&azurite.Manager{}),
catalog.Command(&cassandra.Manager{}),
catalog.Command(&cockroachdb.Manager{}),
catalog.Command(&db2.Manager{}),
catalog.Command(&directus.Manager{}),
catalog.Command(&elasticsearch.Manager{}),
Expand Down
87 changes: 87 additions & 0 deletions pkg/catalog/cockroachdb/cockroachdb.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package cockroachdb

import (
"github.com/adrianliechti/devkit/pkg/catalog"
"github.com/adrianliechti/devkit/pkg/engine"
)

var (
_ catalog.Manager = &Manager{}
_ catalog.Decorator = &Manager{}
_ catalog.ShellProvider = &Manager{}
_ catalog.ConsoleProvider = &Manager{}
)

type Manager struct {
}

func (m *Manager) Name() string {
return "cockroachdb"
}

func (m *Manager) Category() catalog.Category {
return catalog.DatabaseCategory
}

func (m *Manager) DisplayName() string {
return "CockroachDB"
}

func (m *Manager) Description() string {
return "A distributed SQL datatabase designed for speed, scale, and survival."
}

const (
DefaultShell = "/bin/bash"
)

func (m *Manager) New() (engine.Container, error) {
image := "cockroachdb/cockroach:v22.1.8"

return engine.Container{
Image: image,

Env: map[string]string{},

Ports: []*engine.ContainerPort{
{
Port: 26257,
Proto: engine.ProtocolTCP,
},
},

Args: []string{
"start-single-node",
"--insecure",
},

Mounts: []*engine.ContainerMount{
{
Path: "/cockroach/cockroach-data",
},
},
}, nil
}

func (m *Manager) Info(instance engine.Container) (map[string]string, error) {
return map[string]string{}, nil
}

func (m *Manager) Shell(instance engine.Container) (string, error) {
return DefaultShell, nil
}

func (m *Manager) Client(instance engine.Container) (string, []string, error) {
return "", []string{
DefaultShell,
"-c",
"./cockroach sql --insecure",
}, nil
}

func (m *Manager) ConsolePort(instance engine.Container) (*engine.ContainerPort, error) {
return &engine.ContainerPort{
Port: 8080,
Proto: engine.ProtocolTCP,
}, nil
}

0 comments on commit 81042a7

Please sign in to comment.