• Kubernetes Submit Queue's avatar
    Merge pull request #64575 from immutableT/in-memory-domain-socket · 75c8b56d
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 64575, 65120, 65463, 65434, 65522). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.
    
    Add support for Linux Abstract Socket Namespace for KMS provider plugin.
    
    **What this PR does / why we need it**:
    Currently, kube-apiserver and kms-plugin interact via a Unix Domain Socket. The current implementation, assumes that such a Domain Socket is supported via a socket file, which is in turn is supported via a volume shared between kube-apiserver and kms-plugin containers.
    However, Linux supports Abstract Socket Namespace, where a socket does not need to be back-up by a file. In golang, such sockets are created by prefixing a socket's name with @.
    
    Benefits of using Linux Abstract Socket Namespace:
    1. Don't need to worry about possible collisions with existing files.
    2. Simpler configuration of master's manifest - no need to setup a shared volume between kube-apiserver and kms-plugin containers.
    3. Don't need to remember to unlink the socket when KMS Plugin shuts down.
    4. Creates a possibility to run KMS Plugin without access to file system.
    
    This PR adds the ability to define a KMS endpoint as: unix:///@kms-provider.sock
    
    **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
    Fixes #
    
    **Special notes for your reviewer**:
    
    **Release note**:
    
    ```release-note
    NONE
    ```
    75c8b56d
Name
Last commit
Last update
..
apiserver Loading commit data...
auth Loading commit data...
benchmark/jsonify Loading commit data...
client Loading commit data...
configmap Loading commit data...
daemonset Loading commit data...
defaulttolerationseconds Loading commit data...
deployment Loading commit data...
etcd Loading commit data...
evictions Loading commit data...
examples Loading commit data...
framework Loading commit data...
garbagecollector Loading commit data...
ipamperf Loading commit data...
master Loading commit data...
metrics Loading commit data...
objectmeta Loading commit data...
openshift Loading commit data...
pods Loading commit data...
quota Loading commit data...
replicaset Loading commit data...
replicationcontroller Loading commit data...
scale Loading commit data...
scheduler Loading commit data...
scheduler_perf Loading commit data...
secrets Loading commit data...
serviceaccount Loading commit data...
statefulset Loading commit data...
storageclasses Loading commit data...
tls Loading commit data...
ttlcontroller Loading commit data...
util Loading commit data...
volume Loading commit data...
BUILD Loading commit data...
benchmark-controller.json Loading commit data...
doc.go Loading commit data...
utils.go Loading commit data...