Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ai-telemetry skeleton folders and zookeeper #547

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions ai-telemetry/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- zookeeper
30 changes: 30 additions & 0 deletions ai-telemetry/base/zookeeper/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: zookeeper-scripts
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
data:
init-certs.sh: |-
#!/bin/bash
setup.sh: |-
#!/bin/bash

# Execute entrypoint as usual after obtaining ZOO_SERVER_ID
# check ZOO_SERVER_ID in persistent volume via myid
# if not present, set based on POD hostname
if [[ -f "/bitnami/zookeeper/data/myid" ]]; then
export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)"
else
HOSTNAME="$(hostname -s)"
if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then
ORD=${BASH_REMATCH[2]}
export ZOO_SERVER_ID="$((ORD + 1 ))"
else
echo "Failed to get index from hostname $HOSTNAME"
exit 1
fi
fi
exec /entrypoint.sh /run.sh
10 changes: 10 additions & 0 deletions ai-telemetry/base/zookeeper/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
RH-csaggin marked this conversation as resolved.
Show resolved Hide resolved
namespace: zookeeper
resources:
- networkpolicy.yaml
- configmap.yaml
- service-headless.yaml
- service.yaml
- serviceaccount.yaml
- statefulset.yaml
30 changes: 30 additions & 0 deletions ai-telemetry/base/zookeeper/networkpolicy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: zookeeper
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
spec:
podSelector:
matchLabels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
policyTypes:
- Ingress
- Egress
egress:
- {}
ingress:
# Allow inbound connections to ZooKeeper
- ports:
- port: 2181
# Allow internal communications between nodes
- ports:
- port: 2888
- port: 3888
from:
- podSelector:
matchLabels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
26 changes: 26 additions & 0 deletions ai-telemetry/base/zookeeper/service-headless.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: v1
kind: Service
metadata:
name: zookeeper-headless
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: tcp-client
port: 2181
targetPort: client
- name: tcp-follower
port: 2888
targetPort: follower
- name: tcp-election
port: 3888
targetPort: election
selector:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
19 changes: 19 additions & 0 deletions ai-telemetry/base/zookeeper/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: v1
kind: Service
metadata:
name: zookeeper
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
spec:
type: ClusterIP
sessionAffinity: None
ports:
- name: tcp-client
port: 2181
targetPort: client
selector:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
10 changes: 10 additions & 0 deletions ai-telemetry/base/zookeeper/serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: zookeeper
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
role: zookeeper
automountServiceAccountToken: false
178 changes: 178 additions & 0 deletions ai-telemetry/base/zookeeper/statefulset.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zookeeper
annotations:
template.alpha.openshift.io/wait-for-ready: "true"
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
role: zookeeper
spec:
replicas: 3
revisionHistoryLimit: 10
podManagementPolicy: Parallel
selector:
matchLabels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
serviceName: zookeeper-headless
updateStrategy:
rollingUpdate: {}
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
spec:
enableServiceLinks: true
serviceAccountName: zookeeper
automountServiceAccountToken: false
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/instance: zookeeper
app.kubernetes.io/name: zookeeper
app.kubernetes.io/component: zookeeper
topologyKey: kubernetes.io/hostname
weight: 1
securityContext:
fsGroupChangePolicy: Always
containers:
- name: zookeeper
image: docker.io/bitnami/zookeeper:3.9.2-debian-12-r12
imagePullPolicy: "IfNotPresent"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
command:
- /scripts/setup.sh
resources:
limits:
cpu: '1'
ephemeral-storage: 2Gi
memory: 1Gi
requests:
cpu: 250m
ephemeral-storage: 50Mi
memory: 256Mi
env:
- name: BITNAMI_DEBUG
value: "false"
- name: ZOO_DATA_LOG_DIR
value: ""
- name: ZOO_PORT_NUMBER
value: "2181"
- name: ZOO_TICK_TIME
value: "2000"
- name: ZOO_INIT_LIMIT
value: "10"
- name: ZOO_SYNC_LIMIT
value: "5"
- name: ZOO_PRE_ALLOC_SIZE
value: "65536"
- name: ZOO_SNAPCOUNT
value: "100000"
- name: ZOO_MAX_CLIENT_CNXNS
value: "60"
- name: ZOO_4LW_COMMANDS_WHITELIST
value: "srvr, mntr, ruok"
- name: ZOO_LISTEN_ALLIPS_ENABLED
value: "no"
- name: ZOO_AUTOPURGE_INTERVAL
value: "1"
- name: ZOO_AUTOPURGE_RETAIN_COUNT
value: "10"
- name: ZOO_MAX_SESSION_TIMEOUT
value: "40000"
- name: ZOO_SERVERS
value: zookeeper-0.zookeeper-headless.ai-telemetry.svc.cluster.local:2888:3888::1
- name: ZOO_ENABLE_AUTH
value: "no"
- name: ZOO_ENABLE_QUORUM_AUTH
value: "no"
- name: ZOO_HEAP_SIZE
value: "1024"
- name: ZOO_LOG_LEVEL
value: "ERROR"
- name: ALLOW_ANONYMOUS_LOGIN
value: "yes"
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: ZOO_ADMIN_SERVER_PORT_NUMBER
value: "8080"
ports:
- name: client
containerPort: 2181
- name: http-admin
containerPort: 8080
livenessProbe:
failureThreshold: 6
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
exec:
command:
- /bin/bash
- -ec
- ZOO_HC_TIMEOUT=3 /opt/bitnami/scripts/zookeeper/healthcheck.sh
readinessProbe:
failureThreshold: 6
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
exec:
command:
- /bin/bash
- -ec
- ZOO_HC_TIMEOUT=2 /opt/bitnami/scripts/zookeeper/healthcheck.sh
volumeMounts:
- name: empty-dir
mountPath: /tmp
subPath: tmp-dir
- name: empty-dir
mountPath: /opt/bitnami/zookeeper/conf
subPath: app-conf-dir
- name: empty-dir
mountPath: /opt/bitnami/zookeeper/logs
subPath: app-logs-dir
- name: scripts
mountPath: /scripts/setup.sh
subPath: setup.sh
- name: data
mountPath: /bitnami/zookeeper
volumes:
- name: empty-dir
emptyDir: {}
- name: scripts
configMap:
name: zookeeper-scripts
defaultMode: 493
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "10Gi"
4 changes: 4 additions & 0 deletions ai-telemetry/overlays/nerc-ocp-obs/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base