@@ -29,7 +29,7 @@ import (
29
29
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30
30
)
31
31
32
- func (b * Builder ) setupSecret (out io.Writer ) (func (), error ) {
32
+ func (b * Builder ) setupPullSecret (out io.Writer ) (func (), error ) {
33
33
color .Default .Fprintf (out , "Creating kaniko secret [%s]...\n " , b .PullSecretName )
34
34
35
35
client , err := kubernetes .GetClientset ()
@@ -51,7 +51,7 @@ func (b *Builder) setupSecret(out io.Writer) (func(), error) {
51
51
52
52
secretData , err := ioutil .ReadFile (b .PullSecret )
53
53
if err != nil {
54
- return nil , errors .Wrap (err , "reading secret" )
54
+ return nil , errors .Wrap (err , "reading pull secret" )
55
55
}
56
56
57
57
secret := & v1.Secret {
@@ -65,12 +65,62 @@ func (b *Builder) setupSecret(out io.Writer) (func(), error) {
65
65
}
66
66
67
67
if _ , err := secrets .Create (secret ); err != nil {
68
- return nil , errors .Wrapf (err , "creating secret: %s" , err )
68
+ return nil , errors .Wrapf (err , "creating pull secret: %s" , err )
69
69
}
70
70
71
71
return func () {
72
72
if err := secrets .Delete (b .PullSecretName , & metav1.DeleteOptions {}); err != nil {
73
- logrus .Warnf ("deleting secret" )
73
+ logrus .Warnf ("deleting pull secret" )
74
+ }
75
+ }, nil
76
+ }
77
+
78
+ func (b * Builder ) setupDockerConfigSecret (out io.Writer ) (func (), error ) {
79
+ if b .DockerConfig == nil {
80
+ return func () {}, nil
81
+ }
82
+
83
+ color .Default .Fprintf (out , "Creating docker config secret [%s]...\n " , b .DockerConfig .SecretName )
84
+
85
+ client , err := kubernetes .GetClientset ()
86
+ if err != nil {
87
+ return nil , errors .Wrap (err , "getting kubernetes client" )
88
+ }
89
+
90
+ secrets := client .CoreV1 ().Secrets (b .Namespace )
91
+
92
+ if b .DockerConfig .Path == "" {
93
+ logrus .Debug ("No docker config specified. Checking for one in the cluster." )
94
+
95
+ if _ , err := secrets .Get (b .DockerConfig .SecretName , metav1.GetOptions {}); err != nil {
96
+ return nil , errors .Wrap (err , "checking for existing kaniko secret" )
97
+ }
98
+
99
+ return func () {}, nil
100
+ }
101
+
102
+ secretData , err := ioutil .ReadFile (b .DockerConfig .Path )
103
+ if err != nil {
104
+ return nil , errors .Wrap (err , "reading docker config" )
105
+ }
106
+
107
+ secret := & v1.Secret {
108
+ ObjectMeta : metav1.ObjectMeta {
109
+ Name : b .DockerConfig .SecretName ,
110
+ Labels : map [string ]string {"skaffold-kaniko" : "skaffold-kaniko" },
111
+ },
112
+ Data : map [string ][]byte {
113
+ "config.json" : secretData ,
114
+ },
115
+ }
116
+
117
+ if _ , err := secrets .Create (secret ); err != nil {
118
+ return nil , errors .Wrapf (err , "creating docker config secret: %s" , err )
119
+ }
120
+
121
+ return func () {
122
+ if err := secrets .Delete (b .DockerConfig .SecretName , & metav1.DeleteOptions {}); err != nil {
123
+ logrus .Warnf ("deleting docker config secret" )
74
124
}
75
125
}, nil
76
126
}
0 commit comments