Merge pull request #54979 from smarterclayton/symlink

Automatic merge from submit-queue. 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>.

When cert dir is relative, cert rotation builds incorrect symlinks

Symlinks relative to a working directory were being constructed to the
wrong location, leading to failure to refresh client certs.

@liggitt

Kubernetes-commit: 08781adf13491e08ac25e7545a9099d8be73a9dd
This commit is contained in:
Kubernetes Publisher
2017-11-07 22:35:54 -08:00
2 changed files with 703 additions and 696 deletions

160
Godeps/Godeps.json generated
View File

@@ -372,323 +372,323 @@
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/apps/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "b0482b24a79d3c79ed87c84c49a2e48dabdec188"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "95740bed589a312230fa657b096af634ba6ef5e5"
"Rev": "43f9bc20869f96399b84f4f5e1bea50bc2c2eb48"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/common",

View File

@@ -266,6 +266,13 @@ func (s *fileStore) updateSymlink(filename string) error {
return fmt.Errorf("file %q does not exist so it can not be used as the currently selected cert/key", filename)
}
// Ensure the source path is absolute to ensure the symlink target is
// correct when certDirectory is a relative path.
filename, err := filepath.Abs(filename)
if err != nil {
return err
}
// Create the 'updated' symlink pointing to the requested file name.
if err := os.Symlink(filename, updatedPath); err != nil {
return fmt.Errorf("unable to create a symlink from %q to %q: %v", updatedPath, filename, err)