github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/neon/templates/autoscaler-agent.yaml (about)

     1  apiVersion: v1
     2  kind: ServiceAccount
     3  metadata:
     4    name: autoscaler-agent
     5    namespace: kube-system
     6  ---
     7  apiVersion: rbac.authorization.k8s.io/v1
     8  kind: ClusterRoleBinding
     9  metadata:
    10    name: autoscaler-view
    11  roleRef:
    12    apiGroup: rbac.authorization.k8s.io
    13    kind: ClusterRole
    14    name: view
    15  subjects:
    16  - kind: ServiceAccount
    17    name: autoscaler-agent
    18    namespace: kube-system
    19  ---
    20  apiVersion: rbac.authorization.k8s.io/v1
    21  kind: ClusterRoleBinding
    22  metadata:
    23    name: autoscaler-virtualmachine-editor
    24  roleRef:
    25    apiGroup: rbac.authorization.k8s.io
    26    kind: ClusterRole
    27    name: neonvm-virtualmachine-editor-role
    28  subjects:
    29  - kind: ServiceAccount
    30    name: autoscaler-agent
    31    namespace: kube-system
    32  ---
    33  apiVersion: v1
    34  data:
    35    config.json: |
    36      {
    37        "scaling": {
    38          "requestTimeoutSeconds": 10,
    39          "defaultConfig": {
    40            "loadAverageFractionTarget": 0.9,
    41            "memoryUsageFractionTarget": 0.75
    42          }
    43        },
    44        "informant": {
    45          "serverPort": 10301,
    46          "callbackPort": 10302,
    47          "retryServerMinWaitSeconds": 5,
    48          "retryServerNormalWaitSeconds": 5,
    49          "registerRetrySeconds": 5,
    50          "requestTimeoutSeconds": 1,
    51          "registerTimeoutSeconds": 2,
    52          "downscaleTimeoutSeconds": 2,
    53          "unhealthyAfterSilenceDurationSeconds": 20,
    54          "unhealthyStartupGracePeriodSeconds": 20
    55        },
    56        "monitor": {
    57            "responseTimeoutSeconds": 5
    58        },
    59        "metrics": {
    60          "loadMetricPrefix": "host_",
    61          "requestTimeoutSeconds": 2,
    62          "secondsBetweenRequests": 5
    63        },
    64        "scheduler": {
    65          "schedulerName": "autoscale-scheduler",
    66          "requestTimeoutSeconds": 2,
    67          "requestPort": 10299
    68        },
    69        "dumpState": {
    70          "port": 10300,
    71          "timeoutSeconds": 5
    72        }
    73      }
    74  kind: ConfigMap
    75  metadata:
    76    name: autoscaler-agent-config
    77    namespace: kube-system
    78  ---
    79  apiVersion: apps/v1
    80  kind: DaemonSet
    81  metadata:
    82    name: autoscaler-agent
    83    namespace: kube-system
    84  spec:
    85    selector:
    86      matchLabels:
    87        name: autoscaler-agent
    88    template:
    89      metadata:
    90        labels:
    91          name: autoscaler-agent
    92      spec:
    93        containers:
    94        - env:
    95          - name: K8S_NODE_NAME
    96            valueFrom:
    97              fieldRef:
    98                fieldPath: spec.nodeName
    99          - name: K8S_POD_IP
   100            valueFrom:
   101              fieldRef:
   102                fieldPath: status.podIP
   103          - name: CONFIG_PATH
   104            value: /etc/autoscaler-agent-config/config.json
   105          image: neondatabase/autoscaler-agent:v0.17.0
   106          name: autoscaler-agent
   107          ports:
   108          - containerPort: 9100
   109            name: metrics
   110            protocol: TCP
   111          resources:
   112            limits:
   113              cpu: 100m
   114              memory: 100Mi
   115          volumeMounts:
   116          - mountPath: /etc/autoscaler-agent-config
   117            name: config
   118        serviceAccountName: autoscaler-agent
   119        volumes:
   120        - configMap:
   121            name: autoscaler-agent-config
   122          name: config