Skip to content

Commit

Permalink
rename qloo to sqoop
Browse files Browse the repository at this point in the history
  • Loading branch information
ilevine committed Sep 22, 2018
1 parent 6909c2e commit bdb0237
Show file tree
Hide file tree
Showing 131 changed files with 774 additions and 771 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Expand Up @@ -14,7 +14,7 @@ vendor/
_output/
_gloo_config/
examples/starwars/starwars
cmd/qlooctl/qlooctl
cmd/sqoopctl/sqoopctl
site/
test/kube_e2e/kube_resources/test-install.yaml
test/kube_e2e/kube_resources/testing-resources.yaml
30 changes: 15 additions & 15 deletions Makefile
Expand Up @@ -7,7 +7,7 @@ SOURCES := $(shell find . -name "*.go" | grep -v test)
GENERATED_PROTO_FILES := $(shell find pkg/api/types/v1 -name "*.pb.go")
OUTPUT_DIR ?= _output

PACKAGE_PATH:=github.com/solo-io/qloo
PACKAGE_PATH:=github.com/solo-io/sqoop

#----------------------------------------------------------------------------------
# Build
Expand Down Expand Up @@ -49,7 +49,7 @@ generated-code:

# Core Binaries

BINARIES ?= qloo
BINARIES ?= sqoop
DEBUG_BINARIES = $(foreach BINARY,$(BINARIES),$(BINARY)-debug)

DOCKER_ORG=soloio
Expand Down Expand Up @@ -106,20 +106,20 @@ clean:
rm -rf $(OUTPUT_DIR)

#----------------------------------------------------------------------------------
# qlooctl
# sqoopctl
#----------------------------------------------------------------------------------

.PHONY: qlooctl
qlooctl: $(OUTPUT_DIR)/qlooctl
.PHONY: sqoopctl
sqoopctl: $(OUTPUT_DIR)/sqoopctl

$(OUTPUT_DIR)/qlooctl: $(SOURCES)
go build -v -o $@ cmd/qlooctl/main.go
$(OUTPUT_DIR)/sqoopctl: $(SOURCES)
go build -v -o $@ cmd/sqoopctl/main.go

$(OUTPUT_DIR)/qlooctl-linux-amd64: $(SOURCES)
GOOS=linux go build -v -o $@ cmd/qlooctl/main.go
$(OUTPUT_DIR)/sqoopctl-linux-amd64: $(SOURCES)
GOOS=linux go build -v -o $@ cmd/sqoopctl/main.go

$(OUTPUT_DIR)/qlooctl-darwin-amd64: $(SOURCES)
GOOS=darwin go build -v -o $@ cmd/qlooctl/main.go
$(OUTPUT_DIR)/sqoopctl-darwin-amd64: $(SOURCES)
GOOS=darwin go build -v -o $@ cmd/sqoopctl/main.go

#----------------------------------------------------------------------------------
# Docs
Expand Down Expand Up @@ -152,19 +152,19 @@ site: doc
mkdocs build

docker-docs: site
docker build -t $(DOCKER_ORG)/qloo-docs:$(VERSION) -f Dockerfile.site .
docker build -t $(DOCKER_ORG)/sqoop-docs:$(VERSION) -f Dockerfile.site .


#----------------------------------------------------------------------------------
# Release
#----------------------------------------------------------------------------------

RELEASE_BINARIES := $(OUTPUT_DIR)/qlooctl-linux-amd64 $(OUTPUT_DIR)/qlooctl-darwin-amd64
RELEASE_BINARIES := $(OUTPUT_DIR)/sqoopctl-linux-amd64 $(OUTPUT_DIR)/sqoopctl-darwin-amd64

.PHONY: release-binaries
release-binaries: $(RELEASE_BINARIES)

.PHONY: release
release: release-binaries
hack/create-release.sh github_api_token=$(GITHUB_TOKEN) owner=solo-io repo=qloo tag=v$(VERSION)
@$(foreach BINARY,$(RELEASE_BINARIES),hack/upload-github-release-asset.sh github_api_token=$(GITHUB_TOKEN) owner=solo-io repo=qloo tag=v$(VERSION) filename=$(BINARY);)
hack/create-release.sh github_api_token=$(GITHUB_TOKEN) owner=solo-io repo=sqoop tag=v$(VERSION)
@$(foreach BINARY,$(RELEASE_BINARIES),hack/upload-github-release-asset.sh github_api_token=$(GITHUB_TOKEN) owner=solo-io repo=sqoop tag=v$(VERSION) filename=$(BINARY);)
30 changes: 15 additions & 15 deletions README.md
@@ -1,30 +1,30 @@


