aspenmesh / istio-client-go Goto Github PK
View Code? Open in Web Editor NEWThis repository contains generated Go client for Istio resources
License: Apache License 2.0
This repository contains generated Go client for Istio resources
License: Apache License 2.0
I see current apis for authentication and networking, any plans on adding rbac, security apis.
Could you highlight those ?
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?
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 Gateway
s, 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 😛
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:
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:
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
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.
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.
README should have instructions for easily adding new APIs exposed by Istio
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
Hi. I have submitted a PR here to a fork of your repository which has a more complete implementation of the API:
Are there plans to improve this codebase from Aspenmesh?
I would have submitted my PR here, but SEs are not implemented in master.
Cheers
-steve
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
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.
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
While looking for the spec part of the virtualservice :
{{[reviews.prod.svc.cluster.local] [] [match:<uri:<> > route:<destination:<host:"reviews.prod.svc.cluster.local" port:<> > > ] [] [] [] {} [] 0}}
The HTTPMatchRequest is empty and also the port.
@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
can anyone explain why this function was not auto-generated - https://github.com/aspenmesh/istio-client-go/blob/master/pkg/apis/networking/v1alpha3/destination_rule.go#L87
Is there another work around ?
Mark repository as deprecated/no longer maintained and redirect to istio client-go
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.