Skip to content

Commit

Permalink
multi zone nat
Browse files Browse the repository at this point in the history
  • Loading branch information
kon-angelo committed Jun 30, 2021
1 parent a73e949 commit 2d6e613
Show file tree
Hide file tree
Showing 23 changed files with 1,720 additions and 431 deletions.
4 changes: 2 additions & 2 deletions charts/images.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
images:
- name: terraformer
sourceRepository: github.com/gardener/terraformer
repository: eu.gcr.io/gardener-project/gardener/terraformer-azure
tag: "v2.7.0"
repository: kangelo/terraformer
tag: "azure"

- name: cloud-controller-manager
sourceRepository: github.com/kubernetes/kubernetes
Expand Down
2 changes: 1 addition & 1 deletion example/controller-registration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
name: provider-azure
type: helm
providerConfig:
chart: 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
chart: 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
values:
image:
tag: v1.21.0-dev
Expand Down
118 changes: 117 additions & 1 deletion hack/api-reference/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -906,7 +906,8 @@ bool
</h3>
<p>
(<em>Appears on:</em>
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.NetworkConfig">NetworkConfig</a>)
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.NetworkConfig">NetworkConfig</a>,
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.Zone">Zone</a>)
</p>
<p>
<p>NatGatewayConfig contains configuration for the NAT gateway and the attached resources.</p>
Expand Down Expand Up @@ -1008,6 +1009,7 @@ string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Workers is the worker subnet range to create (used for the VMs).</p>
</td>
</tr>
Expand Down Expand Up @@ -1037,6 +1039,19 @@ NatGatewayConfig
<p>ServiceEndpoints is a list of Azure ServiceEndpoints which should be associated with the worker subnet.</p>
</td>
</tr>
<tr>
<td>
<code>zones</code></br>
<em>
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.Zone">
[]Zone
</a>
</em>
</td>
<td>
<p>Zones is a list of zones with their respective configuration.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="azure.provider.extensions.gardener.cloud/v1alpha1.NetworkStatus">NetworkStatus
Expand Down Expand Up @@ -1082,8 +1097,30 @@ VNetStatus
<p>Subnets are the subnets that have been created.</p>
</td>
</tr>
<tr>
<td>
<code>topology</code></br>
<em>
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.NetworkTopologyType">
NetworkTopologyType
</a>
</em>
</td>
<td>
<p>Topology describes the network topology of the cluster.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="azure.provider.extensions.gardener.cloud/v1alpha1.NetworkTopologyType">NetworkTopologyType
(<code>string</code> alias)</p></h3>
<p>
(<em>Appears on:</em>
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.NetworkStatus">NetworkStatus</a>)
</p>
<p>
<p>NetworkTopologyType is the network topology type for the cluster.</p>
</p>
<h3 id="azure.provider.extensions.gardener.cloud/v1alpha1.PublicIPReference">PublicIPReference
</h3>
<p>
Expand Down Expand Up @@ -1306,6 +1343,18 @@ Purpose
<p>Purpose is the purpose for which the subnet was created.</p>
</td>
</tr>
<tr>
<td>
<code>zone</code></br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Zone is the name of the zone for which the subnet was created.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="azure.provider.extensions.gardener.cloud/v1alpha1.VNet">VNet
Expand Down Expand Up @@ -1457,6 +1506,73 @@ string
</tr>
</tbody>
</table>
<h3 id="azure.provider.extensions.gardener.cloud/v1alpha1.Zone">Zone
</h3>
<p>
(<em>Appears on:</em>
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.NetworkConfig">NetworkConfig</a>)
</p>
<p>
<p>Zone describes the configuration for a subnet that is used for VMs on that region.</p>
</p>
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>name</code></br>
<em>
int32
</em>
</td>
<td>
<p>Name is the name of the zone and should match with the name the infrastructure provider is using for the zone.</p>
</td>
</tr>
<tr>
<td>
<code>cidr</code></br>
<em>
string
</em>
</td>
<td>
<p>CIDR is the CIDR range used for the zone&rsquo;s subnet.</p>
</td>
</tr>
<tr>
<td>
<code>serviceEndpoints</code></br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>ServiceEndpoints is a list of Azure ServiceEndpoints which should be associated with the zone&rsquo;s subnet.</p>
</td>
</tr>
<tr>
<td>
<code>natGateway</code></br>
<em>
<a href="#azure.provider.extensions.gardener.cloud/v1alpha1.NatGatewayConfig">
NatGatewayConfig
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>NatGateway contains the configuration for the NatGateway associated with this subnet.</p>
</td>
</tr>
</tbody>
</table>
<hr/>
<p><em>
Generated with <a href="https://github.com/ahmetb/gen-crd-api-reference-docs">gen-crd-api-reference-docs</a>
Expand Down
24 changes: 16 additions & 8 deletions pkg/admission/validator/shoot.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,18 +83,23 @@ func (s *shoot) Validate(ctx context.Context, new, old client.Object) error {
return fmt.Errorf("wrong object type %T", new)
}

cloudProfile := &gardencorev1beta1.CloudProfile{}
if err := s.client.Get(ctx, kutil.Key(shoot.Spec.CloudProfileName), cloudProfile); err != nil {
return err
}

if old != nil {
oldShoot, ok := old.(*core.Shoot)
if !ok {
return fmt.Errorf("wrong object type %T for old object", old)
}
return s.validateUpdate(oldShoot, shoot)
return s.validateUpdate(oldShoot, shoot, cloudProfile)
}

return s.validateCreation(ctx, shoot)
return s.validateCreation(ctx, shoot, cloudProfile)
}

func (s *shoot) validateCreation(ctx context.Context, shoot *core.Shoot) error {
func (s *shoot) validateCreation(ctx context.Context, shoot *core.Shoot, cloudProfile *gardencorev1beta1.CloudProfile) error {
infraConfig, err := checkAndDecodeInfrastructureConfig(s.decoder, shoot.Spec.Provider.InfrastructureConfig, infraConfigPath)
if err != nil {
return err
Expand All @@ -108,32 +113,35 @@ func (s *shoot) validateCreation(ctx context.Context, shoot *core.Shoot) error {
}
}

if err := s.validateShoot(shoot, infraConfig, cpConfig).ToAggregate(); err != nil {
if err := s.validateShoot(shoot, nil, infraConfig, cloudProfile, cpConfig).ToAggregate(); err != nil {
return err
}

return s.validateShootSecret(ctx, shoot)
}

func (s *shoot) validateShoot(shoot *core.Shoot, infraConfig *azure.InfrastructureConfig, cpConfig *azure.ControlPlaneConfig) field.ErrorList {
func (s *shoot) validateShoot(shoot *core.Shoot, oldInfraConfig, infraConfig *azure.InfrastructureConfig, cloudProfile *gardencorev1beta1.CloudProfile, cpConfig *azure.ControlPlaneConfig) field.ErrorList {
allErrs := field.ErrorList{}

// Network validation
allErrs = append(allErrs, azurevalidation.ValidateNetworking(shoot.Spec.Networking, nwPath)...)

// Cloudprofile validation
allErrs = append(allErrs, azurevalidation.ValidateInfrastructureConfigAgainstCloudProfile(oldInfraConfig, infraConfig, shoot.Spec.Region, cloudProfile, infraConfigPath)...)

// Provider validation
allErrs = append(allErrs, azurevalidation.ValidateInfrastructureConfig(infraConfig, shoot.Spec.Networking.Nodes, shoot.Spec.Networking.Pods, shoot.Spec.Networking.Services, helper.HasShootVmoAlphaAnnotation(shoot.Annotations), infraConfigPath)...)
if cpConfig != nil {
allErrs = append(allErrs, azurevalidation.ValidateControlPlaneConfig(cpConfig, shoot.Spec.Kubernetes.Version, cpConfigPath)...)
}

// Shoot workers
allErrs = append(allErrs, azurevalidation.ValidateWorkers(shoot.Spec.Provider.Workers, infraConfig.Zoned, workersPath)...)
allErrs = append(allErrs, azurevalidation.ValidateWorkers(shoot.Spec.Provider.Workers, infraConfig, workersPath)...)

return allErrs
}

func (s *shoot) validateUpdate(oldShoot, shoot *core.Shoot) error {
func (s *shoot) validateUpdate(oldShoot, shoot *core.Shoot, cloudProfile *gardencorev1beta1.CloudProfile) error {
// Decode the new infrastructure config.
if shoot.Spec.Provider.InfrastructureConfig == nil {
return field.Required(infraConfigPath, "InfrastructureConfig must be set for Azure shoots")
Expand Down Expand Up @@ -169,7 +177,7 @@ func (s *shoot) validateUpdate(oldShoot, shoot *core.Shoot) error {
allErrs = append(allErrs, azurevalidation.ValidateVmoConfigUpdate(helper.HasShootVmoAlphaAnnotation(oldShoot.Annotations), helper.HasShootVmoAlphaAnnotation(shoot.Annotations), metaDataPath)...)
allErrs = append(allErrs, azurevalidation.ValidateWorkersUpdate(oldShoot.Spec.Provider.Workers, shoot.Spec.Provider.Workers, workersPath)...)

allErrs = append(allErrs, s.validateShoot(shoot, infraConfig, cpConfig)...)
allErrs = append(allErrs, s.validateShoot(shoot, oldInfraConfig, infraConfig, cloudProfile, cpConfig)...)

return allErrs.ToAggregate()
}
Expand Down
Loading

0 comments on commit 2d6e613

Please sign in to comment.