Skip to content
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
3 changes: 3 additions & 0 deletions deploy/base/config/atuin.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ATUIN_HOST=0.0.0.0
ATUIN_PORT=8888
ATUIN_OPEN_REGISTRATION=true
52 changes: 52 additions & 0 deletions deploy/base/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: atuin
spec:
replicas: 1
template:
spec:
containers:
- name: atuin
image: ghcr.io/atuinsh/atuin:latest
args:
- server
- start
envFrom:
- configMapRef:
name: atuin
- secretRef:
name: atuin
ports:
- containerPort: 8888
startupProbe:
httpGet:
path: /healthz
port: 8888
failureThreshold: 30
periodSeconds: 10
livenessProbe:
httpGet:
path: /healthz
port: 8888
initialDelaySeconds: 3
periodSeconds: 3
readinessProbe:
tcpSocket:
port: 8888
initialDelaySeconds: 15
periodSeconds: 10
resources:
limits:
cpu: 250m
memory: 1Gi
requests:
cpu: 250m
memory: 1Gi
volumeMounts:
- mountPath: /config
name: atuin-data
volumes:
- name: atuin-data
emptyDir: {}
24 changes: 24 additions & 0 deletions deploy/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: atuin

labels:
- pairs:
app: atuin
includeSelectors: true

configMapGenerator:
- name: atuin
envs:
- config/atuin.env

secretGenerator:
- name: atuin
envs:
- secrets/atuin.env

resources:
- namespace.yaml
- deployment.yaml
- service.yaml
4 changes: 4 additions & 0 deletions deploy/base/namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: atuin
1 change: 1 addition & 0 deletions deploy/base/secrets/atuin.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ATUIN_DB_URI=postgres://atuin:seriously-insecure@postgres/atuin
11 changes: 11 additions & 0 deletions deploy/base/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
apiVersion: v1
kind: Service
metadata:
name: atuin
spec:
type: ClusterIP
ports:
- name: atuin
port: 8888
targetPort: 8888
3 changes: 3 additions & 0 deletions deploy/overlays/example/config/atuin.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ATUIN_HOST=0.0.0.0
ATUIN_PORT=8888
ATUIN_OPEN_REGISTRATION=false
25 changes: 25 additions & 0 deletions deploy/overlays/example/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: atuin
annotations:
haproxy.org/server-crt: atuin-domain-tld-cert-tls
cert-manager.io/cluster-issuer: some-issuer
spec:
ingressClassName: haproxy
tls:
- hosts:
- atuin.domain.tld
secretName: atuin-domain-tld-cert-tls
rules:
- host: atuin.domain.tld
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: atuin
port:
number: 8888
44 changes: 44 additions & 0 deletions deploy/overlays/example/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: atuin

labels:
- pairs:
app: atuin
includeSelectors: true

configMapGenerator:
- name: atuin
behavior: replace
envs:
- config/atuin.env

patches:
- patch: |-
$patch: delete
apiVersion: v1
kind: Secret
metadata:
name: atuin
- patch: |-
- op: replace
path: /spec/template/spec/volumes/0
value:
name: atuin-data
persistentVolumeClaim:
claimName: atuin-data
- op: add
path: /spec/template/spec/containers/0/volumeMounts/0/subPath
value: atuin/config
target:
kind: Deployment
name: atuin

resources:
- ../../base
- nfs-pv.yml
- nfs-pvc.yml
- ingress.yaml
- serviceaccount.yaml
- secrets.yaml
23 changes: 23 additions & 0 deletions deploy/overlays/example/nfs-pv.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: atuin-data
annotations:
pv.kubernetes.io/provisioned-by: nfs.csi.k8s.io
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Mi
storageClassName: nfs-csi
claimRef:
namespace: atuin
name: atuin-data
csi:
driver: nfs.csi.k8s.io
# volumeHandle format: {nfs-server-address}#{sub-dir-name}#{share-name}
# make sure this value is unique for every share in the cluster
volumeHandle: some-nfs-server.domain.tld#atuin#/srv/nfs/k8s
volumeAttributes:
server: some-nfs-server.domain.tld
share: /srv/nfs/k8s
12 changes: 12 additions & 0 deletions deploy/overlays/example/nfs-pvc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: atuin-data
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Mi
volumeName: atuin-data
storageClassName: nfs-csi
35 changes: 35 additions & 0 deletions deploy/overlays/example/secrets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: atuin
spec:
provider:
vault:
server: https://some.vault.com
path: kv
version: v2
auth:
kubernetes:
mountPath: k8s-mount-path
role: atuin
serviceAccountRef:
name: atuin
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: atuin
spec:
refreshInterval: "15s"
secretStoreRef:
name: atuin
kind: SecretStore
target:
name: atuin
creationPolicy: Owner
data:
- secretKey: ATUIN_DB_URI
remoteRef:
key: atuin
property: ATUIN_DB_URI
17 changes: 17 additions & 0 deletions deploy/overlays/example/secrets/bao-config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash
export VAULT_TOKEN="some-vault-token"
export VAULT_ADDR="https://some.vault.com"

bao policy write atuin - <<EOF
path "kv/data/atuin" {
capabilities = ["read", "list"]
}
EOF

bao write auth/k8-rwx-dev/role/atuin \
bound_service_account_names=atuin \
bound_service_account_namespaces=atuin \
policies=atuin \
ttl=24h

bao kv put kv/atuin @secret.json
3 changes: 3 additions & 0 deletions deploy/overlays/example/secrets/secret.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"ATUIN_DB_URI": "postgres://atuin:seriously-insecure@postgres/atuin"
}
5 changes: 5 additions & 0 deletions deploy/overlays/example/serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: atuin