@handle_orch_error
def apply_rgw(self, spec):
# type: (RGWSpec) -> str
- return self.rook_cluster.apply_objectstore(spec)
+ num_of_osds = self.get_ceph_option('osd_pool_default_size')
+ assert type(num_of_osds) is int
+ return self.rook_cluster.apply_objectstore(spec, num_of_osds)
@handle_orch_error
def apply_nfs(self, spec):
self.coreV1_api.patch_node(host, matching_node)
return OrchResult(f'Removed {label} label from {host}')
- def apply_objectstore(self, spec: RGWSpec) -> str:
+ def apply_objectstore(self, spec: RGWSpec, num_replicas: int) -> str:
assert spec.service_id is not None
name = spec.service_id
port=port,
securePort=secure_port,
instances=spec.placement.count or 1,
- placement=ccl.NodeAffinity(
- requiredDuringSchedulingIgnoredDuringExecution=ccl.RequiredDuringSchedulingIgnoredDuringExecution(
- nodeSelectorTerms=ccl.NodeSelectorTermsList(
- [
- placement_spec_to_node_selector(spec.placement, all_hosts)
- ]
+ placement=cos.Placement(
+ cos.NodeAffinity(
+ requiredDuringSchedulingIgnoredDuringExecution=cos.RequiredDuringSchedulingIgnoredDuringExecution(
+ nodeSelectorTerms=cos.NodeSelectorTermsList(
+ [
+ placement_spec_to_node_selector(spec.placement, all_hosts)
+ ]
+ )
)
)
)
),
+ dataPool=cos.DataPool(
+ replicated=cos.Replicated(
+ size=num_replicas
+ )
+ ),
+ metadataPool=cos.MetadataPool(
+ replicated=cos.Replicated(
+ size=num_replicas
+ )
+ )
)
)
if spec.rgw_zone: