def _create_conf_secret(namespace): env_parser = EnvParser(namespace) conf_data = _build_test_conf(env_parser) encoded_conf = base64.b64encode(yaml.dump(conf_data).encode()).decode() secret = { "apiVersion": "v1", "kind": "Secret", "metadata": {"name": SECRET_NAME}, "data": {"settings.local.yaml": encoded_conf,}, } oc("create", f="-", n=namespace, _in=json.dumps(secret))
def __init__(self, env_config, silent=True): if not silent: load_logging_config() self.envParser = EnvParser(env_config) if self.envParser.ip4_prefix: self.prefix = IpPrefixes(ip4_prefix=self.envParser.ip4_prefix) else: self.prefix = IpPrefixes(ip6_prefix=self.envParser.ip6_prefix) self.nodes = {} # pc nodes self.networks = [] # switches nodes # create emulator instance for creating sessions and utility methods self.coreemu = CoreEmu() self.session = self.coreemu.create_session() # must be in configuration state for nodes to start, when using "node_add" below self.session.set_state(EventTypes.CONFIGURATION_STATE) # create nodes for node in self.envParser.nodes: self.nodes[int(node["id"])] = {"obj": self.session.add_node(_type=NodeTypes.DEFAULT), "nets": [], "ip": None, "curr_net": None} # create networks for net in self.envParser.networks: self.networks.append(self.session.add_node(_type=NodeTypes.SWITCH)) for node in net["nodes"]: interface = self.prefix.create_interface(self.nodes[node["id"]]["obj"], name=self.envParser.dev_prefix + str(net["id"])) self.nodes[node["id"]]["ip"] = self.prefix.ip4_address(self.nodes[node["id"]]["obj"]) self.session.add_link(self.nodes[node["id"]]["obj"].id, self.networks[-1].id, interface_one=interface) self.nodes[node["id"]]["nets"].append({ "net": net["id"] }) # certs shutil.rmtree('certs', True) self.__create_root_ca() for node in self.nodes: self.__create_node_cert(node) # instantiate session self.start()
exit(100) def stop_instance(self): ec2_instance_id = self.ec2_instance_data['InstanceId'] self.client.stop_instances(InstanceIds=[ec2_instance_id]) def exec_command(self, command): stdin, stdout, stderr = self.ssh_client.exec_command(command) stdin.close() for line in iter(lambda: stdout.readline(2048), ""): print(line, end="") if __name__ == "__main__": # Takes configuration from config.ini envParser = EnvParser() awsEc2Manager = AwsEc2Manager(envParser.AWS_INSTANCE_NAME, envParser.EC2_SSH_PRIVATE_KEY) # 1. Start EC2 Instance awsEc2Manager.start_instance() # 2. Git Pull, Build, and Push to Docker Hub. logging.info('Cloning Git repository..') awsEc2Manager.exec_command('sudo git clone {} /tmp/remote-builder'.format( envParser.GITHUB_URL)) logging.info('Building Docker image from Github repository..') awsEc2Manager.exec_command( 'sudo docker build /tmp/remote-builder/ -t {}'.format( envParser.DOCKER_IMAGE_NAME))