diff --git a/clusters/noble/apps/eclipse-che/README.md b/clusters/noble/apps/eclipse-che/README.md index b43a154..469b6ee 100644 --- a/clusters/noble/apps/eclipse-che/README.md +++ b/clusters/noble/apps/eclipse-che/README.md @@ -12,4 +12,18 @@ Three **Application** resources (sync waves **0 → 1 → 2**): **First sync:** Wave ordering applies to **Application** CRs under **noble-root**; if the operator starts before DevWorkspace is ready, **Refresh**/**Sync** the child apps once. See [Eclipse Che on Kubernetes](https://eclipse.dev/che/docs/stable/administration-guide/installing-che-on-kubernetes/). -**URL:** `kubectl get checluster eclipse-che -n eclipse-che -o jsonpath='{.status.cheURL}{"\n"}'` after **Phase** is **Active**. +**URL:** `kubectl get checluster eclipse-che -n eclipse-che -o jsonpath='{.status.cheURL}{"\n"}'` after **Phase** is **Active`. + +## Troubleshooting — “no available server” (or similar) + +**1. Eclipse Che / dashboard** + +- **DevWorkspace routing:** On Kubernetes you **must** set **`routing.clusterHostSuffix`** in **`DevWorkspaceOperatorConfig`** `devworkspace-operator-config` (`devworkspace/dwoc.yaml`). If it was missing, sync **`eclipse-che-devworkspace`** again, then **`eclipse-che-operator`** / **`eclipse-che-cluster`**. +- **Status:** `kubectl get checluster eclipse-che -n eclipse-che -o jsonpath='{.status.chePhase}{"\n"}'` → expect **`Active`**. +- **Pods:** `kubectl get pods -n eclipse-che` — wait for **Running** (Keycloak / gateway / server can take many minutes). +- **Ingress + DNS:** `kubectl get ingress -n eclipse-che` — host **`che.apps.noble.lab.pcenicni.dev`** must resolve to your Traefik LB (same as Grafana/Homepage). +- **TLS:** `kubectl describe certificate -n eclipse-che` (if present) — Let’s Encrypt must succeed before the browser trusts the URL. + +**2. Argo CD UI / repo** + +If the message appears in **Argo CD** (not Che), check in-cluster components: `kubectl get pods -n argocd`, `kubectl logs -n argocd deploy/argocd-repo-server --tail=80`, and that **Applications** use `destination.server: https://kubernetes.default.svc` (in-cluster), not a missing external API. diff --git a/clusters/noble/apps/eclipse-che/devworkspace/dwoc.yaml b/clusters/noble/apps/eclipse-che/devworkspace/dwoc.yaml new file mode 100644 index 0000000..df838f3 --- /dev/null +++ b/clusters/noble/apps/eclipse-che/devworkspace/dwoc.yaml @@ -0,0 +1,14 @@ +# Required on **Kubernetes** (OpenShift discovers this automatically). See DevWorkspaceOperatorConfig CRD: +# **routing.clusterHostSuffix** — hostname suffix for DevWorkspace routes. Without this, Che / workspaces +# often fail with errors like **no available server** or broken routing. +# Must be named **devworkspace-operator-config** in **devworkspace-controller**. +# Edit if your ingress base domain differs from the noble lab pattern. +apiVersion: controller.devfile.io/v1alpha1 +kind: DevWorkspaceOperatorConfig +metadata: + name: devworkspace-operator-config + namespace: devworkspace-controller +spec: + config: + routing: + clusterHostSuffix: apps.noble.lab.pcenicni.dev diff --git a/clusters/noble/apps/eclipse-che/devworkspace/kustomization.yaml b/clusters/noble/apps/eclipse-che/devworkspace/kustomization.yaml index 39762fb..fd1edb0 100644 --- a/clusters/noble/apps/eclipse-che/devworkspace/kustomization.yaml +++ b/clusters/noble/apps/eclipse-che/devworkspace/kustomization.yaml @@ -4,3 +4,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - https://raw.githubusercontent.com/devfile/devworkspace-operator/v0.33.0/deploy/deployment/kubernetes/combined.yaml + - dwoc.yaml