actions / actions-runner-controller

Kubernetes controller for GitHub Actions self-hosted runners
Apache License 2.0
4.42k stars 1.04k forks source link

Unabled to download Buildx from Github Releases #3386

Open Lewis-Globacap opened 3 months ago

Lewis-Globacap commented 3 months ago

Checks

Controller Version

0.27.5

Deployment Method

Helm

Checks

To Reproduce

1. Create a workflow that used `docker/build-and-push@v5.1.0` 
2. Run workflow

Describe the bug

Docker setup gets stuck at the step builderx from GitHub Releases. Work does not fail it times out in 2 hours.

Describe the expected behavior

buildx is installed and action progress to next step.

Additional Context

## Docker Image

FROM summerwind/actions-runner:v2.311.0-ubuntu-22.04

# Install dependencies
RUN sudo apt-get update && \
    sudo apt-get install -y \
    build-essential \
    libpq-dev \
    moreutils

## Deployment Yaml

kind: Deployment
apiVersion: apps/v1
metadata:
  annotations:
    deployment.kubernetes.io/revision: '15'
    meta.helm.sh/release-name: actions-runner-controller
    meta.helm.sh/release-namespace: actions-runner-system
  resourceVersion: '914557817'
  name: actions-runner-controller
  uid: 71bd6e40-e7f7-451c-893e-a3372eb285c4
  creationTimestamp: '2023-10-26T10:38:09Z'
  generation: 21
  managedFields:
    - manager: helm
      operation: Update
      apiVersion: apps/v1
      time: '2023-10-26T10:45:07Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            .: {}
            'f:meta.helm.sh/release-name': {}
            'f:meta.helm.sh/release-namespace': {}
          'f:labels':
            .: {}
            'f:app.kubernetes.io/instance': {}
            'f:app.kubernetes.io/managed-by': {}
            'f:app.kubernetes.io/name': {}
            'f:app.kubernetes.io/version': {}
            'f:helm.sh/chart': {}
        'f:spec':
          'f:progressDeadlineSeconds': {}
          'f:revisionHistoryLimit': {}
          'f:selector': {}
          'f:strategy':
            'f:rollingUpdate':
              .: {}
              'f:maxSurge': {}
              'f:maxUnavailable': {}
            'f:type': {}
          'f:template':
            'f:metadata':
              'f:labels':
                .: {}
                'f:app.kubernetes.io/instance': {}
                'f:app.kubernetes.io/name': {}
            'f:spec':
              'f:volumes':
                .: {}
                'k:{"name":"cert"}':
                  .: {}
                  'f:name': {}
                  'f:secret':
                    .: {}
                    'f:defaultMode': {}
                    'f:secretName': {}
                'k:{"name":"secret"}':
                  .: {}
                  'f:name': {}
                  'f:secret':
                    .: {}
                    'f:defaultMode': {}
                    'f:secretName': {}
                'k:{"name":"tmp"}':
                  .: {}
                  'f:emptyDir': {}
                  'f:name': {}
              'f:containers':
                'k:{"name":"kube-rbac-proxy"}':
                  'f:image': {}
                  'f:terminationMessagePolicy': {}
                  .: {}
                  'f:resources':
                    .: {}
                    'f:limits':
                      .: {}
                      'f:memory': {}
                    'f:requests':
                      .: {}
                      'f:memory': {}
                  'f:args': {}
                  'f:securityContext': {}
                  'f:terminationMessagePath': {}
                  'f:imagePullPolicy': {}
                  'f:ports':
                    .: {}
                    'k:{"containerPort":8443,"protocol":"TCP"}':
                      .: {}
                      'f:containerPort': {}
                      'f:name': {}
                      'f:protocol': {}
                  'f:name': {}
                'k:{"name":"manager"}':
                  'f:image': {}
                  'f:volumeMounts':
                    .: {}
                    'k:{"mountPath":"/etc/actions-runner-controller"}':
                      .: {}
                      'f:mountPath': {}
                      'f:name': {}
                      'f:readOnly': {}
                    'k:{"mountPath":"/tmp"}':
                      .: {}
                      'f:mountPath': {}
                      'f:name': {}
                    'k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}':
                      .: {}
                      'f:mountPath': {}
                      'f:name': {}
                      'f:readOnly': {}
                  'f:terminationMessagePolicy': {}
                  .: {}
                  'f:resources':
                    .: {}
                    'f:limits':
                      .: {}
                      'f:memory': {}
                    'f:requests':
                      .: {}
                      'f:memory': {}
                  'f:command': {}
                  'f:env':
                    .: {}
                    'k:{"name":"GITHUB_APP_ID"}':
                      .: {}
                      'f:name': {}
                      'f:valueFrom':
                        .: {}
                        'f:secretKeyRef': {}
                    'k:{"name":"GITHUB_APP_INSTALLATION_ID"}':
                      .: {}
                      'f:name': {}
                      'f:valueFrom':
                        .: {}
                        'f:secretKeyRef': {}
                    'k:{"name":"GITHUB_APP_PRIVATE_KEY"}':
                      .: {}
                      'f:name': {}
                      'f:valueFrom':
                        .: {}
                        'f:secretKeyRef': {}
                    'k:{"name":"GITHUB_BASICAUTH_PASSWORD"}':
                      .: {}
                      'f:name': {}
                      'f:valueFrom':
                        .: {}
                        'f:secretKeyRef': {}
                    'k:{"name":"GITHUB_TOKEN"}':
                      .: {}
                      'f:name': {}
                      'f:valueFrom':
                        .: {}
                        'f:secretKeyRef': {}
                  'f:securityContext': {}
                  'f:terminationMessagePath': {}
                  'f:imagePullPolicy': {}
                  'f:ports':
                    .: {}
                    'k:{"containerPort":9443,"protocol":"TCP"}':
                      .: {}
                      'f:containerPort': {}
                      'f:name': {}
                      'f:protocol': {}
                  'f:name': {}
              'f:dnsPolicy': {}
              'f:serviceAccount': {}
              'f:restartPolicy': {}
              'f:schedulerName': {}
              'f:terminationGracePeriodSeconds': {}
              'f:serviceAccountName': {}
              'f:securityContext': {}
    - manager: Mozilla
      operation: Update
      apiVersion: apps/v1
      time: '2024-02-07T17:43:52Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:spec':
          'f:template':
            'f:spec':
              'f:containers':
                'k:{"name":"manager"}':
                  'f:args': {}
    - manager: kube-controller-manager
      operation: Update
      apiVersion: apps/v1
      time: '2024-03-07T11:39:34Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            'f:deployment.kubernetes.io/revision': {}
        'f:status':
          'f:availableReplicas': {}
          'f:conditions':
            .: {}
            'k:{"type":"Available"}':
              .: {}
              'f:lastTransitionTime': {}
              'f:lastUpdateTime': {}
              'f:message': {}
              'f:reason': {}
              'f:status': {}
              'f:type': {}
            'k:{"type":"Progressing"}':
              .: {}
              'f:lastTransitionTime': {}
              'f:lastUpdateTime': {}
              'f:message': {}
              'f:reason': {}
              'f:status': {}
              'f:type': {}
          'f:observedGeneration': {}
          'f:readyReplicas': {}
          'f:replicas': {}
          'f:updatedReplicas': {}
      subresource: status
  namespace: actions-runner-system
  labels:
    app.kubernetes.io/instance: actions-runner-controller
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: actions-runner-controller
    app.kubernetes.io/version: 0.27.5
    helm.sh/chart: actions-runner-controller-0.23.5
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/instance: actions-runner-controller
      app.kubernetes.io/name: actions-runner-controller
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: actions-runner-controller
        app.kubernetes.io/name: actions-runner-controller
    spec:
      restartPolicy: Always
      serviceAccountName: actions-runner-controller
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 10
      securityContext: {}
      containers:
        - resources:
            limits:
              memory: 256Mi
            requests:
              memory: 256Mi
          terminationMessagePath: /dev/termination-log
          name: manager
          command:
            - /manager
          env:
            - name: GITHUB_TOKEN
              valueFrom:
                secretKeyRef:
                  name: controller-manager
                  key: github_token
                  optional: true
            - name: GITHUB_APP_ID
              valueFrom:
                secretKeyRef:
                  name: controller-manager
                  key: github_app_id
                  optional: true
            - name: GITHUB_APP_INSTALLATION_ID
              valueFrom:
                secretKeyRef:
                  name: controller-manager
                  key: github_app_installation_id
                  optional: true
            - name: GITHUB_APP_PRIVATE_KEY
              valueFrom:
                secretKeyRef:
                  name: controller-manager
                  key: github_app_private_key
                  optional: true
            - name: GITHUB_BASICAUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: controller-manager
                  key: github_basicauth_password
                  optional: true
          securityContext: {}
          ports:
            - name: webhook-server
              containerPort: 9443
              protocol: TCP
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: secret
              readOnly: true
              mountPath: /etc/actions-runner-controller
            - name: tmp
              mountPath: /tmp
            - name: cert
              readOnly: true
              mountPath: /tmp/k8s-webhook-server/serving-certs
          terminationMessagePolicy: File
          image: 'summerwind/actions-runner-controller:v0.27.5'
          args:
            - '--metrics-addr=127.0.0.1:8080'
            - '--enable-leader-election'
            - '--port=9443'
            - '--sync-period=1m'
            - '--default-scale-down-delay=10m'
            - '--docker-image=docker:dind'
            - >-
              --runner-image=PRIVATE_IMAGE_URL
            - '--runner-image-pull-secret=reg'
            - '--log-format=text'
        - resources:
            limits:
              memory: 256Mi
            requests:
              memory: 256Mi
          terminationMessagePath: /dev/termination-log
          name: kube-rbac-proxy
          securityContext: {}
          ports:
            - name: metrics-port
              containerPort: 8443
              protocol: TCP
          imagePullPolicy: IfNotPresent
          terminationMessagePolicy: File
          image: 'quay.io/brancz/kube-rbac-proxy:v0.13.1'
          args:
            - '--secure-listen-address=0.0.0.0:8443'
            - '--upstream=http://127.0.0.1:8080/'
            - '--logtostderr=true'
            - '--v=10'
      serviceAccount: actions-runner-controller
      volumes:
        - name: secret
          secret:
            secretName: controller-manager
            defaultMode: 420
        - name: cert
          secret:
            secretName: actions-runner-controller-serving-cert
            defaultMode: 420
        - name: tmp
          emptyDir: {}
      dnsPolicy: ClusterFirst
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600
status:
  observedGeneration: 21
  replicas: 1
  updatedReplicas: 1
  readyReplicas: 1
  availableReplicas: 1
  conditions:
    - type: Progressing
      status: 'True'
      lastUpdateTime: '2024-02-08T16:30:38Z'
      lastTransitionTime: '2023-10-26T10:38:09Z'
      reason: NewReplicaSetAvailable
      message: >-
        ReplicaSet "actions-runner-controller-766f668c77" has successfully
        progressed.
    - type: Available
      status: 'True'
      lastUpdateTime: '2024-03-07T11:39:34Z'
      lastTransitionTime: '2024-03-07T11:39:34Z'
      reason: MinimumReplicasAvailable
      message: Deployment has minimum availability.

Controller Logs

https://gist.github.com/Lewis-Globacap/f6bf04f9640588e301fa13647e64221c

Runner Pod Logs

https://gist.github.com/Lewis-Globacap/b433209f3fe8ebe71732983c8c858947
github-actions[bot] commented 3 months ago

Hello! Thank you for filing an issue.

The maintainers will triage your issue shortly.

In the meantime, please take a look at the troubleshooting guide for bug reports.

If this is a feature request, please review our contribution guidelines.

nikola-jokic commented 3 months ago

Hey @Lewis-Globacap,

Please add the issue title :relaxed: