L'exécution de l'utilitaire apic-configsync en tant que cronjob sur Red Hat OpenShift ou IBM Cloud Pak for Integration permet d'exécuter l'utilitaire sur une base temporelle, par exemple toutes les 10 minutes.
Avant de commencer
Vérifiez que les prérequis suivants sont satisfaits avant de tenter de configurer le travail cron:
- Vérifiez que vous disposez d'un outil permettant de copier l'image dans votre registre d'images.
Les exemples de cette rubrique utilisent skopeo pour copier l'image dans le registre cible, mais vous pouvez utiliser des commandes docker ou podman équivalentes à la place.
- Exposez le registre OpenShift avec
defaultRoute en exécutant la commande suivante:oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
Pour plus d'informations, consultez la section « Exposing the registry » (Exposition du registre) dans la documentation d' OpenShift. Il n'est pas nécessaire d'exécuter l'étape 5 (l'étape "podman login") dans les instructions.
- Définissez la variable d'environnement
REGISTRY_HOST sur le registre OpenShift en exécutant la commande suivante:REGISTRY_HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
- Définissez la variable d'environnement
APIC_PROJECT sur l'espace de nom (projet) dans lequel vous prévoyez d'exécuter le travail cron. Pour des performances optimales, le cronjob doit être exécuté dans le même environnement OpenShift que le cluster cible API Connect.
A propos de cette tâche
Vous pouvez configurer l'utilitaire apic-configsync pour qu'il s'exécute en tant que travail cron dans un déploiement API Connect s'exécutant sur OpenShift ou Cloud Pak for Integration. L'utilitaire apic-configsync doit s'exécuter aussi près que possible du cluster cible, de sorte que le travail cron doit être configuré pour s'exécuter dans le même environnement OpenShift que le cluster API Connect cible.
Procédure
- Téléchargez et décompressez le package API Connect Config Sync.
- Extraire l'image Config Sync du paquetage API Connect Config Sync extrait en exécutant la commande suivante:
tar xf ibm-apic-configsync-image.tar.gz
- Copiez l'image de synchronisation de configuration extraite dans le registre cible.
Par exemple, si vous utilisez skopeo, exécutez la commande suivante:
skopeo copy --dest-tls-verify=false --dest-registry-token=$(oc whoami -t) dir:./ibm-apic-configsync/ibm-apic-configsync-<version>/<tag> docker://$REGISTRY_HOST/$APIC_PROJECT/ibm-apic-configsync-<version>:<tag>
Remplacez <version> et <tag> par leurs valeurs réelles. Pour être sûr d'utiliser les valeurs les plus récentes, copiez-les depuis le fichier README situé à la racine du paquetage API Connect Config Sync extrait.
- Définissez les variables d'environnement pour les catalogues source et cible.
- Créez des secrets pour les détails de configuration de l'hôte pour le cluster source et le cluster cible.
- Créez un secret pour héberger les détails de configuration du cluster source dans l'espace de nom où vous prévoyez d'exécuter le travail cron:
oc create secret --namespace $APIC_PROJECT generic source-catalog-details \
--from-literal=SOURCE_MGMT_SERVER=$SOURCE_MGMT_SERVER \
--from-literal=SOURCE_ORG=$SOURCE_ORG \
--from-literal=SOURCE_REALM=$SOURCE_REALM \
--from-literal=SOURCE_ADMIN_USER=$SOURCE_ADMIN_USER \
--from-literal=SOURCE_ADMIN_PASSWORD=$SOURCE_ADMIN_PASSWORD \
--from-literal=SOURCE_CATALOG=$SOURCE_CATALOG \
--from-literal=SOURCE_TOOLKIT_CREDENTIALS_CLIENTID=$SOURCE_TOOLKIT_CREDENTIALS_CLIENTID \
--from-literal=SOURCE_TOOLKIT_CREDENTIALS_CLIENTSECRET=$SOURCE_TOOLKIT_CREDENTIALS_CLIENTSECRET
- Créez un secret pour héberger les détails de configuration du cluster cible dans l'espace de nom où vous prévoyez d'exécuter le travail cron:
oc create secret --namespace $APIC_PROJECT generic target-catalog-details \
--from-literal=TARGET_MGMT_SERVER=$TARGET_MGMT_SERVER \
--from-literal=TARGET_ORG=$TARGET_ORG \
--from-literal=TARGET_REALM=$TARGET_REALM \
--from-literal=TARGET_ADMIN_USER=$TARGET_ADMIN_USER \
--from-literal=TARGET_ADMIN_PASSWORD=$TARGET_ADMIN_PASSWORD \
--from-literal=TARGET_CATALOG=$TARGET_CATALOG \
--from-literal=TARGET_TOOLKIT_CREDENTIALS_CLIENTID=$TARGET_TOOLKIT_CREDENTIALS_CLIENTID \
--from-literal=TARGET_TOOLKIT_CREDENTIALS_CLIENTSECRET=$TARGET_TOOLKIT_CREDENTIALS_CLIENTSECRET
- Créez le travail cron:
- Ouvrir le fichier
helper_files/configsync-cronjob-ocp.yaml situé dans le paquetage API Connect Config Sync extrait.
- Modifiez la propriété
schedule pour spécifier la fréquence d'exécution du travail.
La période de planification minimale recommandée est 1 minute ; toutefois, un déploiement avec un grand nombre d'objets peut nécessiter plus de temps pour que le travail se termine. Etant donné que les travaux simultanés ne sont pas autorisés, le temps total entre le début de deux travaux consécutifs peut être plus long.
- Définissez
concurrencyPolicy sur Forbid.
Config Sync fonctionne sur une seule paire de catalogues source-cible à la fois. Si vous souhaitez synchroniser plusieurs paires de catalogues source-cible différentes, créez un travail cron distinct pour chaque paire.
- Dans la propriété
image , remplacez la variable <APIC_PROJECT> par l'espace de nom (projet) dans lequel vous exécuterez le travail cron.
- Créez la ressource cronjob dans le cluster en exécutant la commande suivante:
oc --namespace $APIC_PROJECT apply -f helper_files/configsync-cronjob-ocp.yaml