新しいイメージがDockerレジストリにプッシュされたときに、tektonを使用してk8sクラスターに自動的にデプロイするにはどうすればよいですか?

ヴァシリー

私はタグで新しいイメージを構築するためにdockerhub設定しているlatestと、dev-<version>新しいタグとして<version>のGitHubに登場しています。これGetting Startedで、GKEクラスターを使用してTektonのチュートリアルに合格しましたが、レジストリで利用可能になったときに新しいイメージを自動的にデプロイするようにTektonを構成する方法がわかりません。

これが私のk8s設定です:

apiVersion: v1
kind: List
items:
  - apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: my-app-ingress
    spec:
      rules:
        - http:
            paths:
              - path: /
                pathType: Prefix
                backend:
                  service:
                    name: my-app-service
                    port:
                      number: 80
  - apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      ports:
        - port: 80
          targetPort: 8000
      selector:
        app: my-app
      type: LoadBalancer

  - apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app-local-deployment
      labels:
        app: my-app
        type: web
    spec:
      replicas: 2
      minReadySeconds: 15
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxUnavailable: 25%
          maxSurge: 1
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          imagePullSecrets:
            - name: regcred
          containers:
            - name: backend
              image: zuber93/my-app:dev-latest
              imagePullPolicy: IfNotPresent
              envFrom:
                - secretRef:
                    name: my-app-local-secret
              ports:
                - containerPort: 8000
              readinessProbe:
                httpGet:
                  path: /flvby
                  port: 8000
                initialDelaySeconds: 10
                periodSeconds: 5
            - name: celery
              image: zuber93/my-app:dev-latest
              imagePullPolicy: IfNotPresent
              workingDir: /code
              command: [ "/code/run/celery.sh" ]
              envFrom:
                - secretRef:
                    name: my-app-local-secret
            - name: redis
              image: redis:latest
              imagePullPolicy: IfNotPresent
MrSimpleMind

簡単な答えは次のとおりです。トリガーを使用して、dockerhub(https://docs.docker.com/docker-hub/webhooks/)からtektonにWebhookをセットアップします。

または(セキュリティと、クラスターがwwwから到達可能かどうかによって異なります)

dockerhubをポーリングし、新しい画像が検出されたらtektonをトリガーします。(これは、k8sでさまざまな方法、単純なインスタントサービス、スケジュールされたcronジョブなどで実行できます)

したがって、プッシュまたはプルを選択します。;)

「gitリポジトリから直接トリガーしてみませんか?」と質問します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