Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 0 additions & 38 deletions packaging/greenboot/microshift-running-check-ai-model-serving.sh

This file was deleted.

37 changes: 0 additions & 37 deletions packaging/greenboot/microshift-running-check-cert-manager.sh

This file was deleted.

37 changes: 0 additions & 37 deletions packaging/greenboot/microshift-running-check-gateway-api.sh

This file was deleted.

37 changes: 0 additions & 37 deletions packaging/greenboot/microshift-running-check-multus.sh

This file was deleted.

37 changes: 0 additions & 37 deletions packaging/greenboot/microshift-running-check-olm.sh

This file was deleted.

13 changes: 3 additions & 10 deletions packaging/rpm/microshift.spec
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,6 @@ install -d -m755 %{buildroot}/%{_prefix}/lib/microshift/manifests.d/001-microshi
# Copy all the OLM manifests except the arch specific ones
install -p -m644 assets/optional/operator-lifecycle-manager/0000* %{buildroot}/%{_prefix}/lib/microshift/manifests.d/001-microshift-olm
install -p -m644 assets/optional/operator-lifecycle-manager/kustomization.yaml %{buildroot}/%{_prefix}/lib/microshift/manifests.d/001-microshift-olm
install -p -m755 packaging/greenboot/microshift-running-check-olm.sh %{buildroot}%{_sysconfdir}/greenboot/check/required.d/50_microshift_running_check_olm.sh

%ifarch %{arm} aarch64
cat assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml >> %{buildroot}/%{_prefix}/lib/microshift/manifests.d/001-microshift-olm/kustomization.yaml
Expand All @@ -437,7 +436,6 @@ install -p -m644 assets/optional/operator-lifecycle-manager/release-olm-{x86_64,
# multus
install -d -m755 %{buildroot}%{_sysconfdir}/microshift/config.d
install -p -m644 packaging/microshift/dropins/enable-multus.yaml %{buildroot}%{_sysconfdir}/microshift/config.d/00-enable-multus.yaml
install -p -m755 packaging/greenboot/microshift-running-check-multus.sh %{buildroot}%{_sysconfdir}/greenboot/check/required.d/41_microshift_running_check_multus.sh
install -p -m755 packaging/crio.conf.d/12-microshift-multus.conf %{buildroot}%{_sysconfdir}/crio/crio.conf.d/12-microshift-multus.conf

# multus-release-info
Expand Down Expand Up @@ -518,7 +516,6 @@ install -p -m755 packaging/tuned/microshift-tuned.py %{buildroot}%{_bindir}/micr
install -d -m755 %{buildroot}/%{_prefix}/lib/microshift/manifests.d/000-microshift-gateway-api
install -p -m644 assets/optional/gateway-api/0* %{buildroot}/%{_prefix}/lib/microshift/manifests.d/000-microshift-gateway-api
install -p -m644 assets/optional/gateway-api/kustomization.yaml %{buildroot}/%{_prefix}/lib/microshift/manifests.d/000-microshift-gateway-api
install -p -m755 packaging/greenboot/microshift-running-check-gateway-api.sh %{buildroot}%{_sysconfdir}/greenboot/check/required.d/41_microshift_running_check_gateway_api.sh

%ifarch %{arm} aarch64
cat assets/optional/gateway-api/kustomization.aarch64.yaml >> %{buildroot}/%{_prefix}/lib/microshift/manifests.d/000-microshift-gateway-api/kustomization.yaml
Expand Down Expand Up @@ -571,7 +568,6 @@ install -d -m755 %{buildroot}/%{_prefix}/lib/microshift/manifests.d/050-microshi
install -p -m644 assets/optional/ai-model-serving/runtimes/*.yaml %{buildroot}/%{_prefix}/lib/microshift/manifests.d/050-microshift-ai-model-serving-runtimes
rm -v %{buildroot}/%{_prefix}/lib/microshift/manifests.d/050-microshift-ai-model-serving-runtimes/kustomization.x86_64.yaml

install -p -m755 packaging/greenboot/microshift-running-check-ai-model-serving.sh %{buildroot}%{_sysconfdir}/greenboot/check/required.d/41_microshift_running_check_ai_model_serving.sh

cat assets/optional/ai-model-serving/runtimes/kustomization.x86_64.yaml >> %{buildroot}/%{_prefix}/lib/microshift/manifests.d/050-microshift-ai-model-serving-runtimes/kustomization.yaml
%endif
Expand Down Expand Up @@ -604,7 +600,6 @@ install -p -m644 assets/optional/cert-manager/manager/*.yaml %{buildroot}/%{_pre
install -d -m755 %{buildroot}/%{_prefix}/lib/microshift/manifests.d/060-microshift-cert-manager/rbac
install -p -m644 assets/optional/cert-manager/rbac/*.yaml %{buildroot}/%{_prefix}/lib/microshift/manifests.d/060-microshift-cert-manager/rbac
install -p -m644 assets/optional/cert-manager/kustomization.yaml %{buildroot}/%{_prefix}/lib/microshift/manifests.d/060-microshift-cert-manager
install -p -m755 packaging/greenboot/microshift-running-check-cert-manager.sh %{buildroot}%{_sysconfdir}/greenboot/check/required.d/60_microshift_running_check_cert_manager.sh

# cert-manager-release-info
mkdir -p -m755 %{buildroot}%{_datadir}/microshift/release
Expand Down Expand Up @@ -733,14 +728,12 @@ fi
%files olm
%dir %{_prefix}/lib/microshift/manifests.d/001-microshift-olm
%{_prefix}/lib/microshift/manifests.d/001-microshift-olm/*
%{_sysconfdir}/greenboot/check/required.d/50_microshift_running_check_olm.sh

%files olm-release-info
%{_datadir}/microshift/release/release-olm-{x86_64,aarch64}.json

%files multus
%{_sysconfdir}/microshift/config.d/00-enable-multus.yaml
%{_sysconfdir}/greenboot/check/required.d/41_microshift_running_check_multus.sh
%{_sysconfdir}/crio/crio.conf.d/12-microshift-multus.conf

%files multus-release-info
Expand Down Expand Up @@ -779,7 +772,6 @@ fi
%files gateway-api
%dir %{_prefix}/lib/microshift/manifests.d/000-microshift-gateway-api
%{_prefix}/lib/microshift/manifests.d/000-microshift-gateway-api/*
%{_sysconfdir}/greenboot/check/required.d/41_microshift_running_check_gateway_api.sh

%files gateway-api-release-info
%{_datadir}/microshift/release/release-gateway-api-{x86_64,aarch64}.json
Expand All @@ -791,7 +783,6 @@ fi
%dir %{_prefix}/lib/microshift/manifests.d/050-microshift-ai-model-serving-runtimes
%{_prefix}/lib/microshift/manifests.d/010-microshift-ai-model-serving-kserve/*
%{_prefix}/lib/microshift/manifests.d/050-microshift-ai-model-serving-runtimes/*
%{_sysconfdir}/greenboot/check/required.d/41_microshift_running_check_ai_model_serving.sh
%endif

%files ai-model-serving-release-info
Expand All @@ -808,7 +799,6 @@ fi
%files cert-manager
%dir %{_prefix}/lib/microshift/manifests.d/060-microshift-cert-manager
%{_prefix}/lib/microshift/manifests.d/060-microshift-cert-manager/*
%{_sysconfdir}/greenboot/check/required.d/60_microshift_running_check_cert_manager.sh

%files cert-manager-release-info
%{_datadir}/microshift/release/release-cert-manager-{x86_64,aarch64}.json
Expand All @@ -817,6 +807,9 @@ fi
# Use Git command to generate the log and replace the VERSION string
# LANG=C git log --date="format:%a %b %d %Y" --pretty="tformat:* %cd %an <%ae> VERSION%n- %s%n" packaging/rpm/microshift.spec
%changelog
* Mon Aug 11 2025 Patryk Matuszak <[email protected]> 4.20.0
- Remove healthcheck scripts: optional MicroShift workloads are now part of healthcheck command

* Wed Aug 06 2025 Evgeny Slutsky <[email protected]> 4.20.0
- Remove firewalld service override configuration to avoid flushing of iptables

Expand Down
4 changes: 4 additions & 0 deletions pkg/healthcheck/healthcheck.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ func MicroShiftHealthcheck(ctx context.Context, timeout time.Duration) error {
return err
}

if err := fillOptionalMicroShiftWorkloads(workloads); err != nil {
return err
}

if err := waitForWorkloads(ctx, timeout, workloads); err != nil {
return err
}
Expand Down
7 changes: 7 additions & 0 deletions pkg/healthcheck/microshift_core_workloads.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,13 @@ func fillOptionalWorkloadsIfApplicable(cfg *config.Config, workloads map[string]
Deployments: comps,
}
}

if cfg.Network.Multus.IsEnabled() {
workloads["openshift-multus"] = NamespaceWorkloads{
DaemonSets: []string{"multus", "dhcp-daemon"},
}
}

return nil
}

Expand Down
51 changes: 51 additions & 0 deletions pkg/healthcheck/microshift_optional_workloads.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package healthcheck

import (
"github.com/openshift/microshift/pkg/util"
"k8s.io/klog/v2"
)

type optionalWorkloads struct {
Namespace string
Workloads NamespaceWorkloads
}

// optionalWorkloadPaths defines the mapping of manifest filepath to the namespace and workloads.
var optionalWorkloadPaths = map[string]optionalWorkloads{
"/usr/lib/microshift/manifests.d/001-microshift-olm": {
Namespace: "openshift-operator-lifecycle-manager",
Workloads: NamespaceWorkloads{Deployments: []string{"olm-operator", "catalog-operator"}},
},

"/usr/lib/microshift/manifests.d/000-microshift-gateway-api": {
Namespace: "openshift-gateway-api",
Workloads: NamespaceWorkloads{
Deployments: []string{"servicemesh-operator3", "istiod-openshift-gateway-api"},
},
},

"/usr/lib/microshift/manifests.d/060-microshift-cert-manager": {
Namespace: "cert-manager",
Workloads: NamespaceWorkloads{Deployments: []string{"cert-manager", "cert-manager-webhook", "cert-manager-cainjector"}},
},

"/usr/lib/microshift/manifests.d/010-microshift-ai-model-serving-kserve": {
Namespace: "redhat-ods-applications",
Workloads: NamespaceWorkloads{Deployments: []string{"kserve-controller-manager"}},
},
}

// fillOptionalMicroShiftWorkloads assembles list of optional MicroShift workloads
// existing on the filesystem as manifests (in comparison to Multus which
// manifests are part of MicroShift binary).
func fillOptionalMicroShiftWorkloads(workloadsToCheck map[string]NamespaceWorkloads) error {
for path, ow := range optionalWorkloadPaths {
if exists, err := util.PathExists(path); err != nil {
return err
} else if exists {
klog.Infof("Optional component path exists: %s - expecting %v in namespace %q", path, ow.Workloads.String(), ow.Namespace)
workloadsToCheck[ow.Namespace] = ow.Workloads
}
}
return nil
}
20 changes: 20 additions & 0 deletions pkg/healthcheck/workloads.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,26 @@ type NamespaceWorkloads struct {
StatefulSets []string `json:"statefulsets"`
}

func (nw NamespaceWorkloads) String() string {
var parts []string

if len(nw.Deployments) > 0 {
parts = append(parts, fmt.Sprintf("Deployments: [%s]", strings.Join(nw.Deployments, ", ")))
}
if len(nw.DaemonSets) > 0 {
parts = append(parts, fmt.Sprintf("DaemonSets: [%s]", strings.Join(nw.DaemonSets, ", ")))
}
if len(nw.StatefulSets) > 0 {
parts = append(parts, fmt.Sprintf("StatefulSets: [%s]", strings.Join(nw.StatefulSets, ", ")))
}

if len(parts) == 0 {
return ""
}

return strings.Join(parts, ", ")
}

func waitForWorkloads(ctx context.Context, timeout time.Duration, workloads map[string]NamespaceWorkloads) error {
kubeconfigPath := filepath.Join(config.DataDir, "resources", string(config.KubeAdmin), "kubeconfig")
restConfig, err := clientcmd.BuildConfigFromFlags("", kubeconfigPath)
Expand Down