<h1 align="center">
<img src="docs/QLoo.png" alt="QLoo" width="200" height="280">
<img src="docs/Sqoop.png" alt="Sqoop" width="200" height="280">
<br>
The Codeless GraphQL Engine
</h1>

### What is QLoo?
### What is Sqoop?

QLoo is a GraphQL Server built on top of [Gloo](https://github.com/solo-io/gloo) and the [Envoy Proxy](https://envoyproxy.io).
Sqoop is a GraphQL Server built on top of [Gloo](https://github.com/solo-io/gloo) and the [Envoy Proxy](https://envoyproxy.io).

QLoo leverages Gloo's function registry and Envoy's advanced HTTP routing features to provide a GraphQL frontend
for REST/gRPC applications and serverless functions. QLoo routes requests to data sources via Envoy, leveraging
Sqoop leverages Gloo's function registry and Envoy's advanced HTTP routing features to provide a GraphQL frontend
for REST/gRPC applications and serverless functions. Sqoop routes requests to data sources via Envoy, leveraging
Envoy [HTTP filters](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/filter/filter.html?highlight=http%20filter)
for security, load balancing, and more.

<BR>
<p align="center">
<img src="docs/introduction/high_level_architecture.png" alt="QLoo" width="776" height="400">
<img src="docs/introduction/high_level_architecture.png" alt="Sqoop" width="776" height="400">
</p>
<BR>

## Workflow with QLoo
## Workflow with Sqoop
* Register or Discovery API Endpoints and Serverless Functions with Gloo
* Upload a GraphQL schema
* Connect Functions to your Schema's fields in a QLoo ResolverMap
* Connect Functions to your Schema's fields in a Sqoop ResolverMap

## Features
* **Codeless GraphQL API**: Instantly deploy a GraphQL server and connect it to your data sources with configuration,
Expand All @@ -34,11 +34,11 @@ zero code required.
* **OpenTracing**: Monitor GraphQL requests using the well-supported OpenTracing standard
* **Monitoring**: Export HTTP metrics to Prometheus or Statsd
* **Client SSL**: Communicate with Data Sources using TLS encryption
* **Declarative API**: QLoo features a declarative YAML-based API; store your configuration as code and commit it with your projects.
* **Scalability**: QLoo scales independently of your data sources and scales infinitely.
* **Performance**: QLoo leverages Envoy for its high network performance and low footprint.
* **Plugins**: QLoo leverage's [Gloo's plugin ecosystem](https://gloo.solo.io/plugins/aws/) to enable extending the types
of data sources QLoo can connect to.
* **Declarative API**: Sqoop features a declarative YAML-based API; store your configuration as code and commit it with your projects.
* **Scalability**: Sqoop scales independently of your data sources and scales infinitely.
* **Performance**: Sqoop leverages Envoy for its high network performance and low footprint.
* **Plugins**: Sqoop leverage's [Gloo's plugin ecosystem](https://gloo.solo.io/plugins/aws/) to enable extending the types
of data sources Sqoop can connect to.
* **JSON-to-gRPC transcoding**: Connect GraphQL JSON clients to gRPC data sources.

**Service Discovery**:
Expand Down Expand Up @@ -68,7 +68,7 @@ of data sources QLoo can connect to.
* [Getting Started on Kubernetes](docs/getting_started/kubernetes/1.md): Getting started with Kubernetes (recommended for first time users)

### v1 API reference:
* [Schemas](docs/v1/schema.md): API Specification for proving your GraphQL Schemas to QLoo
* [Schemas](docs/v1/schema.md): API Specification for proving your GraphQL Schemas to Sqoop
* [ResolverMaps](docs/v1/resolver_map.md): API Reference for ResolverMaps, which map your data sources to your Schemas


Expand All @@ -84,5 +84,5 @@ Join us on our slack channel: [https://slack.solo.io/](https://slack.solo.io/)

### Thanks

**QLoo** would not be possible without the valuable open-source work of projects in the community. We would like to extend
**Sqoop** would not be possible without the valuable open-source work of projects in the community. We would like to extend
a special thank-you to [Envoy](https://www.envoyproxy.io) and [gqlgen](https://github.com/vektah/gqlgen) server library.
6 changes: 3 additions & 3 deletions api/v1/config.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
package qloo.api.v1;
option go_package = "github.com/solo-io/qloo/pkg/api/types/v1";
package sqoop.api.v1;
option go_package = "github.com/solo-io/sqoop/pkg/api/types/v1";

import "schema.proto";
import "resolver_map.proto";
Expand All @@ -9,7 +9,7 @@ import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;

/**
* Config is a top-level config object. It is used internally by QLoo as a container for the entire set of config objects.
* Config is a top-level config object. It is used internally by Sqoop as a container for the entire set of config objects.
*/
message Config {
repeated Schema schemas = 3; // the set of all schemas defined by the user
Expand Down
20 changes: 10 additions & 10 deletions api/v1/resolver_map.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
package qloo.api.v1;
option go_package = "github.com/solo-io/qloo/pkg/api/types/v1";
package sqoop.api.v1;
option go_package = "github.com/solo-io/sqoop/pkg/api/types/v1";

import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;
Expand All @@ -11,7 +11,7 @@ import "github.com/solo-io/gloo/api/v1/metadata.proto";

/*
* The ResolverMap object maps Resolvers to the fields in the GraphQL Schema
* The skeleton of a Resolver Map will be generated by QLoo automatically when a schema
* The skeleton of a Resolver Map will be generated by Sqoop automatically when a schema
* is read or updated if one does not alreay exist.
*/
message ResolverMap {
Expand All @@ -35,11 +35,11 @@ message ResolverMap {

// TypeResolver contains the individual resolvers for each field for a specific type
message TypeResolver {
// This is a map of Field Names to the resolver that QLoo should invoke when a query arrives for that field
// This is a map of Field Names to the resolver that Sqoop should invoke when a query arrives for that field
map<string, Resolver> fields = 1;
}

// Resolvers define the actual logic QLoo needs to know in order to resolve a specific field query
// Resolvers define the actual logic Sqoop needs to know in order to resolve a specific field query
message Resolver {
// a resolver can have one of three types:
oneof resolver {
Expand All @@ -52,15 +52,15 @@ message Resolver {
}
}

// GlooResolvers are the "meat" of QLoo. GlooResolvers tell QLoo how to invoke a "Gloo Function"
// GlooResolvers are the "meat" of Sqoop. GlooResolvers tell Sqoop how to invoke a "Gloo Function"
message GlooResolver {
// the Request Template, if specified, will become the body of the HTTP request used to invoke a function through Gloo
// input parameters, if needed, should be specified in the request template. See QLoo's [Resolver documentation](TODO)
// input parameters, if needed, should be specified in the request template. See Sqoop's [Resolver documentation](TODO)
// for more information on Request Templates.
string request_template = 1;
// The response template, if specified, will transform the body of HTTP responses returned by Gloo functions.
// This field should be used if the object returned by the Gloo Function does not match the type specified in the GraphQL schema.
// It can also be used to modify or transform responses from their original state. See QLoo's [Resolver documentation](TODO)
// It can also be used to modify or transform responses from their original state. See Sqoop's [Resolver documentation](TODO)
// for more information on Response Templates.
string response_template = 2;
// Optional. Use to set the outbound HTTP Request header `Content-Type`. Defaults to `application/json`
Expand Down Expand Up @@ -96,8 +96,8 @@ message WeightedFunction {
}

// A Go-template which will return data for a Resolver without making a function call. Template Resolvers can make use
// of QLoo's builtin template functions as well as the data provided by the Params object to the resolver.
// Read more about Templates and Resolvers in QLoo's [Resolver documentation](TODO).
// of Sqoop's builtin template functions as well as the data provided by the Params object to the resolver.
// Read more about Templates and Resolvers in Sqoop's [Resolver documentation](TODO).
message TemplateResolver {
// the Go template as an inline string
string inline_template = 1;
Expand Down
8 changes: 4 additions & 4 deletions api/v1/schema.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
package qloo.api.v1;
option go_package = "github.com/solo-io/qloo/pkg/api/types/v1";
package sqoop.api.v1;
option go_package = "github.com/solo-io/sqoop/pkg/api/types/v1";

import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;
Expand All @@ -11,15 +11,15 @@ import "github.com/solo-io/gloo/api/v1/metadata.proto";

/*
* The Schema object wraps the user's GraphQL Schema, which is stored as an inline string.
* The Schema Object contains a Status field which is used by QLoo to validate the user's input schema.
* The Schema Object contains a Status field which is used by Sqoop to validate the user's input schema.
*/
message Schema {
// Schema Names must be unique and follow the following syntax rules:
// One or more lowercase rfc1035/rfc1123 labels separated by '.' with a maximum length of 253 characters.
string name = 1;

// name of the resolver map to use to resolve this schema.
// if the user leaves this empty, QLoo will generate the skeleton of a resolver map for the user
// if the user leaves this empty, Sqoop will generate the skeleton of a resolver map for the user
string resolver_map = 2;

// inline the entire graphql schema as a string here
Expand Down
4 changes: 2 additions & 2 deletions cmd/qloo/Dockerfile
@@ -1,4 +1,4 @@
FROM alpine:3.7
COPY qloo /qloo
COPY sqoop /sqoop
EXPOSE 9090
ENTRYPOINT ["/qloo"]
ENTRYPOINT ["/sqoop"]
4 changes: 2 additions & 2 deletions cmd/qloo/Dockerfile.debug
@@ -1,4 +1,4 @@
FROM ubuntu
COPY qloo-debug /qloo
COPY sqoop-debug /sqoop
EXPOSE 9090
ENTRYPOINT ["/qloo"]
ENTRYPOINT ["/sqoop"]
14 changes: 7 additions & 7 deletions cmd/qloo/main.go
Expand Up @@ -8,9 +8,9 @@ import (
glooflags "github.com/solo-io/gloo/pkg/bootstrap/flags"
"github.com/solo-io/gloo/pkg/log"
"github.com/solo-io/gloo/pkg/signals"
"github.com/solo-io/qloo/pkg/bootstrap"
"github.com/solo-io/qloo/pkg/bootstrap/flags"
"github.com/solo-io/qloo/pkg/core"
"github.com/solo-io/sqoop/pkg/bootstrap"
"github.com/solo-io/sqoop/pkg/bootstrap/flags"
"github.com/solo-io/sqoop/pkg/core"
"github.com/spf13/cobra"
)

Expand All @@ -24,8 +24,8 @@ func main() {
var opts bootstrap.Options

var rootCmd = &cobra.Command{
Use: "qloo",
Short: "runs qloo",
Use: "sqoop",
Short: "runs sqoop",
RunE: func(cmd *cobra.Command, args []string) error {
eventLoop, err := core.Setup(opts)
if err != nil {
Expand All @@ -35,7 +35,7 @@ var rootCmd = &cobra.Command{
stop := signals.SetupSignalHandler()
eventLoop.Run(stop)

log.Printf("shutting down QLoo")
log.Printf("shutting down Sqoop")
return nil
},
}
Expand All @@ -45,5 +45,5 @@ func init() {
glooflags.AddFileFlags(rootCmd, &opts.Options)
glooflags.AddKubernetesFlags(rootCmd, &opts.Options)
glooflags.AddConsulFlags(rootCmd, &opts.Options)
flags.AddQLooFlags(rootCmd, &opts)
flags.AddSqoopFlags(rootCmd, &opts)
}
10 changes: 5 additions & 5 deletions cmd/qlooctl/main.go
Expand Up @@ -4,14 +4,14 @@ import (
"fmt"
"os"

_ "github.com/solo-io/qloo/pkg/qlooctl/install"
_ "github.com/solo-io/qloo/pkg/qlooctl/resolvermap"
_ "github.com/solo-io/qloo/pkg/qlooctl/schema"
"github.com/solo-io/qloo/pkg/qlooctl"
_ "github.com/solo-io/sqoop/pkg/sqoopctl/install"
_ "github.com/solo-io/sqoop/pkg/sqoopctl/resolvermap"
_ "github.com/solo-io/sqoop/pkg/sqoopctl/schema"
"github.com/solo-io/sqoop/pkg/sqoopctl"
)

func main() {
if err := qlooctl.RootCmd.Execute(); err != nil {
if err := sqoopctl.RootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
Expand Down

0 comments on commit bdb0237

Please sign in to comment.