快速开始

本指南演示如何创建一个 GitHub Connector,并使用它在不直接将 GitHub 凭证暴露到工作负载中的情况下克隆仓库。

前提条件

  • 已安装 Connectors 的 Kubernetes 集群(Operator、ConnectorsCore、ConnectorsGitHub)
  • 已为集群配置 kubectl
  • GitHub Personal Access Token(PAT)

第 1 步:创建 Namespace

kubectl create ns github-connector-demo

第 2 步:创建 Secret 和 Connector

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: github-secret
  namespace: github-connector-demo
type: Opaque
stringData:
  token: ghp_xxxxxxxxxxxxxxxxxxxx
---
apiVersion: connectors.alauda.io/v1alpha1
kind: Connector
metadata:
  name: github-connector
  namespace: github-connector-demo
spec:
  connectorClassName: github
  address: https://github.com
  auth:
    name: patAuth
    secretRef:
      name: github-secret
  addressExtensions:
    - name: api
      value: https://api.github.com
EOF

验证就绪状态:

kubectl get connector -n github-connector-demo github-connector

第 3 步:运行克隆任务

cat <<EOF | kubectl apply -f -
apiVersion: batch/v1
kind: Job
metadata:
  name: github-git-clone
  namespace: github-connector-demo
spec:
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: git
        image: bitnami/git
        command: ["sh", "-c"]
        args:
        - |
          set -ex
          cp /opt/git/.gitconfig /root/
          chmod 644 /root/.gitconfig
          git clone --progress https://github.com/octocat/hello-world.git /tmp/repo
        volumeMounts:
        - name: github-auth
          mountPath: /opt/git
      volumes:
      - name: github-auth
        csi:
          readOnly: true
          driver: connectors-csi
          volumeAttributes:
            connector.name: "github-connector"
            configuration.names: "gitconfig"
EOF

第 4 步:验证

kubectl logs -f job/github-git-clone -n github-connector-demo

下一步