Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌱 Drop WCP fault domains feature gate #3118

Merged
merged 2 commits into from
Jul 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions config/deployments/integration-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ To sync the new CRD's use the following script **and** update `kustomization.yam
make clean-vm-operator checkout-vm-operator
rm -r config/deployments/integration-tests/crds
cp -r test/infrastructure/vm-operator/vm-operator.tmp/config/crd/bases config/deployments/integration-tests/crds
# Note: for now we only need the AvailabilityZone CRD in our integration tests
cp test/infrastructure/vm-operator/vm-operator.tmp/config/crd/external-crds/topology.tanzu.vmware.com_availabilityzones.yaml config/deployments/integration-tests/crds

make clean-vm-operator
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.6.1
creationTimestamp: null
name: availabilityzones.topology.tanzu.vmware.com
spec:
group: topology.tanzu.vmware.com
names:
kind: AvailabilityZone
listKind: AvailabilityZoneList
plural: availabilityzones
shortNames:
- az
singular: availabilityzone
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: AvailabilityZone is the schema for the AvailabilityZone resource
for the vSphere topology API.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: AvailabilityZoneSpec defines the desired state of AvailabilityZone.
properties:
clusterComputeResourceMoIDs:
description: ClusterComputeResourceMoIDs are the managed object IDs
of the vSphere ClusterComputeResources represented by this availability
zone.
items:
type: string
type: array
clusterComputeResourceMoId:
description: ClusterComputeResourceMoId is the managed object ID of
the vSphere ClusterComputeResource represented by this availability
zone.
type: string
namespaces:
additionalProperties:
description: NamespaceInfo contains identifying information about
the vSphere resources used to represent a Kubernetes namespace
on individual vSphere Zones.
properties:
folderMoId:
description: FolderMoId is the managed object ID of the vSphere
Folder for a Namespace. Folders are global and not per-vSphere
Cluster, but the FolderMoId is stored here, alongside the
PoolMoId for convenience.
type: string
poolMoIDs:
description: PoolMoIDs are the managed object ID of the vSphere
ResourcePools for a Namespace in an individual vSphere Zone.
A zone may be comprised of multiple ResourcePools.
items:
type: string
type: array
poolMoId:
description: PoolMoId is the managed object ID of the vSphere
ResourcePool for a Namespace on an individual vSphere Cluster.
type: string
type: object
description: Namespaces is a map that enables querying information
about the vSphere objects that make up a Kubernetes Namespace based
on its name.
type: object
type: object
status:
description: AvailabilityZoneStatus defines the observed state of AvailabilityZone.
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
9 changes: 0 additions & 9 deletions controllers/vmware/vspherecluster_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ package vmware
import (
"context"
"fmt"
"os"

"github.com/pkg/errors"
topologyv1 "github.com/vmware-tanzu/vm-operator/external/tanzu-topology/api/v1alpha1"
Expand Down Expand Up @@ -370,17 +369,9 @@ func (r *ClusterReconciler) VSphereMachineToCluster(ctx context.Context, o clien
}}
}

var isFaultDomainsFSSEnabled = func() bool {
return os.Getenv("FSS_WCP_FAULTDOMAINS") == "true"
}

// Returns the failure domain information discovered on the cluster
// hosting this controller.
func (r *ClusterReconciler) getFailureDomains(ctx context.Context) (clusterv1.FailureDomains, error) {
if !isFaultDomainsFSSEnabled() {
return nil, nil
}

availabilityZoneList := &topologyv1.AvailabilityZoneList{}
if err := r.Client.List(ctx, availabilityZoneList); err != nil {
return nil, err
Expand Down
10 changes: 0 additions & 10 deletions controllers/vmware/vspherecluster_reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,16 +130,6 @@ var _ = Describe("Cluster Controller Tests", func() {
})

Context("Test getFailureDomains", func() {
fss := isFaultDomainsFSSEnabled

BeforeEach(func() {
isFaultDomainsFSSEnabled = func() bool { return true }
})

AfterEach(func() {
isFaultDomainsFSSEnabled = fss
})

It("should not find FailureDomains", func() {
fds, err := reconciler.getFailureDomains(ctx)
Expect(err).ToNot(HaveOccurred())
Expand Down