All Products
Search
Document Center

Container Service for Kubernetes:Pipeline CI berbasis event dengan EventBridge

Last Updated:Jun 21, 2026

Anda dapat membangun pipeline CI otomatis yang efisien, cepat, dan hemat biaya menggunakan EventBridge dan sistem alur kerja terdistribusi Argo Workflows. Pendekatan ini menyederhanakan dan mempercepat pengiriman aplikasi.

Prasyarat

Cara kerja

Pipeline CI otomatis berbasis event terdiri dari dua bagian:

  1. Commit kode ke repositori Git memicu event Git.

  2. Sistem CI menjalankan pengujian pra-build, membuat image Docker, dan mendorong image tersebut ke repository image.

Setelah image berhasil dibuat, Anda dapat menggunakan sistem continuous deployment (CD), seperti ACK One GitOps, untuk menyinkronkan tag image baru dengan kluster Kubernetes Anda.

Tutorial ini menggunakan EventBridge sebagai solusi berbasis event karena keunggulannya dalam ketersediaan, kemudahan penggunaan, keamanan, dan skalabilitas. Komponen CI menggunakan Argo Workflows, sebuah proyek lulusan Cloud Native Computing Foundation (CNCF). kluster alur kerja mengelola Argo Workflows secara penuh untuk meningkatkan stabilitas dan observabilitas. Kluster ini juga menyediakan kemampuan operasi dan maintenance (O&M) guna membantu Anda membangun pipeline CI yang lebih besar, lebih cepat, dan lebih hemat biaya.

  1. Pengguna melakukan commit kode ke repositori Git.

  2. Berdasarkan aturan event yang dikonfigurasi, EventBridge menangkap event Git dan meneruskannya ke kluster alur kerja ACK One, sehingga memicu alur kerja CI.

  3. Alur kerja CI pada kluster alur kerja ACK One membuat image Docker dan mendorongnya ke repository image. Anda kemudian dapat menggunakan GitOps untuk secara otomatis menyinkronkan perubahan image tersebut dengan kluster ACK.

Langkah 1: Siapkan lingkungan CI

  1. Buat kredensial akses ACR EE dan pasang volume NAS. Untuk informasi selengkapnya, lihat Langkah 1 dan Langkah 2 dalam Membangun Pipeline CI untuk proyek Golang menggunakan kluster alur kerja.

    Catatan

    Pastikan namespace-nya sama dengan namespace resource Workflow.

  2. Tutorial ini menggunakan proyek echo-server sebagai kode aplikasi contoh. Fork proyek tersebut ke akun GitHub Anda, lalu modifikasi WorkflowTemplate mengikuti petunjuk dalam Mengkloning repositori Git privat dalam Pipeline CI.

Langkah 2: Picu pipeline CI dengan EventBridge

  1. Buat event bus kustom.

  2. Integrasikan EventBridge dengan GitHub. Untuk informasi selengkapnya, lihat Integrasi GitHub.

  3. Secara opsional, konfigurasikan aturan event. Kode berikut menyediakan contoh konfigurasi. Untuk informasi selengkapnya tentang cara mengonfigurasi aturan event, lihat Mengelola aturan event.

    1. Pola event: Pengaturan berikut hanya memicu perubahan dari branch release-v1.

      {
          "source": [
              "github.event"
          ],
          "data": {
              "body": {
                  "ref": [
                      "refs/heads/release-v1"
                  ]
              }
          }
      }
    2. Konfigurasikan target event.

      1. Service Type: Pilih Container Service for Kubernetes.

      2. Cluster KubeConfig: Masukkan KubeConfig untuk mengakses kluster alur kerja melalui VPC.

      3. YAML Configuration: Pilih Template.

      4. Parameters: Tambahkan workflowName untuk mengonfigurasi ID event.

        {
          "workflowName": "$.id"
        }
      5. Template: Masukkan resource kustom (CR) Workflow CI. Contoh berikut hanya untuk referensi; buat CR sesuai dengan informasi aktual Anda.

        Penting

        Konfigurasi resource mengharuskan Anda secara eksplisit menetapkan name dan namespace. Anda tidak boleh menggunakan generateName. Jika resource termasuk dalam namespace default default, Anda juga harus mendeklarasikannya.

        apiVersion: argoproj.io/v1alpha1
        kind: Workflow
        metadata:
          name: ci-go-v1-eb-${workflowName}
          namespace: default
          labels:
            workflows.argoproj.io/workflow-template: ackone-ci
        spec:
          arguments:
            parameters:
            - name: repo_url
              value: https://github.com/ivan-cai/echo-server.git
            - name: repo_name
              value: echo-server
            - name: target_branch
              value: release-v1
            - name: container_image
              value: "YOUR-IMAGE-REGISTRY-ADDRESS"     # Ganti ini dengan alamat repository image kontainer Anda.
            - name: container_tag
              value: "v1.0.0"
            - name: dockerfile
              value: ./Dockerfile
            - name: enable_suffix_commitid
              value: "true"
            - name: enable_test
              value: "true"
          workflowTemplateRef:
            name: ci-go-v1
            clusterScope: true
      6. Network Access: Kami merekomendasikan penggunaan VPC. Pilih VPC, vSwitch, dan security group yang sesuai dengan kluster alur kerja.

  4. Berdasarkan konfigurasi di atas, ketika Anda memodifikasi dan melakukan commit kode ke branch release-v1 repositori GitHub Anda, tindakan ini akan memicu proses otomatis. Anda dapat memverifikasi hal ini dengan cara berikut.

    1. Lihat jejak event.

      1. Masuk ke Konsol EventBridge. Di panel navigasi sebelah kiri, klik Event Buses.

      2. Klik nama event bus Anda. Di panel navigasi sebelah kiri, klik Event trace.

      3. Di halaman Event trace, Anda dapat melihat jejak event.

        Dalam detail jejak event, ID event adalah b91299ae-355d-4f66-ac53-8d84e5d84b97, jenis event adalah eventbridge:Events:HTTPEvent, nama event bus adalah ci-test, dan sumber event adalah github.event. Di bagian Event Delivery, aturan ttt mengirimkan event ke target https://8.217.97.153:6443. Status pengiriman adalah Succeeded, latensi pengiriman adalah 59 ms, dan respons pengiriman adalah [200]NoMessage.

    2. Lihat topologi eksekusi Workflow yang baru dibuat.

      Anda dapat menemukan topologi ini di kluster alur kerja. Untuk informasi selengkapnya, lihat Mengaktifkan Argo Server untuk mengakses kluster alur kerja.

      Workflow bernama ci-go-v1-eb-3999580c-1ee4-4e10-a75b-af6e8eddccde. Topologi eksekusi grafik asiklik terarah (DAG)-nya menunjukkan langkah-langkah berikut: git-checkout-pr (Succeeded), run-test (Succeeded), dan build-push-image (Running).