Skip to content

Commit 10ac5a8

Browse files
author
Klaus Ma
authored
Merge pull request #24 from volcano-sh/bug/fix_admission_issue
Fix some chart issues
2 parents f822a17 + 6f14dd3 commit 10ac5a8

14 files changed

+75
-33
lines changed

README.md

+40
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,46 @@ using several systems, combined with best-of-breed ideas and practices from the
1212

1313
![volcano](docs/images/volcano-intro.png)
1414

15+
## Installation
16+
17+
The easiest way to use Volcano is to use the Helm chart.
18+
19+
20+
### 1. Volcano Image
21+
Official images now are not available on DockerHub, however you can build them locally with command:
22+
```
23+
make docker
24+
```
25+
**NOTE**: You need ensure the images are correctly loaded in your kubernetes cluster, for
26+
example, if you are using [kind cluster](https://github.com/kubernetes-sigs/kind),
27+
try command ```kind load docker-image <image-name>:<tag> ``` for each of the images.
28+
29+
### 2. Helm charts
30+
First of all, clone repo to your local path
31+
```
32+
# mkdir -p $GOPATH/src/volcano.sh/
33+
# cd $GOPATH/src/volcano.sh/
34+
# git clone https://github.com/volcano-sh/volcano.git
35+
```
36+
Second, install required helm plugin and generate valid certificate, volcano uses a helm plugin **gen-admission-secret**
37+
to generate certificate for admission service to communicate with kubernetes API server.
38+
```
39+
#1. Install helm plugin
40+
helm plugin install installer/chart/volcano/plugins/gen-admission-secret
41+
42+
#2. Generate secret within service name
43+
helm gen-admission-secret --service <specified-name>-admission-service --namespace <namespace>
44+
```
45+
Finally, install helm chart.
46+
```
47+
helm install installer/chart/volcano --namespace <namespace> --name <specified-name>
48+
```
49+
**NOTE**:The ```<specified-name>``` used in the two commands above should be identical.
50+
51+
52+
53+
54+
1555
## Community, discussion, contribution, and support
1656

1757
You can reach the maintainers of this project at:

installer/chart/volcano-init/Chart.yaml

-4
This file was deleted.

installer/chart/volcano-init/values.yaml

-2
This file was deleted.

installer/chart/volcano/plugins/gen-admission-secret/gen-admission-secret.sh

100644100755
+8-3
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ This script uses k8s' CertificateSigningRequest API to a generate a
99
certificate signed by k8s CA suitable for use with webhook
1010
services. This requires permissions to create and approve CSR. See
1111
https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster for
12-
detailed explantion and additional instructions.
12+
detailed explanation and additional instructions.
1313
The server key/cert k8s CA cert are stored in a k8s secret.
1414
usage: ${0} [OPTIONS]
1515
The following flags are required.
1616
--service Service name of webhook.
1717
--namespace Namespace where webhook service and secret reside.
1818
--secret Secret name for CA certificate and server certificate/key pair.
1919
EOF
20-
exit 1
20+
exit 0
2121
}
2222

