Red Hat OpenShift
Projets, workloads, Routes, BuildConfigs, Builds et ImageStreams OpenShift 4, avec détection des API du cluster.
Intégration maintenue par Orkyvo pour Red Hat OpenShift Container Platform 4, OKD et les services managés (ROSA, ARO, OpenShift Dedicated). Elle utilise les API propres à OpenShift : projets, Routes, BuildConfigs et Builds (démarrage, statut, journaux), ImageStreams et DeploymentConfigs, en plus des workloads Kubernetes. Les API disponibles sont détectées sur le cluster : une opération incompatible est signalée clairement. Déclencheurs : build démarré, réussi ou en échec ; changement de statut d'un workload. Elle partage avec le nœud Kubernetes ses composants de connexion et de surveillance, mais n'en est pas une copie : utilisez le nœud Kubernetes pour un cluster Kubernetes standard.
Opérations
| Opération | Type | Description |
|---|---|---|
| Détecter les API disponibles | action | Liste les API OpenShift présentes sur le cluster et les opérations de ce nœud qui y sont incompatibles. |
| Lister les projets | action | Projets OpenShift accessibles au compte de service. |
| Lister les workloads | action | Deployments, DeploymentConfigs et StatefulSets d'un projet, avec leur disponibilité. Une API absente est signalée dans « unavailable ». |
| Obtenir un workload | action | Lit un Deployment, une DeploymentConfig ou un StatefulSet. |
| Lister les routes | action | Routes (route.openshift.io) d'un projet, avec URL publique et admission. |
| Obtenir une route | action | Lit une route : hôte, chemin, service cible, terminaison TLS. |
| Lister les BuildConfigs | action | BuildConfigs d'un projet : stratégie, source Git, image produite. |
| Lister les builds | action | Builds récents d'un projet ou d'une BuildConfig, du plus récent au plus ancien. |
| Démarrer un buildeffet externe : demande une confirmation avant une exécution manuelle | action | Démarre un build depuis une BuildConfig (BuildRequest). Une nouvelle tentative de la même étape retrouve le build déjà démarré ; après une réponse réseau perdue, le résultat est signalé incertain. |
| Obtenir le statut d'un build | action | Phase, résultat, motif d'échec, durée et image produite. |
| Lire les journaux d'un build | action | Dernières lignes du journal de build, taille limitée (1 Mo au plus). |
| Lister les ImageStreams | action | ImageStreams d'un projet et leurs étiquettes. |
| Obtenir une ImageStream | action | Étiquettes et références d'images (digest) d'une ImageStream. |
| Build démarré, réussi ou en échec | déclencheur | Démarre le workflow quand un build démarre, réussit ou échoue (un événement par changement de résultat). |
| Changement de statut d'un workload | déclencheur | Démarre le workflow quand la disponibilité d'un Deployment ou d'une DeploymentConfig change (healthy, progressing, degraded). |
Connexion
Jeton d'un compte de service dédié, lié à un rôle limité au projet (exemples dans la documentation). « Tester la connexion » détecte les API OpenShift du cluster et vérifie les droits, sans rien modifier.
Documentation
Red Hat OpenShift
Intégration maintenue par Orkyvo (non certifiée par Red Hat) pour OpenShift Container Platform 4.x, OKD 4 et les offres managées (ROSA, ARO, OpenShift Dedicated).
Ce nœud n'est pas le nœud Kubernetes renommé : il utilise les API propres à OpenShift (project.openshift.io, route.openshift.io, build.openshift.io, image.openshift.io, apps.openshift.io, user.openshift.io) et partage seulement avec le nœud Kubernetes ses composants communs (connexion, pagination, contrôle des droits, surveillance par watch). Pour un cluster Kubernetes standard, utilisez le nœud Kubernetes.
Connexion
| Champ | Description |
|---|---|
| URL de l'API du cluster | https://api.<cluster>.<domaine>:6443 (oc whoami --show-server). |
| Jeton du compte de service | oc create token orkyvo -n boutique --duration=8760h. Chiffré, masqué partout. Évitez les jetons d'utilisateur (oc whoami -t), de courte durée. |
| Autorité de certification | PEM de l'autorité de l'API (souvent interne sur OpenShift sur site). La vérification TLS reste active. |
| Projet par défaut | Projet utilisé quand un bloc n'en précise pas. |
Cluster privé : un administrateur de la plateforme autorise la plage et le port de l'API pour cette organisation et cette connexion (Administration → Réseaux privés).
« Tester la connexion » lit /version, détecte les API OpenShift (GET /apis), identifie le compte (users/~) et vérifie les droits utilisés (SelfSubjectAccessReview, lecture seule). Les API absentes sont listées avec les opérations qui leur sont incompatibles ; l'action « Détecter les API disponibles » fournit le même diagnostic dans un workflow.
Droits limités au projet (sans cluster-admin)
apiVersion: v1kind: ServiceAccountmetadata: { name: orkyvo, namespace: boutique }---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata: { name: orkyvo, namespace: boutique }rules:- apiGroups: [""]resources: [pods, events]verbs: [get, list, watch]- apiGroups: [apps]resources: [deployments, statefulsets]verbs: [get, list, watch]- apiGroups: [apps.openshift.io]resources: [deploymentconfigs]verbs: [get, list, watch]- apiGroups: [route.openshift.io]resources: [routes]verbs: [get, list]- apiGroups: [image.openshift.io]resources: [imagestreams]verbs: [get, list]- apiGroups: [build.openshift.io]resources: [buildconfigs, builds, builds/log]verbs: [get, list, watch]# Écriture : seulement pour « Démarrer un build »- apiGroups: [build.openshift.io]resources: [buildconfigs/instantiate]verbs: [create]---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata: { name: orkyvo, namespace: boutique }subjects: [{ kind: ServiceAccount, name: orkyvo, namespace: boutique }]roleRef: { kind: Role, name: orkyvo, apiGroup: rbac.authorization.k8s.io }
Le rôle prédéfini view du projet suffit pour la lecture (oc policy add-role-to-user view -z orkyvo -n boutique). Lister tous les projets ne renvoie que ceux auxquels le compte a accès.
Actions
| Action | API |
|---|---|
| Détecter les API disponibles | GET /apis |
| Lister les projets | project.openshift.io/v1/projects |
| Lister / obtenir les workloads | apps/v1 Deployments et StatefulSets, apps.openshift.io/v1 DeploymentConfigs (absente : signalée dans unavailable) |
| Lister / obtenir les routes | route.openshift.io/v1/routes (URL, TLS, admission) |
| Lister les BuildConfigs | build.openshift.io/v1/buildconfigs |
| Lister les builds | build.openshift.io/v1/builds (filtre openshift.io/build-config.name) |
| Démarrer un build | POST …/buildconfigs/{nom}/instantiate (BuildRequest, commit et variables facultatifs) |
| Statut d'un build | …/builds/{nom} : phase, résultat, motif, durée, image produite |
| Journaux d'un build | …/builds/{nom}/log : tailLines ≤ 5 000, limitBytes ≤ 1 Mo |
| Lister / obtenir les ImageStreams | image.openshift.io/v1/imagestreams (étiquettes, digests) |
Démarrage de build sans doublon : la clé de l'étape est inscrite dans triggeredBy du build ; une nouvelle tentative retrouve ce build (existing: true) au lieu d'en démarrer un second. Une réponse réseau perdue au moment du démarrage n'est jamais relancée automatiquement (« Résultat incertain »).
Déclencheurs (fenêtres de watch)
Même mécanisme explicite que le nœud Kubernetes : watch borné depuis le resourceVersion conservé en base, reprise après redémarrage, resynchronisation sur 410 Gone, dédoublonnage.
| Déclencheur | Émis quand |
|---|---|
| Build démarré, réussi ou en échec | Le résultat du build change : démarré (New / Pending / Running), réussi (Complete), en échec (Failed, Error, Cancelled). Un seul événement par résultat et par build. |
| Changement de statut d'un workload | Réplicas prêts / disponibles ou condition Available d'un Deployment ou d'une DeploymentConfig. |
Erreurs
401 jeton refusé ou expiré · 403 droit manquant (rôle à compléter) · 404 ressource introuvable, ou API OpenShift absente (« opération incompatible ») · 409 conflit · 410 version expirée (resynchronisation) · 429 / 5xx temporaires.
Limites
- Tests automatisés sur API simulées ; test réel recommandé sur OpenShift Local (CRC) ou un cluster de recette : voir
docs/INTEGRATIONS.md.