Giter Club home page Giter Club logo

istio-client-go's People

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

Watchers

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

istio-client-go's Issues

Futuristic work

I see current apis for authentication and networking, any plans on adding rbac, security apis.
Could you highlight those ?

How to include this package?

dep ensure -add github.com/aspenmesh/istio-client-go doesn't work because there's no go files in the root directory.

How do I go about including this in my package?

Knative Serving bundles an Istio client

Thanks for implementing this – it’s super frustrating that Istio doesn’t expose a Kubernetes API client, despite being implemented in Go.

I was looking into implementing an operator that would need to watch Istio Gateways, and noticed that wasn’t part of this package. I went looking for an alternative and discovered that Knative Serving, which wraps Istio, includes an API client for it. It looks like it solves #1 by implementing the API types itself.

Just wanted to flag it for you if you’d like an Istio client that you wouldn’t have to maintain 😛

VirtualService Deserialization Issues

I commented on this issue but I thought I should open a new one for this
#13

the match selectors and http faults (and probably others but I haven't ran into those yet) are not deserializing properly.

For this virtualservice
`spec:
hosts:

  • details
    http:
  • fault:
    delay:
    fixedDelay: 7s
    percent: 100
    route:
    • destination:
      host: details
      subset: v1
      weight: 63
    • destination:
      host: details
      subset: v2
      weight: 37`

I get this returned
http: - route: - destination: host: details subset: v1 weight: 63 - destination: host: details subset: v2 weight: 37 fault: delay: percent: 100 HttpDelayType: null

and for this virtualservice
` http:

  • match:
    • headers:
      end-user:
      exact: jason
      other-header:
      exact: jason
      route:
    • destination:
      host: reviews
      subset: v2
  • route:
    • destination:
      host: reviews
      subset: v1`

I get this returned
spec: hosts: - reviews http: - match: - headers: end-user: MatchType: null other-header: MatchType: null route: - destination: host: reviews subset: v2 - route: - destination: host: reviews subset: v1

Implement correct DeepCopyInto methods for Istio API struct types

The generated Go structs for Istio API resources are missing the DeepCopyInto methods which are needed by k8s codegen to generate client code.

A poor man's version of DeepCopyInto has been implemented in this repository like this which is more of a shallow copy than deep copy.

This might cause issues related to corruption in future.

Adding new CRDs fails with no kind is registered

I tried adding the istio.io/api/pkg/kube/apis/config/v1alpha2/Instance crd to the client.
Everything worked just fine until the point in which we run the client and tried to get or list instances from a namespace.
At that point I got the following error:

Failed to get Instance in kubist-demo namespace: no kind “instance” is registered for version “config.istio.io/v1alpha2" in scheme “pkg/runtime/scheme.go:101

By debugging I saw that, when querying for the resources, the client is getting a successful response, but is then failing to parse it.

removing logging in api code

The api code has logging to indicate whether a marshal or unmarshal failed. We should be able to generate a composed error of these conditions and return it in err along with the reason for the marshal failure.

Cheers
-steve

Cannot use fake clientset for unit testing

Since neither versioned.Clientset not fake.Clientset implement any interfaces they cannot be used interchangeably for unit-testing.
Can we have an interface defined and added to the versioned pkg so that we can start using the fake clientset? I am not sure if this is a manual process or is driven by some codegen but it would be highly beneficial to enable this feature.

See,
https://github.com/aspenmesh/istio-client-go/blob/master/pkg/client/clientset/versioned/clientset.go

https://github.com/aspenmesh/istio-client-go/blob/master/pkg/client/clientset/versioned/fake/clientset_generated.go

Unless I am completely mistaken on the interface they both implement and in that case I am totally wrong and would like to be pointed to the right resources.

Add circleci infrastructure

Would be helpful to add circleci infrastructure for this repository. CI starts with the first commit to build the repository. From there other checks can be added (linting, unit testing, functional testing).

Cheers
-steve

Switch (or add support for) go modules

@nrjpoddar Since most packages have migrated over to go modules we should look to either support them by adding go modules in addition to dep or completely switch from dep.

go mod init automatically reads the Gopkg.* files and converts them to go.* files

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.