Skip to content

Fixing SDS field/semantics in the gateway#780

Merged
wenchenglu merged 9 commits intoistio:release-1.1from
rshriram:gateway_sds
Jan 31, 2019
Merged

Fixing SDS field/semantics in the gateway#780
wenchenglu merged 9 commits intoistio:release-1.1from
rshriram:gateway_sds

Conversation

@rshriram
Copy link
Copy Markdown
Member

What this API allows is to always have SDS agent in the gateway pod
while still using old style file based configs. Then users can incrementally
migrate to the SDS server by changing their existing gateway configs to use
the CredentialStoreRemoteBackend with the resourceName as secretName. In other
words, it allows some servers in a gateway to have file based paths and others to have SDS.

Signed-off-by: Shriram Rajagopalan shriramr@vmware.com

Shriram Rajagopalan added 4 commits January 29, 2019 15:58
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
@googlebot googlebot added the cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. label Jan 30, 2019
@myidpt
Copy link
Copy Markdown

myidpt commented Jan 30, 2019

/cc @louiscryan @costinm @JimmyCYJ

@rshriram
Copy link
Copy Markdown
Member Author

repeating what I said earlier

The server certificates is still there.

servers:
- hosts:
   - foo.com
   tls:
    credentialStore:
      files:
        serverCertificate: ...
        privateKey...

Or

servers:
- hosts:
   - foo.com
  tls:
    credentialStore:
     remote:
       resourceName: mysecret

Only the secret name is mandatory. the server path is additional customization.

And systems that are auto provisioning the gateways - they are already generating the Gateway configs and the k8s secrets based on the hostnames. So all they have to do is something like this:

servers:
- hosts:
   - foo.com
tls:
 credentialStore:
   remote:
     resourceName: foo.com

Explicit spec avoids confusions caused by auto inference of that one single field

@rshriram
Copy link
Copy Markdown
Member Author

ping

@rshriram rshriram changed the title Enabling SDS in Gateway Fixing SDS field/semantics in the gateway Jan 31, 2019
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
// using this name, instead of using the file system paths specified
// above. The semantics of the name are platform dependent. In
// Kubernetes, the default Istio supplied credentail server expects the
// credentialName to be of the form secretName.namespace, where the
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

namespace is not required. The controller must always retrieve the secret from its own namespace.
@louiscryan

@myidpt
Copy link
Copy Markdown

myidpt commented Jan 31, 2019

/lgtm

@istio-testing
Copy link
Copy Markdown
Collaborator

@myidpt: changing LGTM is restricted to assignees, and only istio/api repo collaborators may be assigned issues.

Details

In response to this:

/lgtm

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@JimmyCYJ
Copy link
Copy Markdown
Member

/lgtm

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>

// The credentialName stands for a unique identifier that can be used
// to identify the serverCertificate and the privateKey (not the
// CaCertificates) associated with this server. Gateway workloads
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious - why not CaCertificates ? For MTLS we need that too. Not a big deal...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dunno.. @myidpt said only the public and private key is shipped

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarified. We support delivering the cacerts in SDS as well.

Copy link
Copy Markdown
Contributor

@costinm costinm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm
/approve

@istio-testing
Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: costinm, JimmyCYJ, myidpt, rshriram

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
Signed-off-by: Shriram Rajagopalan <shriramr@vmware.com>
@wenchenglu wenchenglu merged commit e3015e7 into istio:release-1.1 Jan 31, 2019
// be configured to retrive the credentials using this name, instead of
// using the file system paths specified above. The semantics of the
// name are platform dependent. In Kubernetes, the default Istio
// supplied credentail server expects the credentialName to match the
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rshriram doc needs a little work :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants