Skip to content

Commit 342e070

Browse files
committed
destructure the resources exhaustively in apply()
1 parent 0aba05a commit 342e070

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

  • rust/operator-binary/src/controller

rust/operator-binary/src/controller/apply.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,27 @@ impl<'a> Applier<'a> {
7070
mut self,
7171
resources: KubernetesResources<Prepared>,
7272
) -> Result<KubernetesResources<Applied>> {
73+
// Destructured without `..`, so adding a field to [`KubernetesResources`] fails to
74+
// compile here instead of silently never being applied.
75+
let KubernetesResources {
76+
stateful_sets,
77+
services,
78+
config_maps,
79+
pod_disruption_budgets,
80+
service_accounts,
81+
role_bindings,
82+
status: _,
83+
} = resources;
84+
7385
// Apply order is: StatefulSets last (a changed mounted ConfigMap/Secret
7486
// must exist first, else Pods restart -- commons-operator#111). The ServiceAccount comes
7587
// first because the Pods reference it at creation time.
76-
let service_accounts = self.add_resources(resources.service_accounts).await?;
77-
let role_bindings = self.add_resources(resources.role_bindings).await?;
78-
let services = self.add_resources(resources.services).await?;
79-
let config_maps = self.add_resources(resources.config_maps).await?;
80-
let pod_disruption_budgets = self.add_resources(resources.pod_disruption_budgets).await?;
81-
let stateful_sets = self.add_resources(resources.stateful_sets).await?;
88+
let service_accounts = self.add_resources(service_accounts).await?;
89+
let role_bindings = self.add_resources(role_bindings).await?;
90+
let services = self.add_resources(services).await?;
91+
let config_maps = self.add_resources(config_maps).await?;
92+
let pod_disruption_budgets = self.add_resources(pod_disruption_budgets).await?;
93+
let stateful_sets = self.add_resources(stateful_sets).await?;
8294

8395
self.cluster_resources
8496
.delete_orphaned_resources(self.client)

0 commit comments

Comments
 (0)