diff --git a/.github/workflows/code_verify.yaml b/.github/workflows/code_verify.yaml index eb9baf4bdd..cb8f7ce14d 100644 --- a/.github/workflows/code_verify.yaml +++ b/.github/workflows/code_verify.yaml @@ -35,7 +35,7 @@ jobs: run: | make lint make verify - make TAG=latest generate-yaml + make TAG=v2.0.0-network-topology-preview.0 generate-yaml make verify-generated-yaml sudo make unit-test working-directory: ./src/github.com/${{ github.repository }} diff --git a/.github/workflows/e2e_spark.yaml b/.github/workflows/e2e_spark.yaml index 347b070113..66f3333307 100644 --- a/.github/workflows/e2e_spark.yaml +++ b/.github/workflows/e2e_spark.yaml @@ -76,12 +76,11 @@ jobs: - name: Build lastest volcano images run: | eval $(minikube docker-env) - make TAG=latest update-development-yaml - sed -i 's/imagePullPolicy: Always/imagePullPolicy: IfNotPresent/g' installer/volcano-development.yaml - make TAG=latest images + make TAG=v2.0.0-network-topology-preview.0 update-development-yaml + make TAG=v2.0.0-network-topology-preview.0 images docker images | grep volcano cat ./installer/volcano-development.yaml | grep image: - minikube kubectl -- replace --force -f ./installer/volcano-development.yaml + sed 's/imagePullPolicy: Always/imagePullPolicy: IfNotPresent/' ./installer/volcano-development.yaml | minikube kubectl -- replace --force -f - - name: Show all K8S pods and nodes run: | # Use minikube kubectl diff --git a/Makefile b/Makefile index 302d52e2c7..d36ab08417 100644 --- a/Makefile +++ b/Makefile @@ -199,8 +199,8 @@ CONTROLLER_GEN=$(shell which controller-gen) endif update-development-yaml: - make generate-yaml TAG=latest RELEASE_DIR=installer - mv installer/volcano-latest.yaml installer/volcano-development.yaml + make generate-yaml TAG=v2.0.0-network-topology-preview.0 RELEASE_DIR=installer + mv installer/volcano-v2.0.0-network-topology-preview.0.yaml installer/volcano-development.yaml mod-download-go: @-GOFLAGS="-mod=readonly" find -name go.mod -execdir go mod download \; diff --git a/Makefile.def b/Makefile.def index 884bf17480..de30d8d934 100644 --- a/Makefile.def +++ b/Makefile.def @@ -1,9 +1,9 @@ # If tag not explicitly set in users default to the git sha. -TAG ?= $(shell git rev-parse --verify HEAD) +TAG ?= v2.0.0-network-topology-preview.0 GitSHA=`git rev-parse HEAD` Date=`date "+%Y-%m-%d %H:%M:%S"` -RELEASE_VER=latest +RELEASE_VER=v2.0.0-network-topology-preview.0 OPEN_EULER_IMAGE_TAG ?= 22.03-lts-sp2 LD_FLAGS=" \ -X '${REPO_PATH}/pkg/version.GitSHA=${GitSHA}' \ diff --git a/README.md b/README.md index 4befc27381..685244efe5 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ Note: Install Volcano on an existing Kubernetes cluster. This way is both available for x86_64 and arm64 architecture. ``` -kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yaml +kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/network-topology/installer/volcano-development.yaml ``` Enjoy! Volcano will create the following resources in `volcano-system` namespace. @@ -149,8 +149,8 @@ This way is only available for x86_64 temporarily. If you want to get prometheus and grafana volcano dashboard after volcano installed, try following commands: ```bash -make TAG=latest generate-yaml -kubectl create -f _output/release/volcano-monitoring-latest.yaml +make TAG=v2.0.0-network-topology-preview.0 generate-yaml +kubectl create -f _output/release/volcano-monitoring-v2.0.0-network-topology-preview.0.yaml ``` ### Install dashboard diff --git a/hack/check-generated-yaml.sh b/hack/check-generated-yaml.sh index a1a30587fe..7358582e40 100755 --- a/hack/check-generated-yaml.sh +++ b/hack/check-generated-yaml.sh @@ -21,23 +21,23 @@ set -o pipefail VK_ROOT=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.. export RELEASE_FOLDER=${VK_ROOT}/${RELEASE_DIR} -if ! diff ${VK_ROOT}/installer/volcano-development.yaml ${RELEASE_FOLDER}/volcano-latest.yaml ; then +if ! diff ${VK_ROOT}/installer/volcano-development.yaml ${RELEASE_FOLDER}/volcano-v2.0.0-network-topology-preview.0.yaml ; then { echo echo "The Generated yaml is different from the one in installer/volcano-development.yaml" - echo "please run 'make generate-yaml TAG=latest RELEASE_DIR=installer \ - && mv ${VK_ROOT}/installer/volcano-latest.yaml ${VK_ROOT}/installer/volcano-development.yaml' to update" + echo "please run 'make generate-yaml TAG=v2.0.0-network-topology-preview.0 RELEASE_DIR=installer \ + && mv ${VK_ROOT}/installer/volcano-v2.0.0-network-topology-preview.0.yaml ${VK_ROOT}/installer/volcano-development.yaml' to update" echo } >&2 false fi -if ! diff ${VK_ROOT}/installer/volcano-agent-development.yaml ${RELEASE_FOLDER}/volcano-agent-latest.yaml ; then +if ! diff ${VK_ROOT}/installer/volcano-agent-development.yaml ${RELEASE_FOLDER}/volcano-agent-v2.0.0-network-topology-preview.0.yaml ; then { echo echo "The Generated yaml is different from the one in installer/volcano-agent-development.yaml" - echo "please run 'make generate-yaml TAG=latest RELEASE_DIR=installer \ - && mv ${VK_ROOT}/installer/volcano-agent-latest.yaml ${VK_ROOT}/installer/volcano-agent-development.yaml' to update" + echo "please run 'make generate-yaml TAG=v2.0.0-network-topology-preview.0 RELEASE_DIR=installer \ + && mv ${VK_ROOT}/installer/volcano-agent-v2.0.0-network-topology-preview.0.yaml ${VK_ROOT}/installer/volcano-agent-development.yaml' to update" echo } >&2 false diff --git a/installer/helm/chart/volcano/Chart.yaml b/installer/helm/chart/volcano/Chart.yaml index 93188b2dfa..ed6393afd4 100644 --- a/installer/helm/chart/volcano/Chart.yaml +++ b/installer/helm/chart/volcano/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: A Helm chart for Volcano name: volcano -version: "1.5" +version: "2.0.0-network-topology-preview.0" appVersion: "0.1" icon: https://raw.githubusercontent.com/volcano-sh/charts/master/docs/images/volcano-logo.png home: https://volcano.sh diff --git a/installer/helm/chart/volcano/values.yaml b/installer/helm/chart/volcano/values.yaml index b9769907fc..e229b17260 100644 --- a/installer/helm/chart/volcano/values.yaml +++ b/installer/helm/chart/volcano/values.yaml @@ -8,7 +8,7 @@ basic: scheduler_config_file: "config/volcano-scheduler.conf" image_pull_secret: "" image_pull_policy: "Always" - image_tag_version: "latest" + image_tag_version: "v2.0.0-network-topology-preview.0" admission_port: 8443 image_registry: "docker.io" custom: diff --git a/installer/volcano-agent-development.yaml b/installer/volcano-agent-development.yaml index 7b8818510a..62d74a607f 100644 --- a/installer/volcano-agent-development.yaml +++ b/installer/volcano-agent-development.yaml @@ -126,7 +126,7 @@ spec: type: File initContainers: - name: volcano-agent-init - image: docker.io/volcanosh/vc-agent:latest + image: docker.io/volcanosh/vc-agent:v2.0.0-network-topology-preview.0 command: - /bin/sh - '-c' @@ -147,7 +147,7 @@ spec: imagePullPolicy: Always containers: - name: volcano-agent - image: docker.io/volcanosh/vc-agent:latest + image: docker.io/volcanosh/vc-agent:v2.0.0-network-topology-preview.0 command: - /bin/sh - '-c' diff --git a/installer/volcano-agent-v2.0.0-network-topology-preview.0.yaml b/installer/volcano-agent-v2.0.0-network-topology-preview.0.yaml new file mode 100644 index 0000000000..62d74a607f --- /dev/null +++ b/installer/volcano-agent-v2.0.0-network-topology-preview.0.yaml @@ -0,0 +1,214 @@ +--- +# Source: volcano/templates/agent.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: volcano-agent + name: volcano-agent + namespace: volcano-system +--- +# Source: volcano/templates/agent.yaml +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: volcano-agent + name: volcano-agent +rules: + - apiGroups: [""] + resources: [ "nodes", "nodes/status" ] + verbs: [ "get", "list", "watch", "update", "patch" ] + - apiGroups: [ "" ] + resources: [ "secrets" ] + verbs: [ "get", "list", "watch" ] + - apiGroups: [ "" ] + resources: [ "configmaps" ] + verbs: [ "get", "list", "watch", "create", "update" ] + - apiGroups: [ "" ] + resources: [ "pods" ] + verbs: [ "get", "list", "watch" ] + - apiGroups: [ "" ] + resources: [ "pods/eviction" ] + verbs: [ "create" ] + - apiGroups: [ "" ] + resources: [ "configmaps" ] + verbs: ["get", "list", "watch" ] + - apiGroups: [ "" ] + resources: [ "events" ] + verbs: [ "list", "watch", "create", "update", "patch" ] +--- +# Source: volcano/templates/agent.yaml +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + app: volcano-agent + name: volcano-agent-role +subjects: + - kind: ServiceAccount + name: volcano-agent + namespace: volcano-system + - kind: User + apiGroup: rbac.authorization.k8s.io + name: volcano-agent +roleRef: + kind: ClusterRole + name: volcano-agent + apiGroup: rbac.authorization.k8s.io +--- +# Source: volcano/templates/agent.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: volcano-agent + namespace: volcano-system +spec: + selector: + matchLabels: + name: volcano-agent + template: + metadata: + name: volcano-agent + labels: + name: volcano-agent + annotations: + prometheus.io/path: /metrics + prometheus.io/port: '3300' + prometheus.io/scheme: http + prometheus.io/scrape: 'true' + spec: + tolerations: + - effect: NoSchedule + key: volcano.sh/offline-job-evicting + operator: Exists + serviceAccountName: volcano-agent + hostNetwork: true + priorityClassName: system-node-critical + restartPolicy: Always + dnsPolicy: Default + volumes: + - name: bwm-dir + hostPath: + path: /usr/share/bwmcli/ + type: DirectoryOrCreate + - name: cni-plugin-dir + hostPath: + path: /opt/cni/bin + type: Directory + - name: host-etc + hostPath: + path: /etc + type: Directory + - name: host-sys-fs + hostPath: + path: /sys/fs + type: Directory + - name: host-proc-sys + hostPath: + path: /proc/sys + type: Directory + - name: log + hostPath: + path: /var/log/volcano/agent + type: '' + - name: localtime + hostPath: + path: /etc/localtime + type: '' + - name: kubelet-cpu-manager-policy + hostPath: + path: /var/lib/kubelet/ + type: '' + - name: proc-stat + hostPath: + path: /proc/stat + type: File + initContainers: + - name: volcano-agent-init + image: docker.io/volcanosh/vc-agent:v2.0.0-network-topology-preview.0 + command: + - /bin/sh + - '-c' + - /usr/local/bin/install.sh + volumeMounts: + - name: bwm-dir + mountPath: /usr/share/bwmcli + - name: cni-plugin-dir + mountPath: /opt/cni/bin + - name: host-etc + mountPath: /host/etc + - mountPath: /var/log/volcano/agent + name: log + - name: host-proc-sys + mountPath: /host/proc/sys + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always + containers: + - name: volcano-agent + image: docker.io/volcanosh/vc-agent:v2.0.0-network-topology-preview.0 + command: + - /bin/sh + - '-c' + - /vc-agent --v=2 1>>/var/log/volcano/agent/volcano-agent.log 2>&1 + env: + - name: SYS_FS_PATH + value: /host/sys/fs + - name: CNI_CONF_FILE_PATH + value: /host/etc/cni/net.d/cni.conflist + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: KUBE_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: KUBE_POD_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + volumeMounts: + - name: bwm-dir + mountPath: /usr/share/bwmcli + - name: cni-plugin-dir + mountPath: /opt/cni/bin + - name: host-etc + mountPath: /host/etc + - mountPath: /var/log/volcano/agent + name: log + - name: host-sys-fs + mountPath: /host/sys/fs + mountPropagation: HostToContainer + - name: host-proc-sys + mountPath: /host/proc/sys + - name: localtime + readOnly: true + mountPath: /etc/localtime + - name: kubelet-cpu-manager-policy + readOnly: true + mountPath: /var/lib/kubelet + - name: proc-stat + readOnly: true + mountPath: /host/proc/stat + livenessProbe: + httpGet: + path: /healthz + port: 3300 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + periodSeconds: 10 + successThreshold: 1 + failureThreshold: 5 + imagePullPolicy: Always + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 10% + maxSurge: 0 + revisionHistoryLimit: 10 diff --git a/installer/volcano-development.yaml b/installer/volcano-development.yaml index cbfa212de8..e5a3c7bdc2 100644 --- a/installer/volcano-development.yaml +++ b/installer/volcano-development.yaml @@ -147,7 +147,7 @@ spec: - --port=8443 - -v=4 - 2>&1 - image: docker.io/volcanosh/vc-webhook-manager:latest + image: docker.io/volcanosh/vc-webhook-manager:v2.0.0-network-topology-preview.0 imagePullPolicy: Always name: admission volumeMounts: @@ -231,7 +231,7 @@ spec: restartPolicy: Never containers: - name: main - image: docker.io/volcanosh/vc-webhook-manager:latest + image: docker.io/volcanosh/vc-webhook-manager:v2.0.0-network-topology-preview.0 imagePullPolicy: Always command: ["./gen-admission-secret.sh", "--service", "volcano-admission-service", "--namespace", "volcano-system", "--secret", "volcano-admission-secret"] @@ -4469,7 +4469,7 @@ spec: priorityClassName: system-cluster-critical containers: - name: volcano-controllers - image: docker.io/volcanosh/vc-controller-manager:latest + image: docker.io/volcanosh/vc-controller-manager:v2.0.0-network-topology-preview.0 args: - --logtostderr - --enable-healthz=true @@ -4649,7 +4649,7 @@ spec: priorityClassName: system-cluster-critical containers: - name: volcano-scheduler - image: docker.io/volcanosh/vc-scheduler:latest + image: docker.io/volcanosh/vc-scheduler:v2.0.0-network-topology-preview.0 args: - --logtostderr - --scheduler-conf=/volcano.scheduler/volcano-scheduler.conf diff --git a/installer/volcano-monitoring-latest.yaml b/installer/volcano-monitoring-v2.0.0-network-topology-preview.0.yaml similarity index 100% rename from installer/volcano-monitoring-latest.yaml rename to installer/volcano-monitoring-v2.0.0-network-topology-preview.0.yaml