Version: v26.03

Custom Repository Configuration Guide ​

Background ​

  • Supports using custom repository configuration, supports custom configuration of image repository, binary repository, and chart repository.
  • Supports one-way authentication access for image repository and chart repository (containerd and helm one-way access to repository, using the same CA). Binary repository does not involve authentication access.

Note:
Currently only the numa component uses chart repository independently in addon.

Prerequisites ​

  • Users need to provide custom image repository, binary repository, and chart repository.

    • Please import all required images into the private image repository (pay attention to correct namespace, image name, and image tag).
    • Import all required binary files into the private binary repository.
    • Import all required chart packages into the private chart repository.
  • On the bootstrap node, upload the repository root CA to the specified path /etc/openFuyao according to the convention, with ca.crt file permission 644. The directory structure is /etc/openFuyao/ca.crt.

  • For a list of media to be uploaded, see the Appendix.

Restrictions ​

None.

Procedure ​

  1. Bootstrap node initialization.

    Upload the bkeadm binary tool to the bootstrap node Use bke init to complete bootstrap node initialization. Below is an initialization command reference:

    
      bke init \
      # 1. Image repository
      --otherRepo 192.168.100.17:443/openfuyao \   # Custom image repository (including port + path), namespace recommended to be openFuyao
      --domain my.harbor.com \                     # Image repository domain name (matched with --otherRepo to ensure certificate and access consistency)
      --imageRepoPort 443 \                        # Image repository port (explicitly specify port number)
      --imageRepoCAFile /etc/openFuyao/ca.crt \    # Private repository CA certificate (specify certificate path to read)
      # 2. Binary repository
      --otherSource http://192.168.100.48:8080 \   
      # 3. Function switches: disable console installation
      --installConsole=false \                     # Do not install BKE built-in console (disabled by default)
      --enableNTP=false \                          # Do not perform NTP synchronization service operations
      # 4. Other
      --confirm                                    # Pre-confirm, no need for subsequent Y/N confirmation
  2. Create management cluster/business cluster through bc.

    Edit bc, modify to custom image repository and binary repository. Chart repository is modified in addon parameters.

    yaml
    httpRepo:  #http repository
            domain: http.bocloud.k8s   #No need to modify
            ip: 192.168.200.173      #Modify to actual http repository ip
            port: "40080"            #Modify to actual http repository port number
            prefix: ""               #Default is empty
          imageRepo:  #image repository
            domain: deploy.bocloud.k8s      #Modify to actual image repository domain
            ip: 192.168.200.173     #Modify to actual image repository ip
            port: "40443"           #Modify to actual image repository port number
            prefix: openfuyao       #Modify to actual project name

    Also edit cct, add containerd configuration

    yaml
    registry:
        configPath: /etc/containerd/certs.d
        configs:  
          "my.harbor.com":            #Image repository domain
            capabilities: ["pull", "resolve"] 
            host: my.harbor.com           
            skipVerify: false                 
            plainHTTP: false                 
            tls:                             
              caFile: /etc/openFuyao/ca.crt  
              insecureSkipVerify: false

    If you need to install the NUMA affinity plugin during bke cluster installation, you need to modify addon parameters in bke-cluster cr, example as follows:

    yaml
    name: numa-affinity-package
      param:
        openfuyaoRepo: https://private chart repository address
        version: v0.0.2

Appendix ​

Image List ​

1. Basic components for building K3s cluster, architectures are all amd64、arm64.

Image AddressTagDescription
cr.openfuyao.cn/openfuyao/registry2.8.1Image repository (duplicate with base image, unified reuse)
cr.openfuyao.cn/openfuyao/nginx_yum_repo1.23.0-alpineYUM source proxy service (based on Nginx)
cr.openfuyao.cn/openfuyao/chartmuseumv0.16.2Helm Chart repository service
cr.openfuyao.cn/openfuyao/nfs-server-alpine0.9.0NFS storage service (lightweight Alpine version)
cr.openfuyao.cn/openfuyao/k3sv1.25.16-k3s4K3s cluster core binary image
cr.openfuyao.cn/openfuyao/mirrored-pause3.6Container pause image (K3s container lifecycle management)

2. K8s core component images (needDownload: true)

Covers K8s control plane, network, load balancing and other core functions, architectures are all amd64、arm64.

Image AddressTagDescription
cr.openfuyao.cn/openfuyao/kubernetes/corednsv1.10.1K8s DNS service (CoreDNS)
cr.openfuyao.cn/openfuyao/kubernetes/pause3.9K8s container base image (distinguish version from K3s)
cr.openfuyao.cn/openfuyao/kube-apiserverof-v1.33.1K8s API server (openFuyao custom version)
cr.openfuyao.cn/openfuyao/kube-controller-managerof-v1.33.1K8s controller manager (openFuyao custom version)
cr.openfuyao.cn/openfuyao/kube-schedulerof-v1.33.1K8s scheduler (openFuyao custom version)
cr.openfuyao.cn/openfuyao/kube-proxyof-v1.33.1K8s network proxy (openFuyao custom version)
cr.openfuyao.cn/openfuyao/etcdof-v3.5.21Etcd database (K8s cluster storage, openFuyao custom version)
cr.openfuyao.cn/openfuyao/keepalived/keepalived1.3.5High availability VIP service (Keepalived)
cr.openfuyao.cn/openfuyao/haproxy/haproxy2.1.4Load balancing service (HAProxy)
cr.openfuyao.cn/openfuyao/calico/cniv3.27.3Calico CNI network plugin (container network interface)
cr.openfuyao.cn/openfuyao/calico/nodev3.27.3Calico node agent (network policy enforcement)
cr.openfuyao.cn/openfuyao/calico/kube-controllersv3.27.3Calico controller (network resource management)
cr.openfuyao.cn/kubernetes/pause3.9K8s container base image (distinguish version from K3s)

3. bke tool itself

Image AddressTagDescription
cr.openfuyao.cn/openfuyao/cluster-api-provider-bkelatestBKE cluster API provider (CAPI compatible)
cr.openfuyao.cn/openfuyao/bke-manifestslatestBKE resource manifest image
cr.openfuyao.cn/openfuyao/cluster-api/cluster-api-controllerv1.4.3CAPI cluster controller
cr.openfuyao.cn/openfuyao/cluster-api/kubeadm-bootstrap-controllerv1.4.3CAPI Kubeadm bootstrap controller
cr.openfuyao.cn/openfuyao/cluster-api/kubeadm-control-plane-controllerv1.4.3CAPI Kubeadm control plane controller

4. Extension components

4.1 Volcano scheduling extension

Architectures are all amd64、arm64, used for container scheduling optimization (such as NUMA affinity, resource scheduling).

Image AddressTagDescription
cr.openfuyao.cn/openfuyao/volcano-config-websitelatestVolcano configuration page
cr.openfuyao.cn/openfuyao/volcano-config-servicelatestVolcano configuration service
cr.openfuyao.cn/openfuyao/numa-affinity-webhooklatestNUMA affinity Webhook service
cr.openfuyao.cn/openfuyao/numa-tuning-operatorv25.03NUMA resource tuning Operator
cr.openfuyao.cn/openfuyao/volcano/resource-exporterlatestVolcano resource metrics exporter
cr.openfuyao.cn/openfuyao/oauth-proxylatestOAuth authentication proxy (multi-component reuse)
cr.openfuyao.cn/openfuyao/vc-schedulerlatestVolcano scheduler core
docker.io/volcanosh/vc-webhook-managerv1.9.0Volcano Webhook manager (official image)
docker.io/volcanosh/vc-controller-managerv1.9.0Volcano controller manager (official image)
docker.io/alpine/openssl3.5.0OpenSSL tool (base dependency, Alpine version)
cr.openfuyao.cn/openfuyao/kubectl-openfuyaolatestopenFuyao custom Kubectl tool

Binary File List ​

1. K8s core operation tools

Used for K8s cluster command line management and node operation, all provide amd64/arm64 dual architecture support.

Component NameArchitectureFile TypeDescription
kubectl-v1.33.1-amd64amd64Single binaryK8s cluster command line tool (openFuyao custom v1.33.1 version)
kubectl-v1.33.1-arm64arm64Single binarySame as above (adapted for ARM architecture nodes)
kubelet-v1.33.1-amd64amd64Single binaryK8s node agent (maintains node cluster communication, v1.33.1 version)
kubelet-v1.33.1-arm64arm64Single binarySame as above (adapted for ARM architecture nodes)
etcdctl-v3.5.6-linux-amd64amd64Single binaryEtcd database command line tool (manage cluster storage, v3.5.6 version)
etcdctl-v3.5.6-linux-arm64arm64Single binarySame as above (adapted for ARM architecture nodes)

2. Container runtime core components

Supporting container start/stop and resource management underlying binaries, containing runtime main body and core dependencies.

Component NameArchitectureFile TypeDescription
containerd-v2.1.1-linux-amd64.tar.gzamd64ArchiveContainer runtime (core component, v2.1.1 version, archive contains binaries and configuration)
containerd-v2.1.1-linux-arm64.tar.gzarm64ArchiveSame as above (adapted for ARM architecture nodes)
runc-amd64amd64Single binaryLightweight container runtime (containerd dependency, create/destroy containers)
runc-arm64arm64Single binarySame as above (adapted for ARM architecture nodes)

3. Container Network Interface (CNI)

Used to configure container network (such as network isolation, cross-node communication), archive format (contains multiple CNI plugin binaries).

Component NameArchitectureFile TypeDescription
cni-plugins-linux-amd64-v1.4.1.tgzamd64ArchiveCNI network plugin collection (v1.4.1 version, includes bridge, host-local and other plugins)
cni-plugins-linux-arm64-v1.4.1.tgzarm64ArchiveSame as above (adapted for ARM architecture nodes)

4. Package management and configuration processing tools

Used for Helm Chart management, YAML/JSON parsing and other operation tasks.

Component NameArchitectureFile TypeDescription
helm-v3.14.2-linux-amd64.tar.gzamd64ArchiveHelm package management tool (v3.14.2 version, manage K8s application Charts)
helm-v3.14.2-linux-arm64.tar.gzarm64ArchiveSame as above (adapted for ARM architecture nodes)
yq_linux_amd64amd64Single binaryYAML data processing tool (query/modify YAML files, v4.43.1 version)
yq_linux_arm64arm64Single binarySame as above (adapted for ARM architecture nodes)
jq-linux-amd64amd64Single binaryJSON data processing tool (parse/filter JSON, v1.7.1 version)
jq-linux-arm64arm64Single binarySame as above (adapted for ARM architecture nodes)

5. Auxiliary archives for RPM package management and NFS shared configuration (contains related binaries or scripts).

Component NameArchitectureFile TypeDescription
rpm.tar.gzGeneric (archive contains multi-architecture)ArchiveRPM package management related toolset (adapted for RPM-based operating systems)
nfsshare.tar.gzGeneric (archive contains multi-architecture)ArchiveNFS shared service configuration tool (implement cluster storage sharing)
charts.tar.gzMust haveArchivecharts package files

6. BKE cluster specific management tools

openFuyao BKE cluster initialization and operation tools, dual architecture support.

Component NameArchitectureFile TypeDescription
bkeadm_linux_amd64amd64Single binaryBKE cluster management tool (initialize, upgrade, operate clusters)
bkeadm_linux_arm64arm64Single binarySame as above (adapted for ARM architecture nodes)

Note: The cfssl tool is used in openFuyao core components and is not used in co-creation scenarios.

Complete Binary File List

yaml
files:
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/kubernetes/kubernetes/releases/download/of-v1.33.1/bin/linux/arm64/
    files:
      - kubectl-v1.33.1-arm64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/kubernetes/kubernetes/releases/download/of-v1.33.1/bin/linux/amd64/
    files:
      - kubectl-v1.33.1-amd64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/kubernetes/kubernetes/releases/download/of-v1.33.1/bin/linux/arm64/
    files:
      - kubelet-v1.33.1-arm64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/kubernetes/kubernetes/releases/download/of-v1.33.1/bin/linux/amd64/
    files:
      - kubelet-v1.33.1-amd64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/containerd/containerd/releases/download/v2.1.1-origin/
    files:
      - containerd-v2.1.1-linux-amd64.tar.gz
      - containerd-v2.1.1-linux-arm64.tar.gz
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/containernetworking/plugins/releases/download/v1.4.1/
    files:
      - cni-plugins-linux-amd64-v1.4.1.tgz
      - cni-plugins-linux-arm64-v1.4.1.tgz
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/helm/releases/download/v3.14.2/
    files:
      - helm-v3.14.2-linux-amd64.tar.gz
      - helm-v3.14.2-linux-arm64.tar.gz
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/mikefarah/yq/releases/download/v4.43.1
    files:
      - yq_linux_arm64
      - yq_linux_amd64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/jqlang/jq/releases/download/v1.7.1
    files:
      - jq-linux-arm64
      - jq-linux-amd64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/cloudflare/cfssl/releases/download/v1.6.4
    files:
      - cfssl-certinfo_1.6.4_linux_arm64
      - cfssl-certinfo_1.6.4_linux_amd64
      - cfssl_1.6.4_linux_arm64
      - cfssl_1.6.4_linux_amd64
      - cfssljson_1.6.4_linux_arm64
      - cfssljson_1.6.4_linux_amd64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/opencontainers/runc/releases/download/v1.1.12/
    files:
      - runc-arm64
      - runc-amd64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/etcd-io/etcd/releases/download/v3.5.6/
    files:
      - etcdctl-v3.5.6-linux-amd64
      - etcdctl-v3.5.6-linux-arm64
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/rpm/releases/download/v0.0.1/
    files:
      - rpm.tar.gz
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/nfs/
    files:
      - nfsshare.tar.gz
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/charts/releases/download/latest/
    files:
      - charts.tar.gz
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/bkeadm/releases/download/latest/
    files:
      - bkeadm_linux_amd64
      - bkeadm_linux_arm64

chart Package List ​

Currently only involves the NUMA component.

yaml
  - address: https://openfuyao.obs.cn-north-4.myhuaweicloud.com/charts/releases/download/latest/
    files:
      - numa-affinity-package-0.0.0-latest.tgz