Skip to content

Commit

Permalink
[ISSUE-48][FEATURE][FOLLOW UP] Add yaml of components and crd exampes (
Browse files Browse the repository at this point in the history
…#236)

### What changes were proposed in this pull request?
For issue #48 
I add some yaml files of components and crd exampes.

### Why are the changes needed?
Add yaml configuration


### Does this PR introduce _any_ user-facing change?
No


### How was this patch tested?
No need.
  • Loading branch information
wangao1236 authored Sep 23, 2022
1 parent d680a0c commit 1b281c4
Show file tree
Hide file tree
Showing 6 changed files with 556 additions and 0 deletions.
128 changes: 128 additions & 0 deletions deploy/kubernetes/operator/config/manager/rss-controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: rss-controller
namespace: kube-system
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rss-controller-role
rules:
- apiGroups: [ "" ]
resources: [ "pods" ]
verbs: [ "get", "list", "watch", "delete" ]
- apiGroups: [ "uniffle.apache.org" ]
resources: [ "remoteshuffleservices", "remoteshuffleservices/status" ]
verbs: [ "get", "list", "watch", "update" ]
- apiGroups: [ "admissionregistration.k8s.io" ]
resources: [ "validatingwebhookconfigurations", "mutatingwebhookconfigurations" ]
verbs: [ "get", "list", "watch", "update", "create", "delete" ]
- apiGroups: [ "" ]
resources: [ "configmaps", "secrets", "services", "serviceaccounts" ]
verbs: [ "get", "list", "watch", "update", "create", "delete", "patch" ]
- apiGroups: [ "apps" ]
resources: [ "deployments", "statefulsets" ]
verbs: [ "get", "list", "watch", "update", "create", "delete", "patch" ]
- apiGroups: [ "coordination.k8s.io" ]
resources: [ "leases" ]
verbs: [ "get", "list", "watch", "update", "create", "delete" ]
- apiGroups: [ "" ]
resources: [ "events" ]
verbs: [ "list", "watch", "create", "update", "patch" ]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rss-controller-role-binding
subjects:
- kind: ServiceAccount
name: rss-controller
namespace: kube-system
roleRef:
kind: ClusterRole
name: rss-controller-role
apiGroup: rbac.authorization.k8s.io
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: rss-controller
namespace: kube-system
spec:
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 2
type: RollingUpdate
selector:
matchLabels:
app: rss-controller
replicas: 1
template:
metadata:
labels:
app: rss-controller
spec:
serviceAccountName: rss-controller
containers:
- name: rss-controller
image: ${rss-controller-image}
command:
- "./controller"
args:
- "--v=5"
ports:
- containerPort: 9876
protocol: TCP
imagePullPolicy: "Always"
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
resources:
requests:
cpu: 500m
memory: 1024Mi
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- rss-controller
topologyKey: kubernetes.io/hostname
142 changes: 142 additions & 0 deletions deploy/kubernetes/operator/config/manager/rss-webhook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: rss-webhook
namespace: kube-system
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rss-webhook-role
rules:
- apiGroups: [ "" ]
resources: [ "pods" ]
verbs: [ "get", "list", "watch", "delete" ]
- apiGroups: [ "uniffle.apache.org" ]
resources: [ "remoteshuffleservices", "remoteshuffleservices/status" ]
verbs: [ "get", "list", "watch", "update" ]
- apiGroups: [ "admissionregistration.k8s.io" ]
resources: [ "validatingwebhookconfigurations", "mutatingwebhookconfigurations" ]
verbs: [ "get", "list", "watch", "update", "create", "delete" ]
- apiGroups: [ "" ]
resources: [ "configmaps", "secrets" ]
verbs: [ "get", "list", "watch", "update", "create", "delete" ]
- apiGroups: [ "coordination.k8s.io" ]
resources: [ "leases" ]
verbs: [ "get", "list", "watch", "update", "create", "delete" ]
- apiGroups: [ "" ]
resources: [ "events" ]
verbs: [ "list", "watch", "create", "update", "patch" ]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: rss-webhook-role-binding
subjects:
- kind: ServiceAccount
name: rss-webhook
namespace: kube-system
roleRef:
kind: ClusterRole
name: rss-webhook-role
apiGroup: rbac.authorization.k8s.io
---
kind: Service
apiVersion: v1
metadata:
name: rss-webhook
namespace: kube-system
spec:
type: NodePort
selector:
service: rss-webhook
ports:
- protocol: TCP
port: 443
targetPort: 9876
nodePort: 31777
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: rss-webhook
namespace: kube-system
spec:
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 2
type: RollingUpdate
selector:
matchLabels:
app: rss-webhook
replicas: 1
template:
metadata:
labels:
app: rss-webhook
service: rss-webhook
spec:
serviceAccountName: rss-webhook
containers:
- name: rss-webhook
image: ${rss-webhook-image}
command:
- "./webhook"
args:
- "--ignore-rss=false"
- "--v=4"
ports:
- containerPort: 9876
protocol: TCP
imagePullPolicy: "Always"
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
resources:
requests:
cpu: 500m
memory: 1024Mi
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- rss-webhook
topologyKey: kubernetes.io/hostname
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

---
apiVersion: uniffle.apache.org/v1alpha1
kind: RemoteShuffleService
metadata:
name: rss-full-restart-demo
namespace: kube-system
spec:
configMapName: rss-full-restart-demo
coordinator:
image: "${rss-coordinator-image}"
initContainerImage: "busybox:latest"
rpcNodePort:
- 30001
- 30011
httpNodePort:
- 30002
- 30012
xmxSize: "10G"
configDir: "/data/rssadmin/rss/conf"
replicas: 1
excludeNodesFilePath: "/data/rssadmin/rss/coo/exclude_nodes"
securityContext:
runAsUser: 1000
fsGroup: 1000
logHostPath: "/data/logs/rss/coordinator"
hostPathMounts:
/data/logs/rss/coordinator: /data/rssadmin/rss/logs
shuffleServer:
sync: true
replicas: 3
image: "${rss-shuffle-server-image}"
initContainerImage: "busybox:latest"
upgradeStrategy:
type: "FullRestart"
xmxSize: "10G"
configDir: "/data/rssadmin/rss/conf"
securityContext:
runAsUser: 1000
fsGroup: 1000
logHostPath: "/data/logs/rss/shuffle-server"
hostPathMounts:
/data/logs/rss/shuffle-server: /data/rssadmin/rss/logs
/data/rssenv1/rssdata1: /data1
/data/rssenv1/rssdata2: /data2
/data/rssenv1/rssdata3: /data3
/data/rssenv1/rssdata4: /data4
/data/rssenv1/rssdata5: /data5
/data/rssenv1/rssdata6: /data6
/data/rssenv1/rssdata7: /data7
/data/rssenv1/rssdata8: /data8
/data/rssenv1/rssdata9: /data9
/data/rssenv1/rssdata10: /data10
/data/rssenv1/rssdata11: /data11
/data/rssenv1/rssdata12: /data12
Loading

0 comments on commit 1b281c4

Please sign in to comment.