{"id":4336,"date":"2026-05-18T07:00:00","date_gmt":"2026-05-18T05:00:00","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=4336"},"modified":"2026-05-11T23:32:27","modified_gmt":"2026-05-11T21:32:27","slug":"proof-of-concept-abfrage-der-nicht-mehr-unterstuetzten-appstreams-ueber-die-red-hat-lifecycle-api","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/proof-of-concept-abfrage-der-nicht-mehr-unterstuetzten-appstreams-ueber-die-red-hat-lifecycle-api\/","title":{"rendered":"Proof of Concept: Abfrage der nicht mehr unterst\u00fctzten AppStreams \u00fcber die Red Hat Lifecycle API"},"content":{"rendered":"\n<p>Im Folgenden m\u00f6chte ich euch einen Proof of Concept (PoC) vorstellen, der aus einem Gespr\u00e4ch mit einem meiner Kunden entstanden ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AppStreams != AppStream<\/h2>\n\n\n\n<p>Es geht hier nicht um den offenen Standard <a href=\"https:\/\/de.wikipedia.org\/wiki\/AppStream\">AppStream<\/a>, sondern um die in RHEL 8 und RHEL 9 genutzten <a href=\"https:\/\/www.redhat.com\/en\/blog\/introduction-appstreams-and-modules-red-hat-enterprise-linux\">AppStreams<\/a>. Letztere sind ein inzwischen abgek\u00fcndigtes Konzept zur Bereitstellung verschiedener Paketversionen mit einem definierten Unterst\u00fctzungszeitraum innerhalb eines Major-Release. F\u00fcr weitere Informationen hierzu siehe den englischsprachigen Artikel: <a href=\"https:\/\/access.redhat.com\/support\/policy\/updates\/rhel-app-streams-life-cycle\">Red Hat Enterprise Linux Application Streams Life Cycle<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Das Risiko<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pakete aus AppStreams werden auf Servern installiert.<\/li>\n\n\n\n<li>Die Unterst\u00fctzung dieser AppStreams endet und niemand merkt es.<\/li>\n\n\n\n<li>Es wird Software in der Infrastruktur betrieben, die nie wieder ein Update erh\u00e4lt.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">User Story<\/h2>\n\n\n\n<p>Im IT-Betrieb m\u00f6chten wir die Lebenszyklusinformationen der AppStreams \u00fcber eine API abfragen, deren Unterst\u00fctzungszeitraum abgelaufen ist. Diese Liste m\u00f6chten wir mit den auf unseren Servern installierten AppStreams abgleichen, um die Installationen zu identifizieren, die aktualisiert oder migriert werden m\u00fcssen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L\u00f6sungsansatz<\/h2>\n\n\n\n<p>Die gew\u00fcnschten Informationen k\u00f6nnen \u00fcber die <a href=\"https:\/\/developers.redhat.com\/api-catalog\/api\/roadmap\">Red Hat Lightspeed for RHEL Planning API<\/a> abgerufen werden.<\/p>\n\n\n\n<p>Wer seine Systeme an der <a href=\"https:\/\/www.redhat.com\/en\/hybrid-cloud-console\">Hybrid Cloud Console<\/a> registriert hat, kann mit den abgelaufenen AppStreams gleichzeitig eine Liste der Systeme abrufen, auf denen diese installiert sind. Wer seine Systeme dort nicht registriert hat, kann die abgelaufenen AppStreams abfragen und die Informationen mit eigenen Mitteln weiterverarbeiten, um einen Abgleich durchzuf\u00fchren.<\/p>\n\n\n\n<p>Zur Demonstration habe ich einen Proof of Concept erstellt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GitHub: <a href=\"https:\/\/github.com\/Tronde\/query_out_of_support_appstreams\">https:\/\/github.com\/Tronde\/query_out_of_support_appstreams<\/a><\/li>\n\n\n\n<li>Codeberg.org: <a href=\"https:\/\/codeberg.org\/Tronde\/query_out_of_support_appstreams\">https:\/\/codeberg.org\/Tronde\/query_out_of_support_appstreams<\/a><\/li>\n<\/ul>\n\n\n\n<p>Die Repos beinhalten eine README.md mit der Dokumentation des Bash- und Python-Skripts sowie Links zu weiterf\u00fchrenden Informationen.<\/p>\n\n\n\n<p>Falls euch dieses Beispiel gef\u00e4llt, gebt ihm doch gerne einen Stern im jeweiligen Repository oder hinterlasst hier einen Kommentar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was gibt es dazu sonst noch wissenswertes?<\/h2>\n\n\n\n<p>Die in RHEL Lightspeed enthaltene Roadmap\/Lifecycle-Anwendung verh\u00e4lt sich f\u00fcr einige User unerwartet. Als installiert werden AppStreams angezeigt, die auf einem System aktiviert sind. Dies ist auch der Fall, wenn ein <em>Module Stream<\/em> lediglich aktiviert ist, aber kein RPM-Paket aus diesem Stream tats\u00e4chlich installiert wurde. Dies kann zu einer Fehlinterpretation f\u00fchren.<\/p>\n\n\n\n<p>Red Hat liegt ein <em>Feature Request<\/em> vor, um dieses Verhalten zu \u00e4ndern und nur AppStreams aufzuf\u00fchren, deren RPM-Pakete tats\u00e4chlich installiert wurden. Mir liegen keine Informationen vor, ob und wann Red Hat dies umsetzen wird.<\/p>\n\n\n\n<p>Des Weiteren liegt Red Hat die Anfrage vor, die Lightspeed Planning App als <a href=\"https:\/\/docs.redhat.com\/en\/documentation\/red_hat_satellite\/6.19\/html\/installing_satellite_server_in_a_connected_network_environment\/performing-additional-configuration-on-server_satellite#installing-and-configuring-red-hat-lightspeed-in-satellite\">on-premises App im Satellite<\/a> bereitzustellen. Auch hier kann ich leider nicht vorhersagen, ob und wann dies umgesetzt wird.<\/p>\n\n\n\n<p>Falls ihr euch daf\u00fcr interessiert, nehmt bitte Kontakt zum Red Hatter eures Vertrauens auf.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Folgenden m\u00f6chte ich euch einen Proof of Concept (PoC) vorstellen, der aus einem Gespr\u00e4ch mit einem meiner Kunden entstanden ist. AppStreams != AppStream Es geht hier nicht um den offenen Standard AppStream, sondern um die in RHEL 8 und RHEL 9 genutzten AppStreams. Letztere sind ein inzwischen abgek\u00fcndigtes Konzept zur Bereitstellung verschiedener Paketversionen mit<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/proof-of-concept-abfrage-der-nicht-mehr-unterstuetzten-appstreams-ueber-die-red-hat-lifecycle-api\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"standard","_metis_text_length":2988,"_post_count":0,"footnotes":""},"categories":[52],"tags":[930,928,929,931,932,927],"class_list":["post-4336","post","type-post","status-publish","format-standard","hentry","category-cloud-dienste","tag-api","tag-lifecycle","tag-planning","tag-poc","tag-proof-of-concept","tag-rhel-lightspeed"],"public_identification_id":"5eabcaee24ac4cecb45f93b94357777d","private_identification_id":"db67828a4388470b9491b3e32fe1393d","_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/4336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=4336"}],"version-history":[{"count":1,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/4336\/revisions"}],"predecessor-version":[{"id":4337,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/4336\/revisions\/4337"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=4336"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=4336"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=4336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}