Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to retrieve Ark server version #770

Closed
nrb opened this issue Aug 16, 2018 · 4 comments
Closed

Ability to retrieve Ark server version #770

nrb opened this issue Aug 16, 2018 · 4 comments
Assignees
Labels
Enhancement/User End-User Enhancement to Velero
Milestone

Comments

@nrb
Copy link
Contributor

nrb commented Aug 16, 2018

Right now, it's not immediately apparent that the output of ark version is the client only, and getting the version of the server is done via kubectl.

We should consider adding an endpoint so the client can report the version, much in the same way kubectl version works.

@nrb nrb added the Enhancement/User End-User Enhancement to Velero label Aug 16, 2018
@nrb
Copy link
Contributor Author

nrb commented Aug 16, 2018

@mattmoyer Hey Matt, do you see this kind of feature being a security concern? One point that was brought up was that if there's an endpoint for the version, a client could do version sniffing and then use known vulnerabilities.

I'm wondering if it's really that much different than kubectl version and our current way of looking up the server version - kubectl logs deploy/ark -n heptio-ark, which has the version in the first few lines of output.

@ncdc
Copy link
Contributor

ncdc commented Aug 17, 2018

Thinking about this more, it's probably ok (especially since kubectl version reports similar information about the server).

Getting the request from the client to the ark server pod could be challenging, depending on the networking setup. We should assume that most invocations of ark version happen outside the Kubernetes cluster (e.g., on your laptop). This means there needs to be some sort of ingress into the cluster - a regular Service won't be sufficient. We could consider attempting to proxy through the apiserver, but many/most clusters may have that locked down and unavailable.

We may want to consider adding new configuration options to ark client config set, such as (names TBD):

  • serverUrl
  • useKubernetesProxy

We also will want to be careful not to expose the metrics endpoint - presumably that should remain private/protected (although as I understand it, if you run a pod on the cluster and there aren't any network policy rules, the pod can access the metrics endpoint, and we don't have any authn/authz for it...).

cc @rosskukulinski

@rosskukulinski rosskukulinski added the Needs Product Blocked needing input or feedback from Product label Aug 17, 2018
@ncdc ncdc changed the title Add endpoint to report server version Ability to retrieve Ark server version Nov 28, 2018
@ncdc
Copy link
Contributor

ncdc commented Nov 28, 2018

Decision: add a Status CRD that for now just contains the server version. Update the ark version command to use that to get the server's version. We'll create a new issue for an ark status command with additional details.

@ncdc ncdc removed the Needs Product Blocked needing input or feedback from Product label Nov 28, 2018
@skriss skriss added this to the v0.11.0 milestone Nov 28, 2018
@mattmoyer
Copy link
Contributor

@nrb I don't think it's a serious security concern. It can be nice to avoid version fingerprinting for publicly-exposed services, but for something like Ark (or the Kubernetes API) that's generally only exposed internally, I think it's generally accepted that the inspectability is worth making it easier to fingerprint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement/User End-User Enhancement to Velero
Projects
None yet
Development

No branches or pull requests

5 participants