kite icon indicating copy to clipboard operation
kite copied to clipboard

examples: state explicitly what is required to use Kontrol API

Open HolaYang opened this issue 7 years ago • 6 comments

I do every process in tutorial.

But it raises "No kontrol URL given in config"

What should I do to figure it out?

HolaYang avatar Mar 21 '17 07:03 HolaYang

@Takeoffyoung In order to use Kontrol API you need to configure its endpoint first, e.g.

k := kite.New("name", "1.0.0")
k.Config.KontrolURL = "http://example.com/kontrol/kite"

Next problem you may encounter is that you'd need to provide also (*Config).KiteKey in order to authenticate to Kontrol.

Looking at the examples I agree it is not clear, they assume (*config.Config).KontrolURL is either read from ~/.kite/kite.key or from environment. In case both places do not have it set, you can get an error as the one you're getting.

This needs to be improved.

rjeczalik avatar Mar 21 '17 08:03 rjeczalik

Year, I've configure the environment variables like KONTROL_USERNAME, KONTROL_URL...

And do kontrol -initial, get right result of kitectl showkey.

But in server endpoint, k.Config.KontrolURL is empty

Could you tell me why?

Which step makes it wrong?

HolaYang avatar Mar 21 '17 09:03 HolaYang

@Takeoffyoung Can you show me your code just to confirm?

rjeczalik avatar Mar 21 '17 09:03 rjeczalik

package main
import (
    "github.com/koding/kite"
    "net/url"
    "fmt"
)

func main() {
    k := kite.New("first", "1.0.0")
    k.Config.Port = 6000
    fmt.Println(k.Config.KontrolURL)

    k.HandleFunc("square", func(r *kite.Request) (interface{}, error) {
        a := r.Args.One().MustFloat64()
        return a * a, nil
    })

    k.Register(&url.URL{Scheme: "http", Host: "localhost:6000/kite"})
    k.Run()
}

It does not read configuration from neither environment variables nor ~/kite/kite.key .

Above all.

HolaYang avatar Mar 21 '17 09:03 HolaYang

@Takeoffyoung kite.New() uses default configuration, it does not read kite.key nor environment.

Your code needs config.Get() or config.MustGet() for that, like this:

https://github.com/koding/kite/blob/master/examples/math-register/math-register.go#L29

rjeczalik avatar Mar 21 '17 09:03 rjeczalik

Oh.... Thx very much.

huh... Maybe I've figured it out, but I am trapped in another trouble.

I am trying it solve it by myself. Thank you.

HolaYang avatar Mar 21 '17 09:03 HolaYang