Giter Club home page Giter Club logo

sqoop's Introduction

Sqoop
GraphQL for Monolith, Microservices, and Serverless

What is Sqoop?

Sqoop (formerly QLoo) is a GraphQL Server built on top of Gloo and the Envoy Proxy.

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 for security, load balancing, and more.


Sqoop


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 Sqoop ResolverMap

Features

  • Codeless GraphQL API: Instantly deploy a GraphQL server and connect it to your data sources with configuration, zero code required.
  • Dynamic Load Balancing: Load balance traffic across multiple data sources.
  • Health Checks: Active and passive monitoring of your data sources.
  • 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: 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 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

  • Kubernetes
  • OpenShift
  • HashiCorp Stack (Vault, Consul, Nomad)
  • Cloud Foundry

Function Discovery

  • AWS Lambda
  • Microsoft Azure Functions
  • Google Cloud Platform Functions
  • Fission
  • OpenFaaS
  • ProjectFn
  • Swagger/REST
  • gRPC

Documentation

Installation

Getting Started

v1 API reference

  • Schemas: API Specification for proving your GraphQL Schemas to Sqoop
  • ResolverMaps: API Reference for ResolverMaps, which map your data sources to your Schemas

Blogs & Demos

Community

Join us on our slack channel: https://slack.solo.io/


Thanks

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 and gqlgen server library.

sqoop's People

Contributors

eitanya avatar ilackarms avatar ilevine avatar kenfdev avatar keyone avatar knabben avatar luk3thomas avatar mhamrah avatar scranton avatar yuval-k 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  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  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  avatar  avatar  avatar  avatar

Watchers

 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  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

sqoop's Issues

update GraphQL modules

Currently using : github.com/vektah/gqlgen

this is very old code.

It is now over at : https://github.com/99designs/gqlgen
Also many of the functions have changed and so will require a large amount of refactoring. Sorry to say.

ALso maybe start Vendoring Or something to control change ?

connect glooctl to gloo service running in Docker

I am new to Gloo & Sqoop but very interested in seeing them working in action. However, I am having trouble to get them both working in my corp environment.

  1. I was able to get the gloo running in Docker following below documentation
    https://gloo.solo.io/installation/docker-compose/

However, glooctl can't talk to the docker container and giving me below error. I don't know if there's any configuration for me to point glooctl to the correct IP/Port of the services inside docker container.

==> glooctl proxy url Error: could not detect 'gateway-proxy' service in gloo-system namespace. Check that Gloo has been installed properly and is running with 'kubectl get pod -n gloo-system': Get https://192.168.99.105:8443/api/v1/namespaces/gloo-system/services/gateway-proxy: dial tcp 192.168.99.105:8443: i/o timeout

  1. I can't install Kubernetes inside corp network. and it seems sqoop no longer support Docker installation anymore. All the previous document links result in 404. I am trying to see if there's anyway I can run sqoopctl to connect to the gloo services installed in Docker.

Appreciated if anyone can shed some lights in order for me to move forward.

Sqoop crashloopbackoff

I already have gloo running, so I just want to add sqoop. After running sqoobctl install kube -d and saving the yaml file, I extracted just the sqoob parts and kubectl apply that part. The sqoob pod has been created but keeps getting crashloopbackoff.

$ kubectl logs -n gloo-system deploy/sqoop -c sqoop | jq
{
"level": "info",
"ts": "2020-07-08T03:34:11.029Z",
"logger": "sqoop.v1.event_loop",
"caller": "v1/setup_event_loop.sk.go:51",
"msg": "event loop started"
}
{
"level": "fatal",
"ts": "2020-07-08T03:34:11.131Z",
"logger": "sqoop",
"caller": "setuputils/main_setup.go:66",
"msg": "error in setup: v1.emitter errors: gloo-system-settings: converting output crd: reading crd spec into v1Settings: unknown field "discovery" in v1.Settings",
"stacktrace": "github.com/solo-io/sqoop/vendor/github.com/solo-io/gloo/pkg/utils/setuputils.Main\n\t/workspace/gopath/src/github.com/solo-io/sqoop/vendor/github.com/solo-io/gloo/pkg/utils/setuputils/main_setup.go:66\ngithub.com/solo-io/sqoop/pkg/setup.Main\n\t/workspace/gopath/src/github.com/solo-io/sqoop/pkg/setup/setup.go:17\nmain.main\n\t/workspace/gopath/src/github.com/solo-io/sqoop/cmd/main.go:19\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:201"
}

My kube-fu is too low to understand the error. Is there a separate helm chart just for sqoob without gloo somewhere?
I don't want to reinstall both gloo and sqoob because I have a lot of customized virtual services / upstreams already configured.
Also I am using Kubernetes 1.17 and the kind: Deployment API name has to be updated as well.

Fix default cli with no params

We should either implement an interactive mode, default to showing the version, or show the help menu. This is not idea:

$ sqoopctl 

panic: not implemented

goroutine 1 [running]:
github.com/solo-io/sqoop/cli/pkg/cmd.App.func1(0xc000307900, 0x41dd168, 0x0, 0x0)
        /workspace/gopath/src/github.com/solo-io/sqoop/cli/pkg/cmd/root.go:29 +0x39
github.com/solo-io/sqoop/vendor/github.com/spf13/cobra.(*Command).execute(0xc000307900, 0xc00009c170, 0x0, 0x0, 0x0, 0x0)
        /workspace/gopath/src/github.com/solo-io/sqoop/vendor/github.com/spf13/cobra/command.go:766 +0xe3a
github.com/solo-io/sqoop/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc000307900, 0xc000307900, 0x0, 0x0)
        /workspace/gopath/src/github.com/solo-io/sqoop/vendor/github.com/spf13/cobra/command.go:852 +0x6bb
github.com/solo-io/sqoop/vendor/github.com/spf13/cobra.(*Command).Execute(0xc000307900, 0x0, 0x0)
        /workspace/gopath/src/github.com/solo-io/sqoop/vendor/github.com/spf13/cobra/command.go:800 +0x3b
main.main()
        /workspace/gopath/src/github.com/solo-io/sqoop/cli/cmd/main.go:18 +0x10a

Can't build sqoop!

I have used "dep ensure -v" to download all dependent modules to the vendor, but the compilation still reports errors

hzzengyuxing@test3:~/go/src/github.com/solo-io/sqoop$ make sqoop
CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -ldflags="-X github.com/solo-io/sqoop/version.Version=dev" -gcflags=all="-N -l" -o /home/hzzengyuxing/go/src/github.com/solo-io/sqoop/_output/sqoop-linux-amd64 ./cmd/main.go
cmd/main.go:6:2: cannot find module providing package github.com/solo-io/go-utils/log: working directory is not part of a module
cmd/main.go:7:2: cannot find module providing package github.com/solo-io/go-utils/stats: working directory is not part of a module
cmd/main.go:8:2: cannot find module providing package github.com/solo-io/sqoop/pkg/setup: working directory is not part of a module
Makefile:79: recipe for target '/home/hzzengyuxing/go/src/github.com/solo-io/sqoop/_output/sqoop-linux-amd64' failed
make: *** [/home/hzzengyuxing/go/src/github.com/solo-io/sqoop/_output/sqoop-linux-amd64] Error 1

And the golang version I use is "go1.14.3 linux/amd64"

Currently sqoop uses gopkg, I think using go mod would be a better way....

Clean up help output?

When I sqoopctl --help I see references to Gloo. Is that intended? It might be, but just checking. See the doc for sqoopctl install|uninstall

 sqoopctl --help
As Sqoop features a storage-based API, direct communication with the Sqoop server is not necessary. sqoopctl simplifies the administration of Sqoop by providing an easy way to create, read, update, and delete Sqoop storage objects.

The primary concerns of sqoopctl are Schemas and ResolverMaps. Schemas contain your GraphQL schema; ResolverMaps define how your schema fields are resolved.

Start by creating a schema using sqoopctl schema create --from-file <path/to/your/graphql/schema>

Usage:
  sqoopctl [flags]
  sqoopctl [command]

Available Commands:
  help        Help about any command
  install     install gloo on different platforms
  resolvermap 
  schema      
  uninstall   uninstall gloo

Flags:
  -f, --file string     file to be read or written to
  -h, --help            help for sqoopctl
  -i, --interactive     interactive mode
  -o, --output string   output format: (yaml, json, table)
      --version         version for sqoopctl

Use "sqoopctl [command] --help" for more information about a command.

sqoopctl is using extensions/v1beta1 instead of apps/v1

Just trying to run the getting started documentation fails

sqoopctl install kube

no matches for kind "Deployment" in version "extensions/v1beta1"

Updating to the currently supported apps/v1 in the yaml manually resolves this issue.

Schema with comments for documentation not supported

Assume the following schema is in a file named example.graphql

type Query {
    animals: [Animal]
}

type Animal {
    id: ID!
    "Scientific name of the Animal"
    name: String!
    "Hunting status of the Animal"
    status: Status!
}

"Indicates whether the animal can be hunted"
enum Status {
    pending
    available
}

Uploading it is successful, but no resolvermap gets created for it. It's due to the comments not being able to be parsed. However GraphQL Playground has support for showing these strings as documentation for the schema.

~/scratch/qloo » qlooctl schema create -f ./example.graphql animal
schema created successfully
------------------------------------------------------------
~/scratch/qloo » qlooctl schema get animal -o yaml
inline_schema: |
  type Query {
      animals: [Animal]
  }

  type Animal {
      id: ID!
      "Scientific name of the Animal"
      name: String!
      "Hunting status of the Animal"
      status: Status!
  }

  "Indicates whether the animal can be hunted"
  enum Status {
      pending
      available
  }
metadata:
  namespace: gloo-system
  resource_version: "2356965"
name: animal
status:
  reason: 'failed to parse schema: graphql: syntax error: unexpected "\"Scientific
    name of the Animal\"", expecting Ident (line 7, column 5)'
  state: Rejected

Support k8s 1.16+

sqoopctl install kube installs old versions of k8s resources that fail on newer k8s versions:

No resources found in default namespace.
configmap/gateway-proxy-envoy-config created
configmap/sqoop-proxy-config created
clusterrole.rbac.authorization.k8s.io/gloo-role-gateway created
clusterrole.rbac.authorization.k8s.io/sqoop-role created
clusterrolebinding.rbac.authorization.k8s.io/gloo-role-binding-gateway-gloo-system created
clusterrolebinding.rbac.authorization.k8s.io/sqoop-role-binding created
service/gloo created
service/gateway-proxy created
service/sqoop created
unable to recognize "STDIN": no matches for kind "Deployment" in version "extensions/v1beta1"
unable to recognize "STDIN": no matches for kind "Deployment" in version "extensions/v1beta1"
unable to recognize "STDIN": no matches for kind "Deployment" in version "extensions/v1beta1"
unable to recognize "STDIN": no matches for kind "Deployment" in version "extensions/v1beta1"
unable to recognize "STDIN": no matches for kind "Deployment" in version "extensions/v1beta1"

sqoopctl install kube fails with "Error: running kubectl apply on manifest: exit status 1"

Hi there,

I am very new in Sqoop and quite new in Kubernetes too so excuse me if I am missing something very obvious.

I have installed Minikube and seems to be running fine but getting Error: running kubectl apply on manifest: exit status 1 when I run sqoopctl install kube as per the instructions.

minikube version
minikube version: v1.12.3
commit: 2243b4b97c131e3244c5f014faedca0d846599f5-dirty

kubectl version --client
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-13T16:12:48Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

sqoopctl --version
sqoopctl version 0.2.7

I also tried to install Gloo first just in case but I am getting the same result.

