@@ -142,18 +142,42 @@ func (c *controller) createFirewall(r *controllers.Ctx[*v2.Firewall]) (*models.V
142142 tags = append (tags , v2 .FirewallSetTag (ref .Name ))
143143 }
144144
145+ var rules * models.V1FirewallRules
146+ if r .Target .Spec .InitialRuleSet != nil {
147+ rules = & models.V1FirewallRules {}
148+
149+ for _ , rule := range r .Target .Spec .InitialRuleSet .Egress {
150+ rules .Egress = append (rules .Egress , & models.V1FirewallEgressRule {
151+ Comment : rule .Comment ,
152+ Ports : rule .Ports ,
153+ Protocol : string (rule .Protocol ),
154+ To : rule .To ,
155+ })
156+ }
157+
158+ for _ , rule := range r .Target .Spec .InitialRuleSet .Ingress {
159+ rules .Ingress = append (rules .Ingress , & models.V1FirewallIngressRule {
160+ Comment : rule .Comment ,
161+ From : rule .From ,
162+ Ports : rule .Ports ,
163+ Protocol : string (rule .Protocol ),
164+ })
165+ }
166+ }
167+
145168 createRequest := & models.V1FirewallCreateRequest {
146- Description : "created by firewall-controller-manager" ,
147- Name : r .Target .Name ,
148- Hostname : r .Target .Name ,
149- Sizeid : & r .Target .Spec .Size ,
150- Projectid : & r .Target .Spec .Project ,
151- Partitionid : & r .Target .Spec .Partition ,
152- Imageid : & r .Target .Spec .Image ,
153- SSHPubKeys : r .Target .Spec .SSHPublicKeys ,
154- Networks : networks ,
155- UserData : r .Target .Spec .Userdata ,
156- Tags : tags ,
169+ Description : "created by firewall-controller-manager" ,
170+ Name : r .Target .Name ,
171+ Hostname : r .Target .Name ,
172+ Sizeid : & r .Target .Spec .Size ,
173+ Projectid : & r .Target .Spec .Project ,
174+ Partitionid : & r .Target .Spec .Partition ,
175+ Imageid : & r .Target .Spec .Image ,
176+ SSHPubKeys : r .Target .Spec .SSHPublicKeys ,
177+ Networks : networks ,
178+ UserData : r .Target .Spec .Userdata ,
179+ Tags : tags ,
180+ FirewallRules : rules ,
157181 }
158182
159183 resp , err := c .c .GetMetal ().Firewall ().AllocateFirewall (firewall .NewAllocateFirewallParams ().WithBody (createRequest ).WithContext (r .Ctx ), nil )
0 commit comments