@@ -132,6 +132,25 @@ func resourceCloudStackKubernetesCluster() *schema.Resource {
132132 Optional : true ,
133133 Default : 8 ,
134134 },
135+
136+ "docker_registry_url" : {
137+ Type : schema .TypeString ,
138+ Optional : true ,
139+ ForceNew : true ,
140+ },
141+
142+ "docker_registry_username" : {
143+ Type : schema .TypeString ,
144+ Optional : true ,
145+ ForceNew : true ,
146+ },
147+
148+ "docker_registry_password" : {
149+ Type : schema .TypeString ,
150+ Optional : true ,
151+ ForceNew : true ,
152+ Sensitive : true ,
153+ },
135154 },
136155 }
137156}
@@ -180,6 +199,15 @@ func resourceCloudStackKubernetesClusterCreate(d *schema.ResourceData, meta inte
180199 if noderootdisksize , ok := d .GetOk ("noderootdisksize" ); ok {
181200 p .SetNoderootdisksize (int64 (noderootdisksize .(int )))
182201 }
202+ if dockerurl , ok := d .GetOk ("docker_registry_url" ); ok {
203+ p .SetDockerregistryurl (dockerurl .(string ))
204+ }
205+ if dockerusername , ok := d .GetOk ("docker_registry_username" ); ok {
206+ p .SetDockerregistryusername (dockerusername .(string ))
207+ }
208+ if dockerpassword , ok := d .GetOk ("docker_registry_password" ); ok {
209+ p .SetDockerregistrypassword (dockerpassword .(string ))
210+ }
183211
184212 // If there is a project supplied, we retrieve and set the project id
185213 if err := setProjectid (p , cs , d ); err != nil {
@@ -189,6 +217,13 @@ func resourceCloudStackKubernetesClusterCreate(d *schema.ResourceData, meta inte
189217 log .Printf ("[DEBUG] Creating Kubernetes Cluster %s" , name )
190218 r , err := cs .Kubernetes .CreateKubernetesCluster (p )
191219 if err != nil {
220+ cluster , _ , errg := cs .Kubernetes .GetKubernetesClusterByName (
221+ name ,
222+ cloudstack .WithProject (d .Get ("project" ).(string )),
223+ )
224+ if errg == nil {
225+ d .SetId (cluster .Id )
226+ }
192227 return err
193228 }
194229
0 commit comments