I've attached the files here
operator ---
values.yaml
image:
repository: neo4j
tag: latest
pullPolicy: Always
replicaCount: 1
serviceAccount:
create: true
name: neo4j-service-account
rbac:
create: true
hpa:
enabled: true
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
service:
name: neo4j-service
type: ClusterIP
ports:
- name: http
port: 7474
targetPort: 7474
- name: bolt
port: 7687
targetPort: 7687
neo4j:
version: latest
cluster:
mode: causal
size: 1
env:
- name: WATCH_NAMESPACE
value: ""
- name: LOG_LEVEL
value: "DEBUG"
- name: NEO4J_ACCEPT_LICENSE_AGREEMENT
value: "yes"
resources:
requests:
cpu: "50m"
memory: "512Mi"
limits:
cpu: "500m"
memory: "1024Mi"
pvc:
enabled: true
size: 1Gi
storageClass: "longhorn"
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: neo4j-operator-role
rules:
- apiGroups: [""]
resources: ["*"]
verbs: ["*"]
- apiGroups: ["apps"]
resources: ["*"]
verbs: ["*"]
- apiGroups: ["monitoring.coreos.com"]
resources: ["*"]
verbs: ["*"]
- apiGroups: ["database.neo4j.org"]
resources: ["*"]
verbs: ["*"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: neo4j-operator-rolebinding
subjects:
- kind: ServiceAccount
name: neo4j-service-account
namespace: neojcluster
roleRef:
kind: ClusterRole
name: neo4j-operator-role
apiGroup: rbac.authorization.k8s.io
apiVersion: apps/v1
kind: Deployment
metadata:
name: neo4j-operator
namespace: neojcluster
spec:
replicas: 1
selector:
matchLabels:
app: neo4j-operator
template:
metadata:
labels:
app: neo4j-operator
spec:
serviceAccountName: neo4j-service-account
containers:
- name: neo4j
image: "neo4j:latest" # Using the official Neo4j image
imagePullPolicy: Always
env:
- name: WATCH_NAMESPACES
value: "neojcluster"
- name: LOG_LEVEL
value: "DEBUG"
- name: NEO4J_ACCEPT_LICENSE_AGREEMENT
value: "yes"
ports:
- containerPort: 7474
- containerPort: 7687
volumeMounts:
- name: data
mountPath: /data
- name: logs
mountPath: /logs
volumes:
- name: data
persistentVolumeClaim:
claimName: neo4j-pvc
- name: logs
persistentVolumeClaim:
claimName: neo4j-pvc
apiVersion: v1
kind: ConfigMap
metadata:
name: neo4j-operator-config
namespace: neojcluster
data:
key1: value1
key2: value2
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: neo4j-hpa
namespace: {{ .Release.Namespace }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: neo4j-operator
minReplicas: {{ .Values.hpa.minReplicas }}
maxReplicas: {{ .Values.hpa.maxReplicas }}
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.hpa.targetCPUUtilizationPercentage }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: neo4j-pvc
namespace: {{ .Release.Namespace }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.pvc.size }}
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.service.name }}
namespace: {{ .Release.Namespace }}
spec:
selector:
app: neo4j
ports:
{{- range .Values.service.ports }}
- protocol: TCP
port: {{ .port }}
targetPort: {{ .targetPort }}
name: {{ .name }}
{{- end }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.serviceAccount.name }}
namespace: {{ .Release.Namespace }}
For now I am trying to test it from official image and I got error .
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 18m (x144 over 12h) default-scheduler 0/2 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/2 nodes are available: 2 Preemption is not helpful for scheduling.
root@master:~/neo4j-helm-chart/neo4j-operator#
My operator pod is not running .
And if it running then the cr.yaml that I want to test so that it create one more pod and it's services .
apiVersion: database.neo4j.org/v1alpha1
kind: Neo4jCluster
metadata:
name: neo4jclusters
namespace: neojcluster
spec:
image: "neo4j:latest" # Official image version
adminPassword: tatacomm
coreReplicas: 3
readReplicaReplicas: 1
resources:
requests:
cpu: "50m"
memory: "512Mi"
limits:
cpu: "500m"
memory: "1024Mi"
persistence:
enabled: true
size: 1Gi
storageClass: ""