Kubernetesパイプライン

Updated 2 years ago by Admin

Droneクラウドではkubernetesパイプラインが無効になっていることに注意してください。この機能は、セルフホスティングの場合にのみ使用できます。

このチュートリアルは、単純なKubernetesパイプラインを作成して実行するのに役立ちます。詳細な使用方法については、パイプラインのドキュメントを参照してください。

ステップ1:認証する

まず、ブラウザでDroneサーバのURLに移動します。まだ認証されていない場合、DroneはログインするためにGitHubにリダイレクトします。

ログイン後、Droneダッシュボードにリダイレクトされます。Droneを初めて使用する場合、DroneがリポジトリリストをGitHubと同期している間、ダッシュボードは数秒間空になります。


ステップ2:リポジトリを有効にする

次に、リポジトリを検索して、[有効にする]ボタンをクリックします。有効化ボタンをクリックすると、リポジトリにウェブフックが追加され、コードをプッシュするたびにDroneに通知されます。有効にするには、リポジトリに対する管理者権限が必要であることに注意してください。


ステップ3:パイプラインを構成する

次に、gitリポジトリのルートに.drone.ymlファイルを作成してパイプラインを構成する必要があります。このファイルでは、ウェブフックを受信するたびに実行される一連のステップを定義します。

kind: pipeline
type: kubernetes
name: default

steps:
- name: greeting
image: alpine
commands:
- echo hello
- echo world

この例で使用されている変数の概要は次のとおりです。

  • kind
    kind属性は、オブジェクトの種類を定義します。この例では、パイプラインオブジェクトを定義します。他の種類のオブジェクトは、シークレットオブジェクトと署名オブジェクトです。

  • type
    type属性は、パイプラインのタイプを定義します。この例では、各パイプラインステップがポッド内で実行されるKubernetesパイプラインを定義します。Droneは、さまざまなタイプのパイプライン実行環境をサポートしています。

  • name
    name属性は、パイプラインの名前を定義します。プロジェクトに1つまたは複数のパイプラインを定義できます。

  • steps
    stepsセクションは、シリアルに実行されるパイプラインステップの配列を定義します。パイプラインのいずれかのステップが失敗した場合、パイプラインはすぐに終了します。
    • name
      name属性は、パイプラインステップの名前を定義します。
    • image
      image属性は、シェルコマンドが実行されるコンテナイメージを定義します。プライベートレジストリを含む任意のレジストリから、パイプライン内の任意のイメージを使用できます。
    • commands
      commands属性は、エントリポイントとしてコンテナ内で実行されるシェルコマンドのリストを定義します。コマンドがゼロ以外の終了コードを返す場合、パイプラインステップは失敗します。

構成オプションの完全なリストについては、パイプラインのドキュメントを参照してください。

その他の例
  • パイプラインに複数のステップを追加できます。
    kind: pipeline
    type: kubernetes
    name: greeting

    steps:
    - name: en
    image: alpine
    commands:
    - echo hello world

    - name: fr
    image: alpine
    commands:
    - echo bonjour monde
  • ブランチまたはウェブフックイベントに基づいてパイプラインステップを制限できます。
    kind: pipeline
    type: kubernetes
    name: greeting

    steps:
    - name: en
    image: alpine
    commands:
    - echo hello world

    - name: fr
    image: alpine
    commands:
    - echo bonjour monde
    when:
    branch:
    - develop
  • 複数のパイプラインを定義することもできます。
    kind: pipeline
    type: kubernetes
    name: en

    steps:
    - name: greeting
    image: alpine
    commands:
    - echo hello world

    ---
    kind: pipeline
    type: kubernetes
    name: fr

    steps:
    - name: greeting
    image: alpine
    commands:
    - echo bonjour monde
  • 任意のコンテナレジストリで任意のイメージを使用できます。
    kind: pipeline
    type: kubernetes
    name: default

    steps:
    - name: test
    image: golang:1.13
    commands:
    - go build
    - go test -v

ステップ4:パイプラインを実行する

最後のステップは、 .drone.ymlをリポジトリにコミットし、変更をプッシュすることです。コードをプッシュすると、GitHubはウェブフックをDroneに送信し、Droneがパイプラインを実行します。


How did we do?