glooctl version
Client: {"version":"1.5.0-beta18"}
Server: {"type":"Gateway","kubernetes":{"containers":[{"Tag":"1.5.0-beta18","Name":"discovery","Registry":"quay.io/solo-io"},{"Tag":"1.5.0-beta18","Name":"gateway","Registry":"quay.io/solo-io"},{"Tag":"1.5.0-beta18","Name":"gloo-envoy-wrapper","Registry":"quay.io/solo-io"},{"Tag":"1.5.0-beta18","Name":"gloo","Registry":"quay.io/solo-io"}],"namespace":"gloo-system"}}

Any ideas?

Fix Sqoop release

  • Currently yaml needs to be rendered before release assets pushed.

Example in Getting Started is not working.

Following the steps at https://sqoop.solo.io/getting_started/ on a fresh minikube cluster, the query

{
  pets {
    id
  }
}

gives the following error

 "errors": [
    {
      "message": "executing resolver for field \"pets\": failed executing resolver for Query.pets: performing http post: Post http://127.0.0.1:9090/gloo-system.petstore.Query.pets: dial tcp 127.0.0.1:9090: connect: connection refused"
    }
  ]
}

Envoy logs (kubectl logs -n gloo-system sqoop-cdf94f envoy) reveal the following error repeated many times per second:

[2019-06-11 17:43:51.726][6][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_mux_subscription_lib/common/config/grpc_mux_subscription_impl.h:70] gRPC config for type.googleapis.com/envoy.api.v2.Listener rejected: Error adding/updating listener sqoop-listener: Unable to parse JSON as proto (INVALID_ARGUMENT:normalize_path: Cannot find field.): {"upgrade_configs":[{"upgrade_type":"websocket"}],"http_filters":[{"name":"envoy.fault"},{"name":"envoy.cors"},{"name":"io.solo.transformation"},{"name":"envoy.router"}],"normalize_path":true,"rds":{"config_source":{"ads":{}},"route_config_name":"sqoop-listener-routes"},"stat_prefix":"http"}
sqoopctl --version
sqoopctl version 0.2.6

minikube version
minikube version: v1.1.0

Errors you may encounter when upgrading the library

(The purpose of this report is to alert solo-io/sqoop to the possible problems when solo-io/sqoop try to upgrade the following dependencies)

An error will happen when upgrading library spf13/cobra:

github.com/spf13/cobra

-Latest Version: v1.0.0 (Latest commit 0431872 11 days ago)
-Where did you use it:
https://github.com/solo-io/sqoop/search?q=spf13%2Fcobra&unscoped_q=spf13%2Fcobra
-Detail:

github.com/spf13/cobra/go.mod

module github.com/spf13/cobra
go 1.12
require (
	github.com/cpuguy83/go-md2man/v2 v2.0.0
	…
)

github.com/spf13/cobra/doc/man_docs.go

package doc 
import (
	"github.com/cpuguy83/go-md2man/v2/md2man"
	"github.com/spf13/cobra"
	…
)

This problem was introduced since spf13/cobra v0.0.6 (committed 0da0687 on 20 Feb) .Now you used version v0.0.3. If you try to upgrade ** spf13/cobra ** to version v0.0.6 and above, you will get an error--- no package exists at "github.com/cpuguy83/go-md2man/v2/md2man"

I investigated the libraries (spf13/cobra >= v0.0.6) release information and found the root cause of this issue is that----

  1. These dependencies all added Go modules in the recent versions.

  2. They all comply with the specification of "Releasing Modules for v2 or higher" available in the Modules documentation. Quoting the specification:

A package that has migrated to Go Modules must include the major version in the import path to reference any v2+ modules. For example, Repo github.com/my/module migrated to Modules on version v3.x.y. Then this repo should declare its module path with MAJOR version suffix "/v3" (e.g., module github.com/my/module/v3), and its downstream project should use "github.com/my/module/v3/mypkg" to import this repo’s package.

  1. This "github.com/my/module/v3/mypkg" is not the physical path. So earlier versions of Go (including those that don't have minimal module awareness) plus all tooling (like dep, glide, govendor, etc) don't have minimal module awareness as of now and therefore don't handle import paths correctly See golang/dep#1962, golang/dep#2139.

Note: creating a new branch is not required. If instead you have been previously releasing on master and would prefer to tag v3.0.0 on master, that is a viable option. (However, be aware that introducing an incompatible API change in master can cause issues for non-modules users who issue a go get -u given the go tool is not aware of semver prior to Go 1.11 or when module mode is not enabled in Go 1.11+).
Pre-existing dependency management solutions such as dep currently can have problems consuming a v2+ module created in this way. See for example dep#1962.
https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher

Solution

1. Migrate to Go Modules.

Go Modules is the general trend of ecosystem, if you want a better upgrade package experience, migrating to Go Modules is a good choice.

Migrate to modules will be accompanied by the introduction of virtual paths(It was discussed above).

This "github.com/my/module/v3/mypkg" is not the physical path. So Go versions older than 1.9.7 and 1.10.3 plus all third-party dependency management tools (like dep, glide, govendor, etc) don't have minimal module awareness as of now and therefore don't handle import paths correctly.

Then the downstream projects might be negatively affected in their building if they are module-unaware (Go versions older than 1.9.7 and 1.10.3; Or use third-party dependency management tools, such as: Dep, glide, govendor…).

2. Maintaining v2+ libraries that use Go Modules in Vendor directories.

If solo-io/sqoop want to keep using the dependency manage tools (like dep, glide, govendor, etc), and still want to upgrade the dependencies, can choose this fix strategy.
Manually download the dependencies into the vendor directory and do compatibility dispose(materialize the virtual path or delete the virtual part of the path). Avoid fetching the dependencies by virtual import paths. This may add some maintenance overhead compared to using modules.

As the import paths have different meanings between the projects adopting module repos and the non-module repos, materialize the virtual path is a better way to solve the issue, while ensuring compatibility with downstream module users. A textbook example provided by repo github.com/moby/moby is here:
https://github.com/moby/moby/blob/master/VENDORING.md
https://github.com/moby/moby/blob/master/vendor.conf
In the vendor directory, github.com/moby/moby adds the /vN subdirectory in the corresponding dependencies.
This will help more downstream module users to work well with your package.

3. Request upstream to do compatibility processing.

The spf13/cobra have 1197 module-unaware users in github, such as: maliceio/cli
, Azure/acr-docker-credential-helper, alyyousuf7/spotifyshare…
https://github.com/search?q=spf13%2Fcobra+filename%3Avendor.conf+filename%3Avendor.json+filename%3Aglide.toml+filename%3AGodep.toml+filename%3AGodep.json

Summary

You can make a choice when you meet this DM issues by balancing your own development schedules/mode against the affects on the downstream projects.

For this issue, Solution 1 can maximize your benefits and with minimal impacts to your downstream projects the ecosystem.

References

Do you plan to upgrade the libraries in near future?
Hope this issue report can help you ^_^
Thank you very much for your attention.

Best regards,
Kate

Feature Request: Support Apollo Federation

Feature Request:

Please consider supporting Graphql Federation. There is some work ongoing to add federation support for gqlgen.

Apollo Federation is made up of two parts:

  • Federated services, which are standalone parts of the graph
  • A gateway which composes the overall schema and executes federated queries

To be part of a federated graph, a microservice implements the Apollo Federation spec which exposes its capabilities to tooling and the gateway. The federated service can extend types from other services and add its own types that can be extended.

Collectively, federated services form a composed graph. This composition is done by a gateway which knows how to take an incoming operation and turn it into a plan of fetches to downstream services. The gateway orchestrates requests, merges the data and errors together, and forms the overall result to send back to the client.

Background:

We use hundreds of microservices, and a monolithic GraphQL server becomes an unacceptable development bottleneck and single point of failure, so it becomes necessary to divide the graph's implemention into separate parts. We tried schema stitching, but would prefer federation for three reasons:

  1. With federation, microservices all expose a proper part of the overall graph and can refer directly to types that live in other services, without the need to add foreign keys or superfluous relationship root fields to your schema.
  2. Federation is fully declarative and doesn't require any user code to be running in the gateway.
  3. Execution is efficient and predictable, because it relies on a query plan generated ahead of time with full knowledge of the overall query, instead of on runtime schema delegation that gets invoked as part of normal resolver-based execution.

glooctl install failing on rancher k8s

glooctl --version
glooctl community edition version 0.13.19
k get po -n gloo-system
NAME                            READY   STATUS             RESTARTS   AGE
discovery-6db9b4ccb4-7cldc      0/1     CrashLoopBackOff   4          3m46s
gateway-7f57dd5c68-s4m7q        1/1     Running            0          3m46s
gateway-proxy-864956578-hvxq7   1/1     Running            0          3m46s
gloo-5d9d94d96b-rztvl           1/1     Running            0          3m46s
sqoop-7bf9cdcb56-n2np7          2/2     Running            0          5m31s
chakwifi:ant-design-pro cjonagam$ k logs -f discovery-6db9b4ccb4-7cldc -n gloo-system
{"level":"info","ts":1559050974.3741066,"logger":"fds.v1.event_loop","caller":"v1/setup_event_loop.sk.go:54","msg":"event loop started"}
{"level":"info","ts":1559050974.3755252,"logger":"uds.v1.event_loop","caller":"v1/setup_event_loop.sk.go:54","msg":"event loop started"}
{"level":"info","ts":1559050976.4867938,"logger":"uds.v1.event_loop.uds.v1.event_loop","caller":"v1/discovery_event_loop.sk.go:54","msg":"event loop started"}
{"level":"info","ts":1559050976.5874927,"logger":"uds.v1.event_loop.uds.v1.event_loop.syncer","caller":"syncer/discovery_syncer.go:32","msg":"begin sync 249222088124293320 (0 upstreams)"}
{"level":"info","ts":1559050976.6063056,"logger":"fds.v1.event_loop.fds.v1.event_loop","caller":"v1/discovery_event_loop.sk.go:54","msg":"event loop started"}
{"level":"info","ts":1559050976.9123707,"logger":"uds.v1.event_loop.uds.v1.event_loop.syncer.kube-uds","caller":"kubernetes/uds.go:28","msg":"started","watchns":[],"writens":"gloo-system"}
{"level":"info","ts":1559050976.9124694,"logger":"uds.v1.event_loop.uds.v1.event_loop.syncer","caller":"syncer/discovery_syncer.go:58","msg":"end sync 249222088124293320"}
{"level":"info","ts":1559050976.9127948,"logger":"uds.v1.event_loop.uds.v1.event_loop.syncer.kube-uds","caller":"runtime/asm_amd64.s:522","msg":"ended"}
panic: runtime error: slice bounds out of range

goroutine 355 [running]:
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.UpstreamName(0xc002679550, 0xa, 0xc002679540, 0xd, 0xc000000050, 0xc0021d15a0, 0x0, 0x0)
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds_convert.go:141 +0x8e4
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.createUpstream(0x2891bc0, 0xc0013516b0, 0xc0026bb480, 0xc002679610, 0x7, 0xc002679617, 0x3, 0x50, 0x0, 0x50, ...)
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds_convert.go:113 +0x374
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.(*KubeUpstreamConverter).CreateUpstreamForLabels(0xc001a276d0, 0x2891bc0, 0xc0013516b0, 0xc0009121d0, 0x2, 0x2, 0xc0026bb480, 0x0, 0x0, 0x0)
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds_convert.go:51 +0x215
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.(*KubeUpstreamConverter).UpstreamsForService(0xc001a276d0, 0x2891bc0, 0xc0013516b0, 0xc0026bb480, 0xc00071b400, 0x4a, 0x80, 0x0, 0x0, 0x0)
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds_convert.go:44 +0xed
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.(*plugin).ConvertServices(0xc000d51e90, 0x2891bc0, 0xc0013516b0, 0x0, 0x0, 0x0, 0xc00071a800, 0x44, 0x80, 0xc00071b400, ...)
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds.go:86 +0x1dd
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.(*plugin).DiscoverUpstreams.func1()
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds.go:46 +0x51f
github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.(*plugin).DiscoverUpstreams.func2(0xc001a26028, 0xc000d51e90, 0xc0003a97a0, 0xc0003a9c80, 0xc0003a9ce0, 0xc0017320a0, 0x2891bc0, 0xc0013516b0)
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds.go:57 +0x174
created by github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes.(*plugin).DiscoverUpstreams
	/workspace/gopath/src/github.com/solo-io/gloo/projects/gloo/pkg/plugins/kubernetes/uds.go:51 +0x62c

Docker Compose Stuck on Startup

Hi, this looks like a very interesting project. I tried running the quick start using docker compose, but it is getting stuck during startup. I've pasted the stdout below. Can you help me figure out how to get this up and running so I can kick the tires?

09:28 $ git clone https://github.com/solo-io/qloo
Cloning into 'qloo'...
remote: Counting objects: 1607, done.
remote: Compressing objects: 100% (122/122), done.
remote: Total 1607 (delta 78), reused 143 (delta 58), pack-reused 1419
Receiving objects: 100% (1607/1607), 1.84 MiB | 7.61 MiB/s, done.
Resolving deltas: 100% (798/798), done.
(base) ✔ ~/Code
09:28 $ cd qloo/install/docker-compose/
(base) ✔ ~/Code/qloo/install/docker-compose [master|✔]
09:28 $ ./prepare-config-directories.sh
creating gloo storage directories
(base) ✔ ~/Code/qloo/install/docker-compose [master|✔]
09:28 $ docker-compose up
Creating network "docker-compose_default" with the default driver
Pulling control-plane (soloio/control-plane:0.4.1)...
0.4.1: Pulling from soloio/control-plane
ff3a5c916c92: Pull complete
bc2787d354da: Pull complete
Digest: sha256:b9cf5c44a66fb660543a757dca67b9be6e72fa16757836c9299f1f6f95ee21db
Status: Downloaded newer image for soloio/control-plane:0.4.1
Pulling proxy (soloio/envoy:0.4.1)...
0.4.1: Pulling from soloio/envoy
8e3ba11ec2a2: Pull complete
3dd014c6e448: Pull complete
9b6f02ee4ab5: Pull complete
a26d3372a392: Pull complete
Digest: sha256:9d2c1bb65cdcf85c76f9fb24ad472fd8e37cb44c84403476decc352c11a0438f
Status: Downloaded newer image for soloio/envoy:0.4.1
Pulling function-discovery (soloio/function-discovery:0.4.1)...
0.4.1: Pulling from soloio/function-discovery
ff3a5c916c92: Already exists
b9ea3c282f42: Pull complete
b0f8be0edc66: Pull complete
Digest: sha256:6eec3ac015c982030bc57deb2358872bfdf003fbd3293b21ed0e622877a32687
Status: Downloaded newer image for soloio/function-discovery:0.4.1
Pulling qloo (soloio/qloo:0.1.1)...
0.1.1: Pulling from soloio/qloo
ff3a5c916c92: Already exists
aef7222167da: Pull complete
Digest: sha256:7387815c51a3142ac320ae5bc15b17bcf7d289b1b74f5eeebe75a8cd34593765
Status: Downloaded newer image for soloio/qloo:0.1.1
Creating docker-compose_proxy_1              ... done
Creating docker-compose_control-plane_1      ... done
Creating docker-compose_function-discovery_1 ... done
Creating docker-compose_qloo_1               ... done
Attaching to docker-compose_function-discovery_1, docker-compose_proxy_1, docker-compose_control-plane_1, docker-compose_qloo_1
function-discovery_1  | "Thu, 02 Aug 2018 16:40:08 UTC: github.com/solo-io/gloo/pkg/function-discovery/eventloop/event_loop.go:197"	WARNING:
function-discovery_1  | create kube client failed: %!v(MISSING). functonal services running in kubernetes will not be discovered by function discovery
function-discovery_1  |
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:183] initializing epoch 0 (hot restart version=10.200.16384.127.options=capacity=16384, num_slots=8209 hash=228984379728933363 size=2654312)
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:185] statically linked extensions:
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:187]   access_loggers: envoy.file_access_log,envoy.http_grpc_access_log
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:190]   filters.http: envoy.buffer,envoy.cors,envoy.ext_authz,envoy.fault,envoy.filters.http.rbac,envoy.grpc_http1_bridge,envoy.grpc_json_transcoder,envoy.grpc_web,envoy.gzip,envoy.health_check,envoy.http_dynamo_filter,envoy.ip_tagging,envoy.lua,envoy.rate_limit,envoy.router,envoy.squash,io.solo.azure_functions,io.solo.function_router,io.solo.gcloudfunc,io.solo.lambda,io.solo.nats_streaming,io.solo.transformation
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:193]   filters.listener: envoy.listener.original_dst,envoy.listener.proxy_protocol,envoy.listener.tls_inspector
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:196]   filters.network: envoy.client_ssl_auth,envoy.echo,envoy.ext_authz,envoy.http_connection_manager,envoy.mongo_proxy,envoy.ratelimit,envoy.redis_proxy,envoy.tcp_proxy,io.solo.filters.network.consul_connect
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:198]   stat_sinks: envoy.dog_statsd,envoy.metrics_service,envoy.statsd
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:200]   tracers: envoy.dynamic.ot,envoy.lightstep,envoy.zipkin
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:203]   transport_sockets.downstream: envoy.transport_sockets.capture,raw_buffer,tls
proxy_1               | [2018-08-02 16:40:08.705][1][info][main] external/envoy/source/server/server.cc:206]   transport_sockets.upstream: envoy.transport_sockets.capture,raw_buffer,tls
proxy_1               | [2018-08-02 16:40:08.730][1][info][config] external/envoy/source/server/configuration_impl.cc:50] loading 0 static secret(s)
proxy_1               | [2018-08-02 16:40:08.736][1][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:235] gRPC config stream closed: 14, no healthy upstream
proxy_1               | [2018-08-02 16:40:08.736][1][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:39] Unable to establish new stream
proxy_1               | [2018-08-02 16:40:08.737][1][info][config] external/envoy/source/server/configuration_impl.cc:60] loading 0 listener(s)
proxy_1               | [2018-08-02 16:40:08.737][1][info][config] external/envoy/source/server/configuration_impl.cc:94] loading tracing configuration
proxy_1               | [2018-08-02 16:40:08.737][1][info][config] external/envoy/source/server/configuration_impl.cc:116] loading stats sink configuration
proxy_1               | [2018-08-02 16:40:08.737][1][info][main] external/envoy/source/server/server.cc:398] starting main dispatch loop
proxy_1               | [2018-08-02 16:40:08.738][1][info][upstream] external/envoy/source/common/upstream/cluster_manager_impl.cc:128] cm init: initializing cds
qloo_1                | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/qloo/pkg/core/event_loop.go:46"	QLoo storage options: bootstrap.FileOptions{
qloo_1                |   ConfigDir: "_gloo_config",
qloo_1                |   SecretDir: "_gloo_config/secrets",
qloo_1                |   FilesDir:  "_gloo_config/files",
qloo_1                | }
qloo_1                | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/qloo/pkg/core/event_loop.go:85"	QLoo server started and listening on ":9090"
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/endpointswatcher/endpoints_watcher.go:26"	WARNING:
control-plane_1       | Starting endpoint discovery failed: &errors.withStack{
control-plane_1       |   error: &errors.withMessage{
control-plane_1       |     cause: &os.PathError{
control-plane_1       |       Op:   "open",
control-plane_1       |       Path: "",
control-plane_1       |       Err:  0x2,
control-plane_1       |     },
control-plane_1       |     msg: "failed to create copilot client",
control-plane_1       |   },
control-plane_1       |   stack: &errors.stack{
control-plane_1       |     0x1278600,
control-plane_1       |     0x120a13e,
control-plane_1       |     0x126a5fd,
control-plane_1       |     0x126a1e7,
control-plane_1       |     0x1311421,
control-plane_1       |     0x57ef58,
control-plane_1       |     0x57f96a,
control-plane_1       |     0x57f63b,
control-plane_1       |     0x131119d,
control-plane_1       |     0x42adf2,
control-plane_1       |     0x455cd1,
control-plane_1       |   },
control-plane_1       | }, endpoints will not be discovered for this upstream type
control-plane_1       |
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/endpointswatcher/endpoints_watcher.go:26"	WARNING:
control-plane_1       | Starting endpoint discovery failed: &errors.withStack{
control-plane_1       |   error: &errors.withMessage{
control-plane_1       |     cause: &errors.errorString{
control-plane_1       |       s: "failed to build rest config: invalid configuration: no configuration has been provided",
control-plane_1       |     },
control-plane_1       |     msg: "failed to start Kubernetes endpoint discovery",
control-plane_1       |   },
control-plane_1       |   stack: &errors.stack{
control-plane_1       |     0x130c7af,
control-plane_1       |     0x120a13e,
control-plane_1       |     0x126a5fd,
control-plane_1       |     0x126a1e7,
control-plane_1       |     0x1311421,
control-plane_1       |     0x57ef58,
control-plane_1       |     0x57f96a,
control-plane_1       |     0x57f63b,
control-plane_1       |     0x131119d,
control-plane_1       |     0x42adf2,
control-plane_1       |     0x455cd1,
control-plane_1       |   },
control-plane_1       | }, endpoints will not be discovered for this upstream type
control-plane_1       |
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/snapshot/emitter.go:61"	change triggered by config
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/eventloop/eventloop.go:163"
control-plane_1       | old hash: 0x0000000000000000
control-plane_1       | new hash: 0x480d64ed4fd0edf5
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/translator/translator.go:69"	Translation loop starting
control-plane_1       | Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/storage/dependencies/interfaces.go:58	change detected in files: modified:  = filewatcher.Files{}
control-plane_1       |
control-plane_1       | Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/storage/watcher.go:113	change detected in virtualservices: modified:  = []*v1.Role{(*v1.Role)(0xc4203ba0c0)}
control-plane_1       |
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/eventloop/eventloop.go:163"
control-plane_1       | old hash: 0x480d64ed4fd0edf5
control-plane_1       | new hash: 0x722bb8102038c6d2
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/translator/translator.go:69"	Translation loop starting
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/snapshot/emitter.go:61"	change triggered by config
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/eventloop/eventloop.go:163"
control-plane_1       | old hash: 0x722bb8102038c6d2
control-plane_1       | new hash: 0x722bb8102038c6d2
control-plane_1       | "Thu, 02 Aug 2018 16:40:09 UTC: github.com/solo-io/gloo/pkg/control-plane/eventloop/eventloop.go:163"
control-plane_1       | old hash: 0x722bb8102038c6d2
control-plane_1       | new hash: 0x722bb8102038c6d2
control-plane_1       | "Thu, 02 Aug 2018 16:40:13 UTC: github.com/solo-io/gloo/pkg/control-plane/xds/xds.go:35"	node "1" registered with role "qloo"
control-plane_1       | "Thu, 02 Aug 2018 16:40:13 UTC: github.com/solo-io/gloo/pkg/control-plane/xds/xds.go:42"	open watch %!d(string=1) for "type.googleapis.com/envoy.api.v2.Cluster"[]string{} from nodeID "\x1b[31m\x1b[1m\"\x1b[0m\x1b[31mqloo\x1b[0m\x1b[31m\x1b[1m\"\x1b[0m", version "\x1b[31m\x1b[1m\"\x1b[0m\x1b[31m\x1b[1m\"\x1b[0m"

Killing docker-compose_control-plane_1       ... done
Killing docker-compose_qloo_1                ... done
Killing docker-compose_proxy_1               ... done
Killing docker-compose_function-discovery_1  ... done
(base) ✘-2 ~/Code/qloo/install/docker-compose [master|✔]
10:48 $ docker-compose up
Starting docker-compose_proxy_1              ... done
Starting docker-compose_control-plane_1      ... done
Starting docker-compose_function-discovery_1 ... done
Starting docker-compose_qloo_1               ... done
Attaching to docker-compose_proxy_1, docker-compose_function-discovery_1, docker-compose_qloo_1, docker-compose_control-plane_1
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:183] initializing epoch 0 (hot restart version=10.200.16384.127.options=capacity=16384, num_slots=8209 hash=228984379728933363 size=2654312)
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:185] statically linked extensions:
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:187]   access_loggers: envoy.file_access_log,envoy.http_grpc_access_log
function-discovery_1  | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/function-discovery/eventloop/event_loop.go:197"	WARNING:
function-discovery_1  | create kube client failed: %!v(MISSING). functonal services running in kubernetes will not be discovered by function discovery
function-discovery_1  |
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:190]   filters.http: envoy.buffer,envoy.cors,envoy.ext_authz,envoy.fault,envoy.filters.http.rbac,envoy.grpc_http1_bridge,envoy.grpc_json_transcoder,envoy.grpc_web,envoy.gzip,envoy.health_check,envoy.http_dynamo_filter,envoy.ip_tagging,envoy.lua,envoy.rate_limit,envoy.router,envoy.squash,io.solo.azure_functions,io.solo.function_router,io.solo.gcloudfunc,io.solo.lambda,io.solo.nats_streaming,io.solo.transformation
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:193]   filters.listener: envoy.listener.original_dst,envoy.listener.proxy_protocol,envoy.listener.tls_inspector
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:196]   filters.network: envoy.client_ssl_auth,envoy.echo,envoy.ext_authz,envoy.http_connection_manager,envoy.mongo_proxy,envoy.ratelimit,envoy.redis_proxy,envoy.tcp_proxy,io.solo.filters.network.consul_connect
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:198]   stat_sinks: envoy.dog_statsd,envoy.metrics_service,envoy.statsd
proxy_1               | [2018-08-02 17:48:47.508][1][info][main] external/envoy/source/server/server.cc:200]   tracers: envoy.dynamic.ot,envoy.lightstep,envoy.zipkin
proxy_1               | [2018-08-02 17:48:47.509][1][info][main] external/envoy/source/server/server.cc:203]   transport_sockets.downstream: envoy.transport_sockets.capture,raw_buffer,tls
proxy_1               | [2018-08-02 17:48:47.509][1][info][main] external/envoy/source/server/server.cc:206]   transport_sockets.upstream: envoy.transport_sockets.capture,raw_buffer,tls
qloo_1                | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/qloo/pkg/core/event_loop.go:46"	QLoo storage options: bootstrap.FileOptions{
qloo_1                |   ConfigDir: "_gloo_config",
qloo_1                |   SecretDir: "_gloo_config/secrets",
qloo_1                |   FilesDir:  "_gloo_config/files",
qloo_1                | }
proxy_1               | [2018-08-02 17:48:47.522][1][info][config] external/envoy/source/server/configuration_impl.cc:50] loading 0 static secret(s)
qloo_1                | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/qloo/pkg/core/event_loop.go:85"	QLoo server started and listening on ":9090"
proxy_1               | [2018-08-02 17:48:47.527][1][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:235] gRPC config stream closed: 14, no healthy upstream
proxy_1               | [2018-08-02 17:48:47.527][1][warning][upstream] external/envoy/source/common/config/grpc_mux_impl.cc:39] Unable to establish new stream
proxy_1               | [2018-08-02 17:48:47.527][1][info][config] external/envoy/source/server/configuration_impl.cc:60] loading 0 listener(s)
proxy_1               | [2018-08-02 17:48:47.527][1][info][config] external/envoy/source/server/configuration_impl.cc:94] loading tracing configuration
proxy_1               | [2018-08-02 17:48:47.527][1][info][config] external/envoy/source/server/configuration_impl.cc:116] loading stats sink configuration
proxy_1               | [2018-08-02 17:48:47.527][1][info][main] external/envoy/source/server/server.cc:398] starting main dispatch loop
proxy_1               | [2018-08-02 17:48:47.528][1][info][upstream] external/envoy/source/common/upstream/cluster_manager_impl.cc:128] cm init: initializing cds
control-plane_1       | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/control-plane/endpointswatcher/endpoints_watcher.go:26"	WARNING:
control-plane_1       | Starting endpoint discovery failed: &errors.withStack{
control-plane_1       |   error: &errors.withMessage{
control-plane_1       |     cause: &os.PathError{
control-plane_1       |       Op:   "open",
control-plane_1       |       Path: "",
control-plane_1       |       Err:  0x2,
control-plane_1       |     },
control-plane_1       |     msg: "failed to create copilot client",
control-plane_1       |   },
control-plane_1       |   stack: &errors.stack{
control-plane_1       |     0x1278600,
control-plane_1       |     0x120a13e,
control-plane_1       |     0x126a5fd,
control-plane_1       |     0x126a1e7,
control-plane_1       |     0x1311421,
control-plane_1       |     0x57ef58,
control-plane_1       |     0x57f96a,
control-plane_1       |     0x57f63b,
control-plane_1       |     0x131119d,
control-plane_1       |     0x42adf2,
control-plane_1       |     0x455cd1,
control-plane_1       |   },
control-plane_1       | }, endpoints will not be discovered for this upstream type
control-plane_1       |
control-plane_1       | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/control-plane/endpointswatcher/endpoints_watcher.go:26"	WARNING:
control-plane_1       | Starting endpoint discovery failed: &errors.withStack{
control-plane_1       |   error: &errors.withMessage{
control-plane_1       |     cause: &errors.errorString{
control-plane_1       |       s: "failed to build rest config: invalid configuration: no configuration has been provided",
control-plane_1       |     },
control-plane_1       |     msg: "failed to start Kubernetes endpoint discovery",
control-plane_1       |   },
control-plane_1       |   stack: &errors.stack{
control-plane_1       |     0x130c7af,
control-plane_1       |     0x120a13e,
control-plane_1       |     0x126a5fd,
control-plane_1       |     0x126a1e7,
control-plane_1       |     0x1311421,
control-plane_1       |     0x57ef58,
control-plane_1       |     0x57f96a,
control-plane_1       |     0x57f63b,
control-plane_1       |     0x131119d,
control-plane_1       |     0x42adf2,
control-plane_1       |     0x455cd1,
control-plane_1       |   },
control-plane_1       | }, endpoints will not be discovered for this upstream type
control-plane_1       |
control-plane_1       | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/control-plane/snapshot/emitter.go:61"	change triggered by config
control-plane_1       | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/control-plane/eventloop/eventloop.go:163"
control-plane_1       | old hash: 0x0000000000000000
control-plane_1       | new hash: 0x722bb8102038c6d2
control-plane_1       | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/control-plane/translator/translator.go:69"	Translation loop starting
control-plane_1       | Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/storage/dependencies/interfaces.go:58	change detected in files: modified:  = filewatcher.Files{}
control-plane_1       |
control-plane_1       | "Thu, 02 Aug 2018 17:48:47 UTC: github.com/solo-io/gloo/pkg/control-plane/eventloop/eventloop.go:163"
control-plane_1       | old hash: 0x722bb8102038c6d2
control-plane_1       | new hash: 0x722bb8102038c6d2
control-plane_1       | "Thu, 02 Aug 2018 17:48:52 UTC: github.com/solo-io/gloo/pkg/control-plane/xds/xds.go:35"	node "1" registered with role "qloo"
control-plane_1       | "Thu, 02 Aug 2018 17:48:52 UTC: github.com/solo-io/gloo/pkg/control-plane/xds/xds.go:42"	open watch %!d(string=1) for "type.googleapis.com/envoy.api.v2.Cluster"[]string{} from nodeID "\x1b[31m\x1b[1m\"\x1b[0m\x1b[31mqloo\x1b[0m\x1b[31m\x1b[1m\"\x1b[0m", version "\x1b[31m\x1b[1m\"\x1b[0m\x1b[31m\x1b[1m\"\x1b[0m"


