Closed avshiliaev closed 10 months ago
hello its very interesting project is it there for gsoc 2023 i would be interested. I have experience creating api in node and django
Hi! @avshiliaev , I have 1+ year of experience working in react and this project looks interesting , hope it gets accepted for GSoc2023 , I have the required skills required for the project , so can I have you contact email or slack channel to briefly introduce myself and discuss the timelines regarding the project
Sounds interesting. I would like to contribute to the project in GSOC"23
Hey @DiviyamPathak! Thanks a lot for your interest in the project! I would say it's rather a hard requirement here to work with Go on the server side and React on the client one. We can think of what libraries to use though. If you're still interested, please let me know.
Hey @Waer1! I very much appreciate your interest in the project!
First of all, I appologise for the owrong link I gave in the description. The right one should be of course Inter-Server Synchronization - Version 2. The whole concept is the same though.
As for the starting point, I would say the very first milestone would be to get familiar with the development environment setup. Take a closer look here at our sumaform project. It should help you spin up a couple of VMs with uyuni installed so you can actually perform the synchronization.
Feel free to drop me an email so we could organize a quick chat around the first steps in the project. Also feel free to post your ideas here in the thread.
Hey @shatmanyu! That sounds awesome! Would you also be willing to work on the golang part of the project?
Hey @vmmuthu31! The contributions are very much welcomed! How comfortable would you be working with React/Typescript and Go?
Hey @avshiliaev! I am very interested in this project, and would love to work on this for GSoC 2023! I am very familiar with React, and have basic understanding of Golang (I have worked with Gin in one of my personal project)! I have emailed you in order to have quick chat so that I can get started with the project:))
Hey @avshiliaev I would love to work on this project during GSoC 2023, I have some expierence with nodejs and reactjs. I can work with typescript aswell. Through I dont have much knowledge with golang but I would be willing to learn it as needed.
Hey @iAniket23. Thank you a lot for your interest. I think Gin and React would work together just fine for this project. I've answered you in the e-mail.
Hey @Leave-it-blank! I appreciate your interest!
As I've already said earlier in this thread, here's what you can do to get yourself familiar with the project requirements.
As for the starting point, I would say the very first milestone would be to get familiar with the development environment setup. Take a closer look here at our sumaform project. It should help you spin up a couple of VMs with uyuni installed so you can actually perform the synchronization.
If this thing doesn't scare you away :smile: , feel free to drop me an email so we could organize a quick chat around the first steps in the project. Also feel free to post your ideas here in the thread.
Hi. I am trying to run Sumaform in this main.tf:
terraform {
required_version = "1.0.10"
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
version = "0.6.3"
}
}
}
provider "libvirt" {
uri = "qemu:///system"
}
module "base" {
source = "./modules/base"
cc_username = "UC7"
cc_password = "<PASSWORD HERE>"
// optional parameters with defaults below
// use_avahi = true
// name_prefix = "" // if you use name_prefix, make sure to update the server_configuration for clients/minions below
// timezone = "Europe/Berlin"
// use_ntp = true
// use_mirror_images = false
// mirror = "mirrors.ustc.edu.cn/opensuse"
images = ["ubuntu2204o"]
ssh_key_path = "~/.ssh/echo.pub"
provider_settings = {
network_name = "default" // change to null if you add a bridge below
// additional_network = null
// bridge = "bridge0"
// pool = "default"
}
}
module "master" {
source = "./modules/server"
base_configuration = module.base.configuration
name = "master"
product_version = "4.2-released"
image = "ubuntu2204o"
iss_slave = "slave.tf.local"
}
module "slave" {
source = "./modules/server"
base_configuration = module.base.configuration
name = "slave"
product_version = "4.2-released"
image = "ubuntu2204o"
iss_master = module.master.configuration["hostname"]
}
//module "server" {
// source = "./modules/server"
// base_configuration = module.base.configuration
//
// name = "server"
// product_version = "4.2-nightly"
// // see modules/server/variables.tf for possible values
//
// // connect_to_additional_network = true
// // if you want to use two networks
//}
//
//module "client" {
// source = "./modules/client"
// base_configuration = module.base.configuration
//
// name = "client"
// image = "sles15sp4o"
// server_configuration = module.server.configuration
// // see modules/client/variables.tf for possible values
//}
//
//module "minion" {
// source = "./modules/minion"
// base_configuration = module.base.configuration
//
// name = "minion"
// image = "sles15sp4o"
// server_configuration = module.server.configuration
// // see modules/minion/variables.tf for possible values
//}
I have tried some image like opensuse154o, opensuse153o and ubuntu2204o. But eventually it will try to connect to http://download.suse.de that impossible to connect. Any hint for me or I could just start to write propose?
Finally setup VMs by this config:
terraform {
required_version = "1.0.10"
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
version = "0.6.3"
}
}
}
provider "libvirt" {
uri = "qemu:///system"
}
module "base" {
source = "./modules/base"
cc_username = "UE7"
cc_password = "<PASSWORD HERE>"
// optional parameters with defaults below
// use_avahi = true
// name_prefix = "" // if you use name_prefix, make sure to update the server_configuration for clients/minions below
// timezone = "Europe/Berlin"
// use_ntp = true
// use_mirror_images = false
// mirror = "mirrors.ustc.edu.cn/opensuse"
images = ["opensuse154o"]
ssh_key_path = "~/.ssh/echo.pub"
provider_settings = {
network_name = "default" // change to null if you add a bridge below
// additional_network = null
// bridge = "bridge0"
// pool = "default"
}
}
module "server0" {
source = "./modules/server"
base_configuration = module.base.configuration
name = "server0"
product_version = "uyuni-released"
image = "opensuse154o"
// see modules/server/variables.tf for possible values
// connect_to_additional_network = true
// if you want to use two networks
}
module "server1" {
source = "./modules/server"
base_configuration = module.base.configuration
name = "server1"
product_version = "uyuni-released"
image = "opensuse154o"
// see modules/server/variables.tf for possible values
// connect_to_additional_network = true
// if you want to use two networks
}
image: I recommand opensuse. Check backend_modules/libvirt/base/main.tf for more.
product_version: use uyuni-released
. See server.sls#167.
If you see some error about download.suse.de . Just search the link in codes of whole sumaform. You might find some clues. Here is some useful issue: sumaform#1108 sumaform#738
After you finished terraform apply
. Use sudo virsh net-edit default
to check IPs of VMs. And access Uyuni management web UI with "admin" and "admin" or SSH with "root" and "linux".
Hi! @avshiliaev, I have some experience working in react and this project looks very interesting to me, hope it gets accepted for GSoc2023. I have been working on building a website using react with my team(Repo: https://github.com/CalCourse-Dev/CalCourse_FrontEnd)
@WordlessEcho yes, you're right! For that you can pick uyuni-released
as the product and the opensuse154o
as the underlying image. As you've pointed out, the full list of images can be found here. As for the product version you should choose, everything starting with a semantic version, like 4.3.1
refers to our downstream product SUSE Manager, the upstream version relevant for this project is either uyuni-released
or uyuni-master
.
For @iAniket23 and anyone else to be able to get start quickly, here's an absolute minimum for setting up the two uyuni servers with sumaform to sync the data later between with the Inter Server Sync (installed separately).
terraform {
required_version = "1.0.10"
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
version = "0.6.3"
}
}
}
provider "libvirt" {
uri = "qemu:///system"
}
module "base" {
source = "./modules/base"
cc_username = ""
cc_password = ""
domain = "tf.local"
images = ["opensuse154o"]
use_avahi = true
}
module "server-one" {
source = "./modules/server"
base_configuration = module.base.configuration
product_version = "uyuni-released"
name = "server-one"
}
module "server-two" {
source = "./modules/server"
base_configuration = module.base.configuration
product_version = "uyuni-released"
name = "server-two"
}
If you set the use_avahi
option to true
as in the example above and the libvirt is configured correctly, your servers should be available under the following FQDN <name>.<domain>
from your configuration. In this case, it'll be server-one.tf.local
and server-two.tf.local
. You should also be able to ssh to your machines like this ssh root@server-one.tf.local
and ssh root@server-two.tf.local
. If you have problems with the latter, you probably need to specify the full path to your public key under ssh_key_path
field in the module "base" {...}
.
Hey @Sunnyweather1314, that look interesting indeed. How comfortable would you be working with Golang as well?
For those having passed the sumaform step, I'd suggest to try out the following to see if the synchronization works with your setup.
This should be sufficient to get started. Please post your questions here or refer to us on Gitter.
Hey @Sunnyweather1314, that look interesting indeed. How comfortable would you be working with Golang as well?
I have some understanding of this language, but not much. Since I am familiar with other coding languages such as C and JAVA, I can pick it up quickly.
Hey @avshiliaev i have gone through the requirements for the project and it sounds great also the tech stack matches my skill set as well i have been working for 3 years on to the same. If still a hand is needed we should connect maybe on slack or better on a meet.
@WordlessEcho yes, you're right! For that you can pick
uyuni-released
as the product and theopensuse154o
as the underlying image. As you've pointed out, the full list of images can be found here. As for the product version you should choose, everything starting with a semantic version, like4.3.1
refers to our downstream product SUSE Manager, the upstream version relevant for this project is eitheruyuni-released
oruyuni-master
.For @iAniket23 and anyone else to be able to get start quickly, here's an absolute minimum for setting up the two uyuni servers with sumaform to sync the data later between with the Inter Server Sync (installed separately).
terraform { required_version = "1.0.10" required_providers { libvirt = { source = "dmacvicar/libvirt" version = "0.6.3" } } } provider "libvirt" { uri = "qemu:///system" } module "base" { source = "./modules/base" cc_username = "" cc_password = "" domain = "tf.local" images = ["opensuse154o"] use_avahi = true } module "server-one" { source = "./modules/server" base_configuration = module.base.configuration product_version = "uyuni-released" name = "server-one" } module "server-two" { source = "./modules/server" base_configuration = module.base.configuration product_version = "uyuni-released" name = "server-two" }
If you set the
use_avahi
option totrue
as in the example above and the libvirt is configured correctly, your servers should be available under the following FQDN<name>.<domain>
from your configuration. In this case, it'll beserver-one.tf.local
andserver-two.tf.local
. You should also be able to ssh to your machines like thisssh root@server-one.tf.local
andssh root@server-two.tf.local
. If you have problems with the latter, you probably need to specify the full path to your public key underssh_key_path
field in themodule "base" {...}
.
Thanks @avshiliaev !
Hey @avshiliaev, this project looks very interesting and I want to contribute to this project, I am new to open source and would love to have support from a mentor like you. I am familiar with React and Redux state management library. Let me know if I can contribute to this project in any way possible. Thank you!
Hello! Is the project to create a graphical interface for Inter-Server Sync v2 still active? I noticed there's a label indicating it's "open." If it's still ongoing, I'd be interested in contributing and working on it. Thank you !
Project Title:
Provide a graphical interface for the Inter-Server Sync v2
Description:
If you have more than one SUSE Manager installation, you need to ensure that they stay aligned on content and permissions. Inter-Server Synchronization (ISS) allows you to connect two or more SUSE Manager Servers and keep them up-to-date, i.e. synchronize the key objects you create on one SUSE Manager Server with another.
The most basic setup of the SUSE Manager is a tree, where the Server is a root and the leafs are represented by the managed systems. The Inter-Server Sync tools allows to effectively connect those trees under another root.
You can find more detail here.
Right now the Inter-Server Sync is implemented as a command line interface. The next logical step would be to provide it with the GUI. For this purpose it should be transformed into a deamon tracking its own state, probably triggered at recurring time intervals and providing an API for the graphical interface. The GUI itself could be implemented with some sound practices in mind. we propose using React based on Typescript, with some state management addition to it like Redux.
Deliverable:
Mentor: @avshiliaev (co-mentor to be defined)
Skills:
Skill Level:
Medium
Project Size:
Large Sized Project (350 hours)
Get started: