Comments (11)
Hi @sarslanhan, thanks for offering help.
When we first thought about this I believe we considered a very basic DataClient which would be initialized with a single GitHub object to load routes.
You idea of loading entire sets of eskip files sounds great. I also see how the DataClient could standardize on some well-known manifest file to keep code initialization cleaner. Both sound great to me.
I was also wondering if we could leverage tags and/or branches to load such eskip files.
Feel free to send the PR, I'd love to see those in action.
from skipper.
If "Help Wanted" can also apply, thumbs-up this comment.
from skipper.
@aryszka @lmineiro independent of how this issue evolves, i like the idea of having a manifest. maybe it could be extended in another ticket and we can decide on a format.
from skipper.
great idea! could be a nice project. plus the gained experience could be used for considering something like a github based filter repository.
from skipper.
@lmineiro @aryszka What would be the expected functionality for this? I have an early prototype that can load the eskip files in a github repo and initialize the routes with those. I have a question regarding how to select the eskip files to apply. These are the options I can think of:
- Load all files with
.eskip
(or something else) extension - Have an entry file in the project root (like .skipper), similar to .gitignore files, that contains the list of eskip files to load.
Let me know what you think.
from skipper.
agree with @lmineiro that these are great ideas.
I think the DataClient could have some initialization options. One set of these options could control which eskip files to load. It could be sg like this:
- default: load all eskip files
- if the repo has a manifest with gob or regexp wildcards, use it to match the eskip files in the repo to be loaded
- if the dataclient options specify wildcards, use them
4: if both defined, use the intersection
Another set of options could control authentication. E.g. a reference to a secret storage. This can be a bit more tricky and I think it is cool to address it in a separate iteration, I don't think it would break any backwards compatibility.
Thanks for the help!!!
from skipper.
I have some doubts about the "production readiness" of any GitHub data client: do we really want to encourage people to have a direct production dependency to GitHub/GHE? That sounds wrong to me.
from skipper.
@hjacobs good point. @lmineiro , how about approaching this as a general git client?
from skipper.
@aryszka so in that case we need a local copy for the repo right? if yes this also boils down to the issue related to watching for the file changes and polling the git repository.
from skipper.
@sarslanhan true, sounds like that. It's possible that a more generic http client and the file watching would cover the use cases without any specific technology. @lmineiro , what do you think?
from skipper.
I think we should specify what we want to achieve. For a Git integration it could be just a 10 lines bash loop that git pull --rebase
to update a routes file and skipper watches from the routes file.
IMHO it's not a feature we should implement and for the http style: PHP had the problem with RFI (remote file inclusion), which I don't want to do either.
If someone finds the issue and think http dataclient would be nice to have please create a new issue, thanks
from skipper.
Related Issues (20)
- fadeIn filter support for powerOfRandomNChoices load balancer HOT 4
- flakytest TestLoopbackAndMatchPredicate
- FlakyTest by flaky findAddress() helper - TestServerShutdownHTTP
- Flaky TestServerShouldCloseWhenAllRequestsAreFulfilled HOT 2
- Failing Ingress path after updating to latest Skipper version HOT 20
- Conditional rate limiting. HOT 1
- TestBackendRatelimitScenarios HOT 1
- signed releases
- Does the oauthOidcAllClaims filter provide the possibility to lookup sensitive data from Kubernetes Secrets HOT 7
- Update Ingress status with Service LoadBalancer IP/Hostname HOT 9
- Secure RouteGroups with Kubernetes TLS Secrets HOT 1
- automatic drains based on http response code HOT 2
- Query predicate is giving inconsistent results HOT 3
- ClientIP predicate is giving inconsistent results HOT 8
- OAuth2CallbackPath using https when no TLS is defined HOT 3
- AWS sigv4 auth filter HOT 7
- Using Skipper for implementing webhooks HOT 4
- WASM extensions filter HOT 5
- Scratch image as base image of Skipper docker image HOT 5
- Flaky TestAuthorizeRequestFilter/Simple_Forbidden HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from skipper.