^CGracefully stopping... (press Ctrl+C again to force)
Stopping docker-compose_control-plane_1      ... done
Stopping docker-compose_qloo_1               ... done
Stopping docker-compose_proxy_1              ... done
Stopping docker-compose_function-discovery_1 ... done

Sqoop maintained?

Hello 👋

Thank you for this awesome project! I like the idea of Sqoop, and want to use it for an e-commerce site.

However, the repository seems outdated and unmaintained Is the project still active? Are there any plans? Should I use something else?

I'd love to contribute, but I have a few issues before I do. Would there be anyone accepting pull requests? I can see there are two PRs, one of which is over a year old. What is the license of the software? According to #35, it is Apache 2.0, but I don't feel like using the software before I'm sure. Another blocker for me is #5. Gloo CLI is no longer supported with what comes with Sqoop Helm charts.

Anything I can do to get things going?

Add detail on creating endpoints

I managed to get this to install by cloning the repository to my $GOPATH/src, running "dep ensure -v" and figuring out where the latest scoop.yaml file is in the latest release (links are broken in the instructions for this and a few other things). I have everything started in my kubernetes instance and the right results showing up as the results of a kubectl get all -n gloo-system command.

Rather than start the petstore example, I'd like to deploy sqoop for a REST test service of my own that has an OpenAPI description available. I can even deploy it as a GraphQL endpoint if needed, but would like to start with an example of using sqoop with an OpenAPI endpoint on my own.

Any pointers to reading to get started? The main point is that eventually it would be good to show people how to get past the bundled petstore example.

update docs

The sqoop docs contain many dead links and are apparently difficult to reason about #31

Fix the dead links and improve the overall quality of these docs in line with our other projects.

GraphQL Subscriptions

Firstly, this project is amazing. I have been thinking of writing something like this (dynamic, config based GraphQL gateway) for use in my projects.

I tend to use GraphQL subscriptions for most of my realtime use cases and was wondering if QLoo supports it.

To be honest, I haven't gotten around to trying QLoo on my cluster yet, so I guess it could probably "just work" but since I couldn't find any mention of it in the documentation, I'm asking here.

Also, if it isn't supported as of today, is it on the roadmap for a future release?

qlooctl doesn't return schema from petstore example

# The query type, represents all of the entry points into our object graph
type Query {
    pets: [Pet]
    pet(id: Int!): Pet
}

type Mutation {
    addPet(pet: InputPet!): Pet
}

type Pet{
    id: ID!
    name: String!
    status: Status!
}

input InputPet{
    id: ID!
    name: String!
    tag: String
}

enum Status {
    pending
    available
}

I put the above schema into a file called petstore.graphql then uploaded it via qlooctl as per the petstore k8s example.

> qlooctl schema create petstore -f ./petstore.graphql
> qlooctl schema get petstore
petstore%

What I expected was to see the schema I had just uploaded. I also tried uploading the schema in the manner the help text of qlooctl described:
qlooctl schema create petstore --from-file ./petstore.graphql

Same error

Getting all schemas returns list of concatenated names without spaces sorted alphabetically

alias qc='qlooctl --kubeconfig __MY_CLUSTER__'
~/scratch/qloo » qc schema create -f ./example.graphql paul
schema created successfully
------------------------------------------------------------
~/scratch/qloo » qc schema create -f ./example.graphql blart
schema created successfully
------------------------------------------------------------
~/scratch/qloo » qc schema create -f ./example.graphql mall
schema created successfully
------------------------------------------------------------
~/scratch/qloo » qc schema create -f ./example.graphql cop
schema created successfully
------------------------------------------------------------
~/scratch/qloo » qc schema get
blartcopmallpaul% 

Expected result would be:

blart
cop
mall
paul

or to preserve the order in which they were created:

paul
blart
mall
cop

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.