6.3. Création et déploiement de fonctions sur le cluster


Au lieu de construire une fonction localement, vous pouvez construire une fonction directement sur le cluster. Lorsque vous utilisez ce flux de travail sur une machine de développement locale, vous ne devez travailler qu'avec le code source de la fonction. Ceci est utile, par exemple, lorsque vous ne pouvez pas installer d'outils de construction de fonctions sur le cluster, tels que docker ou podman.

6.3.1. Construire et déployer des fonctions sur le cluster

Vous pouvez utiliser le CLI de Knative (kn) pour initier la construction d'un projet de fonction et ensuite déployer la fonction directement sur le cluster. Pour construire un projet de fonction de cette manière, le code source de votre projet de fonction doit exister dans une branche du dépôt Git accessible à votre cluster.

Conditions préalables

  • Red Hat OpenShift Pipelines doit être installé sur votre cluster.
  • Vous avez installé l'OpenShift CLI (oc).
  • Vous avez installé le CLI Knative (kn).

Procédure

  1. Dans chaque espace de noms où vous souhaitez exécuter OpenShift Pipelines et déployer une fonction, vous devez créer les ressources suivantes :

    1. Créez la tâche s2i Tekton pour pouvoir utiliser Source-to-Image dans le pipeline :

      $ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.28.0/pipelines/resources/tekton/task/func-s2i/0.1/func-s2i.yaml
      Copy to Clipboard Toggle word wrap
    2. Créez la tâche kn func deploy Tekton pour pouvoir déployer la fonction dans le pipeline :

      $ oc apply -f https://raw.githubusercontent.com/openshift-knative/kn-plugin-func/serverless-1.28.0/pipelines/resources/tekton/task/func-deploy/0.1/func-deploy.yaml
      Copy to Clipboard Toggle word wrap
  2. Créer une fonction :

    $ kn func create <function_name> -l <runtime>
    Copy to Clipboard Toggle word wrap
  3. Après avoir créé un nouveau projet de fonction, vous devez ajouter le projet à un dépôt Git et vous assurer que le dépôt est disponible pour le cluster. Les informations relatives à ce dépôt Git sont utilisées pour mettre à jour le fichier func.yaml dans l'étape suivante.
  4. Mettez à jour la configuration dans le fichier func.yaml pour votre projet de fonction afin d'activer les constructions sur le cluster pour le dépôt Git :

    ...
    git:
      url: <git_repository_url> 
    1
    
      revision: main 
    2
    
      contextDir: <directory_path> 
    3
    
    ...
    Copy to Clipboard Toggle word wrap
    1
    Obligatoire. Indiquez le dépôt Git qui contient le code source de votre fonction.
    2
    Facultatif. Spécifiez la révision du dépôt Git à utiliser. Il peut s'agir d'une branche, d'une balise ou d'un commit.
    3
    Facultatif. Indiquez le chemin d'accès au répertoire de la fonction si celle-ci n'est pas située dans le dossier racine du référentiel Git.
  5. Mettez en œuvre la logique commerciale de votre fonction. Ensuite, utilisez Git pour livrer et pousser les changements.
  6. Déployez votre fonction :

    $ kn func deploy --remote
    Copy to Clipboard Toggle word wrap

    Si vous n'êtes pas connecté au registre de conteneurs référencé dans la configuration de votre fonction, vous êtes invité à fournir des informations d'identification pour le registre de conteneurs distant qui héberge l'image de la fonction :

    Exemple de résultats et d'invites

    🕕 Creating Pipeline resources
    Please provide credentials for image registry used by Pipeline.
    ? Server: https://index.docker.io/v1/
    ? Username: my-repo
    ? Password: ********
       Function deployed at URL: http://test-function.default.svc.cluster.local
    Copy to Clipboard Toggle word wrap

  7. Pour mettre à jour votre fonction, validez les nouvelles modifications à l'aide de Git, puis exécutez à nouveau la commande kn func deploy --remote.

6.3.2. Spécification de la révision des fonctions

Lors de la construction et du déploiement d'une fonction sur le cluster, vous devez spécifier l'emplacement du code de la fonction en indiquant le dépôt Git, la branche et le sous-répertoire dans le dépôt. Vous n'avez pas besoin de spécifier la branche si vous utilisez la branche main. De même, vous n'avez pas besoin de spécifier le sous-répertoire si votre fonction se trouve à la racine du référentiel. Vous pouvez spécifier ces paramètres dans le fichier de configuration func.yaml ou en utilisant des drapeaux avec la commande kn func deploy.

Conditions préalables

  • Red Hat OpenShift Pipelines doit être installé sur votre cluster.
  • Vous avez installé le CLI OpenShift (oc).
  • Vous avez installé le CLI Knative (kn).

Procédure

  • Déployez votre fonction :

    $ kn func deploy --remote \ 
    1
    
                     --git-url <repo-url> \ 
    2
    
                     [--git-branch <branch>] \ 
    3
    
                     [--git-dir <function-dir>] 
    4
    Copy to Clipboard Toggle word wrap
    1
    Avec l'option --remote, la construction s'exécute à distance.
    2
    Remplacez <repo-url> par l'URL du dépôt Git.
    3
    Remplacez <branch> par la branche, le tag ou le commit Git. Si vous utilisez le dernier commit sur la branche main, vous pouvez ignorer ce drapeau.
    4
    Remplacez <function-dir> par le répertoire contenant la fonction s'il est différent du répertoire racine du référentiel.

    Par exemple :

    $ kn func deploy --remote \
                     --git-url https://example.com/alice/myfunc.git \
                     --git-branch my-feature \
                     --git-dir functions/example-func/
    Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat