aios/tools/hape/hape_conf/k8s/cluster_templates/appmaster/c2.yaml (548 lines of code) (raw):
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: admins.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
schema:
openAPIV3Schema:
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
served: true
storage: true
subresources:
status: {}
names:
kind: Admin
plural: admins
singular: admin
scope: Namespaced
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: controllersmanagers.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: ControllersManager
plural: controllersmanagers
singular: controllersmanager
scope: Namespaced
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: resourceplans.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: ResourcePlan
plural: resourceplans
singular: resourceplan
scope: Namespaced
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: carbonjobs.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: CarbonJob
plural: carbonjobs
singular: carbonjob
scope: Namespaced
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: rollingsets.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: RollingSet
plural: rollingsets
singular: rollingset
scope: Namespaced
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: shardgroups.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: ShardGroup
plural: shardgroups
singular: shardgroup
scope: Namespaced
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: servicepublishers.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: ServicePublisher
plural: servicepublishers
singular: servicepublisher
scope: Namespaced
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: workernodes.carbon.taobao.com
spec:
group: carbon.taobao.com
versions:
- name: v1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
x-kubernetes-preserve-unknown-fields: true
status:
type: object
x-kubernetes-preserve-unknown-fields: true
names:
kind: WorkerNode
plural: workernodes
singular: workernode
scope: Namespaced
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"{{common.c2K8sNamespace}}"}}
name: {{common.c2K8sNamespace}}
spec:
finalizers:
- kubernetes
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"{{common.k8sNamespace}}"}}
name: {{common.k8sNamespace}}
spec:
finalizers:
- kubernetes
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: c2-proxy-admin
namespace: {{common.c2K8sNamespace}}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: c2-admin
namespace: {{common.c2K8sNamespace}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: c2-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: c2-admin-proxy
namespace: {{common.c2K8sNamespace}}
- kind: ServiceAccount
name: c2-admin
namespace: {{common.c2K8sNamespace}}
---
apiVersion: v1
data:
kubeconfig: {{read_file_as_base64(common.kubeConfigPath)}}
kind: Secret
metadata:
name: c2kubeconfig
namespace: {{common.c2K8sNamespace}}
type: Opaque
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: c2
name: c2
namespace: {{ common.c2K8sNamespace }}
spec:
progressDeadlineSeconds: 600
replicas: 1
selector:
matchLabels:
app: c2
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: c2
spec:
containers:
- args:
- '--kubeconfig=/etc/kubeconfig/kubeconfig'
- >-
--controllers=shardgroup,rollingset,worker,publisher,healthcheck,adminmanager,carbonjob
- '--port=9092'
- '--namespace={{common.k8sNamespace}}'
- '--cluster={{common.c2ClusterName}}'
- '--log_dir=/home/admin/c2/logs'
- '--leader-elect-lease-duration=30s'
- '--leader-elect-renew-deadline=25s'
- '--spec:scheduler-name=ack'
- >-
--feature-gates=AdminClearPrivateResources=true,UsePriorityClassName=true,HashLabelValue=true
- '--leader-elect-resource-lock=leases'
command:
- /home/admin/c2/bin/c2-linux-amd64
env:
- name: BUILD_APP_NAME
value: c2
- name: APP_DIR
value: /home/admin/c2
image: '{{common.kubeShardImage}}'
imagePullPolicy: Always
lifecycle: {}
name: c2
resources:
requests:
cpu: '2'
ephemeral-storage: 12Gi
memory: 4Gi
limits:
cpu: '2'
ephemeral-storage: 12Gi
memory: 4Gi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/admin/c2/logs
name: volume-logs
- mountPath: /home/admin/c2/data
name: volume-data
- mountPath: /etc/localtime
name: volume-localtime
- mountPath: /etc/kubeconfig
name: volume-kubeconfig
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: c2-admin
serviceAccountName: c2-admin
terminationGracePeriodSeconds: 30
priority: 100
priorityClassName: hippo-priority-100
volumes:
- hostPath:
path: /tmp/logs
type: ''
name: volume-logs
- hostPath:
path: /tmp/data
type: ''
name: volume-data
- hostPath:
path: /etc/localtime
type: ''
name: volume-localtime
- name: volume-kubeconfig
secret:
defaultMode: 420
secretName: c2kubeconfig
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: carbon-proxy
c2-system-app-name: carbon-proxy
name: c2-proxy
namespace: {{common.c2K8sNamespace}}
spec:
progressDeadlineSeconds: 600
replicas: 1
selector:
matchLabels:
app: c2-proxy
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: c2-proxy
spec:
containers:
- args:
- '--kubeconfig=/etc/kubeconfig/kubeconfig'
- '--cluster={{common.c2ClusterName}}'
- '--port=:8989'
- '--platform=havenask'
- '--ns-route-strategy=config'
- '--ns-route-conf={{common.c2K8sNamespace}}/carbon-proxy-ack-route'
- '--system-namespace={{common.c2K8sNamespace}}'
- '--log_dir=/home/admin/c2/logs'
- '--log_file_backups=20'
- '--log_file_max_size=300'
- '--log-config=/home/admin/c2/etc/access_log.json'
- '--spec:pod-version=v3.0'
- '--spec:scheduler-name=ack'
- '--feature-gates=HashLabelValue=true'
- '--v=5'
- '--log-config=/home/admin/c2/conf/log-config'
command:
- /home/admin/c2/bin/carbon-proxy-linux-amd64
env:
- name: BUILD_APP_NAME
value: c2
- name: APP_DIR
value: /home/admin/c2
image: '{{common.kubeShardImage}}'
imagePullPolicy: Always
lifecycle: {}
name: c2
resources:
requests:
cpu: '2'
ephemeral-storage: 12Gi
memory: 4Gi
limits:
cpu: '2'
ephemeral-storage: 12Gi
memory: 4Gi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/admin/c2/logs
name: volume-1705477084173
- mountPath: /home/admin/c2/data
name: volume-1705477109458
- mountPath: /etc/localtime
name: volume-localtime
- mountPath: /etc/kubeconfig
name: volume-kubeconfig
- mountPath: /home/admin/c2/conf
name: volume-c2proxyconfig
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
priority: 100
priorityClassName: hippo-priority-100
volumes:
- hostPath:
path: /tmp/logs
type: ''
name: volume-1705477084173
- hostPath:
path: /tmp/data
type: ''
name: volume-1705477109458
- hostPath:
path: /etc/localtime
type: ''
name: volume-localtime
- name: volume-kubeconfig
secret:
defaultMode: 420
secretName: c2kubeconfig
- configMap:
defaultMode: 420
name: c2proxy-config
name: volume-c2proxyconfig
---
apiVersion: v1
data:
log-config: |
{
"access": {
"filename": "./logs/access.log",
"maxsize": 300,
"maxbackups": 20
}
}
kind: ConfigMap
metadata:
name: c2proxy-config
namespace: {{common.c2K8sNamespace}}
---
apiVersion: v1
data:
namespace-router: '{"defaults": ["{{common.k8sNamespace}}"]}'
kind: ConfigMap
metadata:
labels:
app.c2.io/configs: proxy
name: carbon-proxy-ack-route
namespace: {{common.c2K8sNamespace}}
---
apiVersion: v1
kind: Service
metadata:
name: c2proxy-service
namespace: {{common.c2K8sNamespace}}
spec:
clusterIP: None
clusterIPs:
- None
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: c2proxy-port
port: 8989
protocol: TCP
targetPort: 8989
selector:
app: c2-proxy
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: hippo-priority-100
value: 100
description: "hippo-priority-100"
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: hippo-priority-0
value: 0
description: "hippo-priority-0"