diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..85c9d54 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,9 @@ +.PHONY: install-chartsnap snapshot update-snapshots +install-chartsnap: + helm plugin install https://github.com/jlandowner/helm-chartsnap + +snapshot: + helm chartsnap -c ../ -f . + +update-snapshots: + helm chartsnap -c ../ -f . -u diff --git a/test/__snapshots__/test_ingress.snap b/test/__snapshots__/test_ingress.snap new file mode 100644 index 0000000..0415d0b --- /dev/null +++ b/test/__snapshots__/test_ingress.snap @@ -0,0 +1,159 @@ +# chartsnap: snapshot_version=v3 +--- +# Source: ollama/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +automountServiceAccountToken: true +--- +# Source: ollama/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 11434 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap +--- +# Source: ollama/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + template: + metadata: + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + spec: + serviceAccountName: chartsnap-ollama + securityContext: {} + containers: + - name: ollama + securityContext: {} + image: "ollama/ollama:0.5.7" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 11434 + protocol: TCP + env: + envFrom: + args: + resources: + limits: {} + requests: {} + volumeMounts: + - name: ollama-data + mountPath: /root/.ollama + livenessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 60 + periodSeconds: 10 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 6 + readinessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 3 + successThreshold: 1 + failureThreshold: 6 + volumes: + - name: ollama-data + emptyDir: {} +--- +# Source: ollama/templates/ingress.yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + annotations: + alb.ingress.kubernetes.io/group.name: ollama +spec: + ingressClassName: alb + rules: + - host: "otwld.github.io" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: chartsnap-ollama + port: + number: 11434 +--- +# Source: ollama/templates/tests/test-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "chartsnap-ollama-test-connection" + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['chartsnap-ollama:11434'] + restartPolicy: Never diff --git a/test/__snapshots__/test_models.values.snap b/test/__snapshots__/test_models.values.snap new file mode 100644 index 0000000..3b892ab --- /dev/null +++ b/test/__snapshots__/test_models.values.snap @@ -0,0 +1,138 @@ +# chartsnap: snapshot_version=v3 +--- +# Source: ollama/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +automountServiceAccountToken: true +--- +# Source: ollama/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 11434 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap +--- +# Source: ollama/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + template: + metadata: + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + spec: + serviceAccountName: chartsnap-ollama + securityContext: {} + containers: + - name: ollama + securityContext: {} + image: "ollama/ollama:0.5.7" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 11434 + protocol: TCP + env: + envFrom: + args: + resources: + limits: {} + requests: {} + volumeMounts: + - name: ollama-data + mountPath: /root/.ollama + livenessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 60 + periodSeconds: 10 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 6 + readinessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 3 + successThreshold: 1 + failureThreshold: 6 + lifecycle: + postStart: + exec: + command: + - /bin/sh + - -c + - "while ! /bin/ollama ps > /dev/null 2>&1; do\n sleep 5\ndone\necho \"moondream\" | xargs -n1 /bin/ollama pull \necho \"moondream\" | xargs -n1 /bin/ollama run\n" + volumes: + - name: ollama-data + emptyDir: {} +--- +# Source: ollama/templates/tests/test-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "chartsnap-ollama-test-connection" + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['chartsnap-ollama:11434'] + restartPolicy: Never diff --git a/test/__snapshots__/test_volume.values.snap b/test/__snapshots__/test_volume.values.snap new file mode 100644 index 0000000..8ef2c42 --- /dev/null +++ b/test/__snapshots__/test_volume.values.snap @@ -0,0 +1,153 @@ +# chartsnap: snapshot_version=v3 +--- +# Source: ollama/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +automountServiceAccountToken: true +--- +# Source: ollama/templates/pvc.yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + name: chartsnap-ollama + namespace: default +spec: + accessModes: + - ReadWriteOnce + storageClassName: "aws-ebs-gp3" + resources: + requests: + storage: "50Gi" +--- +# Source: ollama/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 11434 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap +--- +# Source: ollama/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + template: + metadata: + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + spec: + serviceAccountName: chartsnap-ollama + securityContext: {} + containers: + - name: ollama + securityContext: {} + image: "ollama/ollama:0.5.7" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 11434 + protocol: TCP + env: + envFrom: + args: + resources: + limits: {} + requests: {} + volumeMounts: + - name: ollama-data + mountPath: /root/.ollama + subPath: sub-directory/ + livenessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 60 + periodSeconds: 10 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 6 + readinessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 3 + successThreshold: 1 + failureThreshold: 6 + volumes: + - name: ollama-data + persistentVolumeClaim: + claimName: chartsnap-ollama +--- +# Source: ollama/templates/tests/test-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "chartsnap-ollama-test-connection" + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['chartsnap-ollama:11434'] + restartPolicy: Never diff --git a/test/__snapshots__/test_volume_existingClaim.values.snap b/test/__snapshots__/test_volume_existingClaim.values.snap new file mode 100644 index 0000000..07b571d --- /dev/null +++ b/test/__snapshots__/test_volume_existingClaim.values.snap @@ -0,0 +1,132 @@ +# chartsnap: snapshot_version=v3 +--- +# Source: ollama/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +automountServiceAccountToken: true +--- +# Source: ollama/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 11434 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap +--- +# Source: ollama/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: chartsnap-ollama + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + template: + metadata: + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + spec: + serviceAccountName: chartsnap-ollama + securityContext: {} + containers: + - name: ollama + securityContext: {} + image: "ollama/ollama:0.5.7" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 11434 + protocol: TCP + env: + envFrom: + args: + resources: + limits: {} + requests: {} + volumeMounts: + - name: ollama-data + mountPath: /root/.ollama + livenessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 60 + periodSeconds: 10 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 6 + readinessProbe: + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 3 + successThreshold: 1 + failureThreshold: 6 + volumes: + - name: ollama-data + persistentVolumeClaim: + claimName: existing-pvc +--- +# Source: ollama/templates/tests/test-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "chartsnap-ollama-test-connection" + namespace: default + labels: + helm.sh/chart: ollama-1.4.1 + app.kubernetes.io/name: ollama + app.kubernetes.io/instance: chartsnap + app.kubernetes.io/version: "0.5.7" + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['chartsnap-ollama:11434'] + restartPolicy: Never diff --git a/test/test_ingress.yaml b/test/test_ingress.yaml new file mode 100644 index 0000000..3edd226 --- /dev/null +++ b/test/test_ingress.yaml @@ -0,0 +1,10 @@ +ingress: + enabled: true + className: alb + annotations: + alb.ingress.kubernetes.io/group.name: ollama + hosts: + - host: otwld.github.io + paths: + - path: / + pathType: Prefix \ No newline at end of file diff --git a/test/test_models.values.yaml b/test/test_models.values.yaml new file mode 100644 index 0000000..95e5849 --- /dev/null +++ b/test/test_models.values.yaml @@ -0,0 +1,6 @@ +ollama: + models: + pull: + - moondream + run: + - moondream diff --git a/test/test_volume.values.yaml b/test/test_volume.values.yaml new file mode 100644 index 0000000..b16aff7 --- /dev/null +++ b/test/test_volume.values.yaml @@ -0,0 +1,5 @@ +persistentVolume: + enabled: true + size: 50Gi + storageClass: aws-ebs-gp3 + subPath: sub-directory/ \ No newline at end of file diff --git a/test/test_volume_existingClaim.values.yaml b/test/test_volume_existingClaim.values.yaml new file mode 100644 index 0000000..6107802 --- /dev/null +++ b/test/test_volume_existingClaim.values.yaml @@ -0,0 +1,3 @@ +persistentVolume: + enabled: true + existingClaim: existing-pvc \ No newline at end of file