Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRAFT: openSUSE Leap 16.0 (Alpha) #9491

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

juliogonzalez
Copy link
Member

@juliogonzalez juliogonzalez commented Nov 18, 2024

What does this PR change?

WIP: openSUSE Leap 16.0 (Alpha)

To be continued tomorrow. As of today, this is the state:

Because of the /etc/os-release content, our bootstrap salt states fail to correctly detect Leap 16.0 (in fact because the salt grains doesn't show this as openSUSE):

localhost:~ # cat /etc/os-release 
NAME="Leap"
VERSION="16.0Alpha"
ID="leap"
ID_LIKE="suse opensuse"
VERSION_ID="16.0"
PRETTY_NAME="Leap 16.0Alpha"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:16.0"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"

So I faked the fix Lubos will do for os-release:

NAME="openSUSE Leap"
VERSION="16.0Alpha"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="16.0"
PRETTY_NAME="openSUSE Leap 16.0Alpha"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:16.0"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"
  • Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
  • Onboarding (salt minion from UI, salt minion from bootstrap scritp, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator)
  • Package management (install, remove, update...) Works, even reboot requirement detection
  • Patching (if patch information is available, could require writing some code to parse it, but IIRC we have support for Ubuntu already) (not possible for now, no patches)
  • Applying any basic salt state (including a formula) Locale formula to adjust TZ to UTC,a nd apply highstate
  • Salt remote commands
  • Bonus point: Java part for product identification. I did not do any enablements, as I guess it's still not clear what we'll do. But I added the new SLFO GPG key for package identification
  • Bonus point: sumaform enablement (https://github.com/uyuni-project/sumaform) Not for now, it's way too early
  • Bonus point: Documentation (https://github.com/uyuni-project/uyuni-docs) DRAFT: Document openSUSE Leap 16.0 uyuni-docs#3468
  • Bonus point: testsuite enablement (https://github.com/uyuni-project/uyuni/tree/master/testsuite) Not for now, it's way too early

GUI diff

No difference. Just a new OS

  • DONE

Documentation

Test coverage

ℹ️ If a major new functionality is added, it is strongly recommended that tests for the new functionality are added to the Cucumber test suite

  • No tests: Being this a hack week project and Leap 16.0 still an Alpha, I will not add tests for now.

  • DONE

Links

https://hackweek.opensuse.org/24/projects/testing-gnu-slash-linux-distributions-on-uyuni

  • DONE

Changelogs

Make sure the changelogs entries you are adding are compliant with https://github.com/uyuni-project/uyuni/wiki/Contributing#changelogs and https://github.com/uyuni-project/uyuni/wiki/Contributing#uyuni-projectuyuni-repository

If you don't need a changelog check, please mark this checkbox:

  • No changelog needed

If you uncheck the checkbox after the PR is created, you will need to re-run changelog_test (see below)

Re-run a test

If you need to re-run a test, please mark the related checkbox, it will be unchecked automatically once it has re-run:

  • Re-run test "changelog_test"
  • Re-run test "backend_unittests_pgsql"
  • Re-run test "java_pgsql_tests"
  • Re-run test "schema_migration_test_pgsql"
  • Re-run test "susemanager_unittests"
  • Re-run test "javascript_lint"
  • Re-run test "spacecmd_unittests"

Before you merge

Check How to branch and merge properly!

Copy link
Contributor

👋 Hello! Thanks for contributing to our project.
Acceptance tests will take some time (aprox. 1h), please be patient ☕
You can see the progress at the end of this page and at https://github.com/uyuni-project/uyuni/pull/9491/checks
Once tests finish, if they fail, you can check 👀 the cucumber report. See the link at the output of the action.
You can also check the artifacts section, which contains the logs at https://github.com/uyuni-project/uyuni/pull/9491/checks.

If you are unsure the failing tests are related to your code, you can check the "reference jobs". These are jobs that run on a scheduled time with code from master. If they fail for the same reason as your build, it means the tests or the infrastructure are broken. If they do not fail, but yours do, it means it is related to your code.

Reference tests:

KNOWN ISSUES

Sometimes the build can fail when pulling new jar files from download.opensuse.org . This is a known limitation. Given this happens rarely, when it does, all you need to do is rerun the test. Sorry for the inconvenience.

For more tips on troubleshooting, see the troubleshooting guide.

Happy hacking!
⚠️ You should not merge if acceptance tests fail to pass. ⚠️

Copy link
Contributor

Suggested tests to cover this Pull Request
  • sle_ssh_minion
  • min_salt_migration
  • min_salt_install_with_staging
  • proxy_register_as_minion_with_script
  • min_deblike_salt
  • allcli_overview_systems_details
  • min_salt_formulas
  • min_project_lotus
  • srv_docker_cve_audit
  • minssh_move_from_and_to_proxy
  • min_salt_install_package
  • min_deblike_remote_command
  • srv_monitoring
  • srv_datepicker
  • min_salt_openscap_audit
  • minkvm_guests
  • min_monitoring
  • min_recurring_action
  • min_salt_minion_details
  • srv_restart
  • min_rhlike_openscap_audit
  • srv_distro_cobbler
  • srv_custom_system_info
  • min_salt_minions_page
  • min_deblike_salt_install_package
  • min_empty_system_profiles
  • min_cve_id_new_syntax
  • min_ssh_tunnel
  • allcli_sanity
  • min_move_from_and_to_proxy
  • min_ansible_control_node
  • srv_power_management_redfish
  • min_bootstrap_script
  • min_rhlike_monitoring
  • srv_menu
  • allcli_software_channels_dependencies
  • min_cve_audit
  • min_salt_mgrcompat_state
  • min_config_state_channel
  • srv_reportdb
  • buildhost_bootstrap
  • minssh_salt_install_package
  • allcli_reboot
  • minssh_bootstrap_api
  • proxy_retail_pxeboot_and_mass_import
  • min_rhlike_salt_install_package_and_patch
  • min_deblike_monitoring
  • min_deblike_salt_install_with_staging
  • min_check_patches_install
  • srv_user_configuration_salt_states
  • srv_scc_user_credentials
  • srv_cobbler_distro
  • min_rhlike_salt
  • min_salt_lock_packages
  • srv_rename_hostname
  • proxy_branch_network
  • min_bootstrap_api
  • srv_group_union_intersection
  • minssh_ansible_control_node
  • srv_virtual_host_manager
  • allcli_action_chain
  • min_salt_formulas_advanced
  • min_config_state_channel_api
  • srv_cobbler_profile
  • srv_power_management
  • min_salt_user_states
  • allcli_config_channel
  • min_virthost
  • min_deblike_openscap_audit
  • srv_power_management_api
  • min_action_chain
  • min_config_state_channel_subscriptions
  • buildhost_docker_auth_registry
  • min_timezone
  • min_bootstrap_negative
  • buildhost_osimage_build_image
  • srv_manage_activationkey
  • srv_advanced_search
  • min_activationkey
  • allcli_software_channels
  • min_bootstrap_reactivation
  • min_rhlike_remote_command
  • srv_maintenance_windows
  • min_salt_pkgset_beacon
  • proxy_as_pod_basic_tests
  • buildhost_docker_build_image
  • sle_minion
  • min_deblike_ssh
  • min_salt_software_states
  • min_rhlike_ssh
  • minssh_action_chain
  • min_custom_pkg_download_endpoint
  • allcli_system_group
  • proxy_cobbler_pxeboot
  • srv_manage_channels_page
  • min_bootstrap_ssh_key
  • min_retracted_patches
  • min_change_software_channel
  • proxy_container
  • proxy_container_branch_network
  • srv_handle_software_channels_with_ISS_v2
  • minssh_tunnel
  • proxy_traditional_cobbler_pxeboot
  • proxy_container_cobbler_pxeboot
  • srv_push_package
  • srv_task_status_engine
  • srv_errata_api
  • proxy_container_retail_pxeboot
  • proxy_container_retail_mass_import
  • srv_dist_channel_mapping

@@ -0,0 +1 @@
insert into rhnPackageKey (id, key_id, key_type_id, provider_id) (select sequence_nextval('rhn_pkey_id_seq'), 'fec28eaf09d9ea69', lookup_package_key_type('gpg'), lookup_package_provider('SUSE LLC') from dual where not exists (select 1 from rhnPackageKey where key_id = 'fec28eaf09d9ea69'));
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note, this is probably going to be needed to support SLE Micro 6.1, so if we add support before merging this PR, this needs to be done on master, and this will need to be removed from this PR.

@@ -1512,6 +1512,26 @@
"PKGLIST": PKGLIST15_SALT + PKGLIST15_X86_ARM,
"DEST": DOCUMENT_ROOT + "/pub/repositories/opensuse/15/6/bootstrap/",
},
"openSUSE-Leap-16.0-x86_64-uyuni": {
"BASECHANNEL": "opensuse_leap16_0-x86_64",
"PKGLIST": PKGLISTMICRO_BUNDLE_ONLY,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am tempted to create a group called PKGLIST_BUNDLE_ONLY... any new OS will only support bundle, regardless of being Micro or not... right?

Co-authored-by: Marina Latini <[email protected]>
gpgkey_url = file:///usr/lib/rpm/gnupg/keys/gpg-pubkey-29b700a4-62b07e22.asc
gpgkey_id = 29B700A4
gpgkey_fingerprint = AD48 5664 E901 B867 051A B15F 35A2 F86E 29B7 00A4
repo_url = https://cdn.opensuse.org/distribution/leap/16.0/repo/oss/
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While this repo was available at the instance as both download.opensuse.org and cdn.opensuse.org, it seems cdn.opensuse.org is the future: https://news.opensuse.org/2023/07/31/try-out-cdn-with-opensuse-repos/

This change is already part of openSUSE Leap Micro 6.0, so expect it to be part of openSUSE Leap 16.0

gpgkey_url = %(_uyuni_gpgkey_url)s
gpgkey_id = %(_uyuni_gpgkey_id)s
gpgkey_fingerprint = %(_uyuni_gpgkey_fingerprint)s
repo_url = https://cdn.opensuse.org/repositories/systemsmanagement:/Uyuni:/Stable:/SLMicro6-Uyuni-Client-Tools/SL-Micro6/
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Work for now, but we need to decide if we want SLMicro6 or other client tools. Should be related to what we want to do for SUSE Linux 16 as well.

# This is expected. openSUSE Leap 16.0 client tools are valid for all openSUSE Leap 16.X releases
[opensuse_leap16_0-uyuni-client]
name = Uyuni Client Tools for %(base_channel_name)s
archs = x86_64, aarch64, s390x, ppc6le
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, for now they ISOs for all of them: https://get.opensuse.org/leap/16.0/

gpgkey_url = %(_uyuni_gpgkey_url)s
gpgkey_id = %(_uyuni_gpgkey_id)s
gpgkey_fingerprint = %(_uyuni_gpgkey_fingerprint)s
repo_url = https://cdn.opensuse.org/repositories/systemsmanagement:/Uyuni:/Master:/SLMicro6-Uyuni-Client-Tools/SL-Micro6/
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as before

@juliogonzalez juliogonzalez changed the title WIP: openSUSE Leap 16.0 (Alpha) DRAFT: openSUSE Leap 16.0 (Alpha) Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants