Ejemplo n.º 1
0
    def add_nodes(
        self,
        count: int,
        ec2_user_data: str = "",
        dc_idx: int = 0,
        rack: int = 0,
        enable_auto_bootstrap: bool = False
    ) -> List[MinikubeScyllaPodContainer]:
        new_nodes = super().add_nodes(
            count=count,
            ec2_user_data=ec2_user_data,
            dc_idx=dc_idx,
            rack=rack,
            enable_auto_bootstrap=enable_auto_bootstrap)
        for node in new_nodes:
            KubernetesOps.expose_pod_ports(
                self.k8s_cluster,
                node.name,
                ports=SCYLLA_POD_EXPOSED_PORTS,
                labels=f"statefulset.kubernetes.io/pod-name={node.name}",
                selector=f"statefulset.kubernetes.io/pod-name={node.name}",
                namespace=self.namespace)

        self.add_hydra_iptables_rules(nodes=new_nodes)
        self.update_nodes_iptables_redirect_rules(nodes=new_nodes)

        return new_nodes
Ejemplo n.º 2
0
    def add_nodes(
            self,
            count: int,
            ec2_user_data: str = "",
            dc_idx: int = 0,
            enable_auto_bootstrap: bool = False) -> List[BasePodContainer]:
        new_nodes = super().add_nodes(
            count=count,
            ec2_user_data=ec2_user_data,
            dc_idx=dc_idx,
            enable_auto_bootstrap=enable_auto_bootstrap)
        for node in new_nodes:
            KubernetesOps.expose_pod_ports(
                self.k8s_cluster,
                node.name,
                ports=SCYLLA_POD_EXPOSED_PORTS,
                labels=f"statefulset.kubernetes.io/pod-name={node.name}",
                selector=f"statefulset.kubernetes.io/pod-name={node.name}",
                namespace=self.namespace)

        LOCALRUNNER.run_shell_script(cmd="\n".join(
            self.hydra_iptables_redirect_rules(nodes=new_nodes)),
                                     sudo=True)
        atexit.register(LOCALRUNNER.run_shell_script,
                        cmd="\n".join(
                            self.hydra_iptables_redirect_rules(
                                command="D", nodes=new_nodes)),
                        sudo=True)
        self.update_nodes_iptables_redirect_rules(nodes=new_nodes)

        return new_nodes