2323
while [[ $# -gt 0 ]]; do
@@ -41,7 +41,12 @@ while [[ $# -gt 0 ]]; do
4141
shift
4242
done
4343

44-
[ -z ${service} ] && service=volcano-admission-service
44+
if [ -z ${service} ]; then
45+
echo "'--service' must be specified"
46+
exit 1
47+
fi
48+
49+
4550
[ -z ${secret} ] && secret=volcano-admission-secret
4651
[ -z ${namespace} ] && namespace=default
4752

installer/chart/volcano/plugins/gen-admission-secret/plugin.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: "gen-admission-secret"
22
version: "1.0.0"
3-
usage: "Integrate Keybase.io tools with Helm"
3+
usage: "Generate valid cert for admission server"
44
description: This plugin provides signed cert to admission server.
55
ignoreFlags: false
66
useTunnel: false

installer/chart/volcano/templates/admission-config.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ webhooks:
99
caBundle: ""
1010
service:
1111
name: {{ .Release.Name }}-admission-service
12-
namespace: {{.Values.basic.namespace}}
12+
namespace: {{ .Release.Namespace }}
1313
path: /jobs
1414
failurePolicy: Ignore
1515
name: validatejob.volcano.sh
@@ -36,7 +36,7 @@ webhooks:
3636
caBundle: ""
3737
service:
3838
name: {{ .Release.Name }}-admission-service
39-
namespace: {{.Values.basic.namespace}}
39+
namespace: {{ .Release.Namespace }}
4040
path: /mutating-jobs
4141
failurePolicy: Ignore
4242
name: mutatejob.volcano.sh

installer/chart/volcano/templates/admission.yaml

+6-7
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ apiVersion: v1
22
kind: ServiceAccount
33
metadata:
44
name: {{ .Release.Name }}-admission
5-
namespace: {{.Values.basic.namespace}}
6-
5+
namespace: {{ .Release.Namespace }}
76
---
87
kind: ClusterRole
98
apiVersion: rbac.authorization.k8s.io/v1
109
metadata:
1110
name: {{ .Release.Name }}-admission
12-
namespace: {{.Values.basic.namespace}}
11+
namespace: {{ .Release.Namespace }}
1312
rules:
1413
- apiGroups: [""]
1514
resources: ["configmaps"]
@@ -26,11 +25,11 @@ kind: ClusterRoleBinding
2625
apiVersion: rbac.authorization.k8s.io/v1
2726
metadata:
2827
name: {{ .Release.Name }}-admission-role
29-
namespace: {{.Values.basic.namespace}}
28+
namespace: {{ .Release.Namespace }}
3029
subjects:
3130
- kind: ServiceAccount
3231
name: {{ .Release.Name }}-admission
33-
namespace: {{.Values.basic.namespace}}
32+
namespace: {{ .Release.Namespace }}
3433
roleRef:
3534
kind: ClusterRole
3635
name: {{ .Release.Name }}-admission
@@ -44,7 +43,7 @@ metadata:
4443
app: admission
4544
admission: "true"
4645
name: {{ .Release.Name }}-admission
47-
namespace: {{.Values.basic.namespace}}
46+
namespace: {{ .Release.Namespace }}
4847
spec:
4948
replicas: 1
5049
selector:
@@ -89,7 +88,7 @@ metadata:
8988
labels:
9089
test: admission
9190
name: {{ .Release.Name }}-admission-service
92-
namespace: {{.Values.basic.namespace}}
91+
namespace: {{ .Release.Namespace }}
9392
spec:
9493
ports:
9594
- port: 443

installer/chart/volcano-init/templates/batch_v1alpha1_job.yaml installer/chart/volcano/templates/batch_v1alpha1_job.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ apiVersion: apiextensions.k8s.io/v1beta1
22
kind: CustomResourceDefinition
33
metadata:
44
name: jobs.batch.volcano.sh
5+
annotations:
6+
"helm.sh/hook": crd-install
57
spec:
68
group: batch.volcano.sh
79
names:

installer/chart/volcano-init/templates/bus_v1alpha1_command.yaml installer/chart/volcano/templates/bus_v1alpha1_command.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ apiVersion: apiextensions.k8s.io/v1beta1
22
kind: CustomResourceDefinition
33
metadata:
44
name: commands.bus.volcano.sh
5+
annotations:
6+
"helm.sh/hook": crd-install
57
spec:
68
group: bus.volcano.sh
79
names:

installer/chart/volcano/templates/controllers.yaml

+5-6
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ apiVersion: v1
22
kind: ServiceAccount
33
metadata:
44
name: {{ .Release.Name }}-controllers
5-
namespace: {{.Values.basic.namespace}}
5+
namespace: {{ .Release.Namespace }}
66

77
---
88
kind: ClusterRole
99
apiVersion: rbac.authorization.k8s.io/v1
1010
metadata:
1111
name: {{ .Release.Name }}-controllers
12-
namespace: {{.Values.basic.namespace}}
12+
namespace: {{ .Release.Namespace }}
1313
rules:
1414
- apiGroups: ["apiextensions.k8s.io"]
1515
resources: ["customresourcedefinitions"]
@@ -47,12 +47,11 @@ kind: ClusterRoleBinding
4747
apiVersion: rbac.authorization.k8s.io/v1
4848
metadata:
4949
name: {{ .Release.Name }}-controllers-role
50-
namespace: {{.Values.basic.namespace}}
50+
namespace: {{ .Release.Namespace }}
5151
subjects:
5252
- kind: ServiceAccount
5353
name: {{ .Release.Name }}-controllers
54-
# replace with non-default namespace name
55-
namespace: default
54+
namespace: {{ .Release.Namespace }}
5655
roleRef:
5756
kind: ClusterRole
5857
name: {{ .Release.Name }}-controllers
@@ -63,7 +62,7 @@ kind: Deployment
6362
apiVersion: apps/v1
6463
metadata:
6564
name: {{ .Release.Name }}-controllers
66-
namespace: {{.Values.basic.namespace}}
65+
namespace: {{ .Release.Namespace }}
6766
spec:
6867
replicas: 1
6968
selector:

installer/chart/volcano/templates/scheduler.yaml

+5-7
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ apiVersion: v1
22
kind: ServiceAccount
33
metadata:
44
name: {{ .Release.Name }}-scheduler
5-
namespace: {{.Values.basic.namespace}}
6-
5+
namespace: {{ .Release.Namespace }}
76
---
87
kind: ClusterRole
98
apiVersion: rbac.authorization.k8s.io/v1
109
metadata:
1110
name: {{ .Release.Name }}-scheduler
12-
namespace: {{.Values.basic.namespace}}
11+
namespace: {{ .Release.Namespace }}
1312
rules:
1413
- apiGroups: ["apiextensions.k8s.io"]
1514
resources: ["customresourcedefinitions"]
@@ -62,12 +61,11 @@ kind: ClusterRoleBinding
6261
apiVersion: rbac.authorization.k8s.io/v1
6362
metadata:
6463
name: {{ .Release.Name }}-scheduler-role
65-
namespace: {{.Values.basic.namespace}}
64+
namespace: {{ .Release.Namespace }}
6665
subjects:
6766
- kind: ServiceAccount
6867
name: {{ .Release.Name }}-scheduler
69-
# replace with non-default namespace name
70-
namespace: default
68+
namespace: {{ .Release.Namespace }}
7169
roleRef:
7270
kind: ClusterRole
7371
name: {{ .Release.Name }}-scheduler
@@ -78,7 +76,7 @@ kind: Deployment
7876
apiVersion: apps/v1
7977
metadata:
8078
name: {{ .Release.Name }}-scheduler
81-
namespace: {{.Values.basic.namespace}}
79+
namespace: {{ .Release.Namespace }}
8280
spec:
8381
replicas: 1
8482
selector:

installer/chart/volcano-init/templates/scheduling_v1alpha1_podgroup.yaml installer/chart/volcano/templates/scheduling_v1alpha1_podgroup.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ apiVersion: apiextensions.k8s.io/v1beta1
22
kind: CustomResourceDefinition
33
metadata:
44
name: podgroups.scheduling.incubator.k8s.io
5+
annotations:
6+
"helm.sh/hook": crd-install
57
spec:
68
group: scheduling.incubator.k8s.io
79
names:

installer/chart/volcano-init/templates/scheduling_v1alpha1_queue.yaml installer/chart/volcano/templates/scheduling_v1alpha1_queue.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ apiVersion: apiextensions.k8s.io/v1beta1
22
kind: CustomResourceDefinition
33
metadata:
44
name: queues.scheduling.incubator.k8s.io
5+
annotations:
6+
"helm.sh/hook": crd-install
57
spec:
68
group: scheduling.incubator.k8s.io
79
names:

installer/chart/volcano/values.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
basic:
22
image_tag_version: "1.0"
3-
namespace: default
43
controller_image_name: "volcano-controllers"
54
scheduler_image_name: "volcano-scheduler"
65
admission_image_name: "volcano-admission"

0 commit comments

Comments
 (0)