Files
Bitwarden_kube/helm/manifest.dryrun.yaml
T
2024-06-19 14:27:39 +01:00

1548 lines
43 KiB
YAML

---
# Source: self-host/templates/pre-install-secret-keys.yaml
apiVersion: v1
kind: Secret
metadata:
name: release-name-self-host-secretkeys
namespace: default
data:
globalSettings__internalIdentityKey: "aUZ3STVRREJ0MDBSSHpRUHVCV0RHWmM0ODBib0RNR3BOdUxPME1HcXlWMHQxTGI3MGdLVlZLdUlkOExhNzhTSA=="
globalSettings__oidcIdentityClientKey: "UkdmcVR1TlZDNUZ5VjU5SXgyUjhQaTZFSFg3THlCa1hFSHdqZU9MblBRVXBVWDI1NXNGZWlJUmMzQlFlSHFBNQ=="
globalSettings__duo__aKey: "YTBhYmxyQ3JiQzZMUTJxdGE5UjZ2VHpIbkJ3VjExWmNJRW9TdXlpVllURzRjVDhyMTdydExoQ2xPZEc0c3lXTg=="
---
# Source: self-host/templates/volumes.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: default
name: release-name-self-host-dataprotection
labels:
app.kubernetes.io/component: dataprotection
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
accessModes:
- ReadWriteMany
storageClassName: shared-storage
resources:
requests:
storage: 1Gi
---
# Source: self-host/templates/volumes.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: default
name: release-name-self-host-licenses
labels:
app.kubernetes.io/component: licenses
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
accessModes:
- ReadWriteMany
storageClassName: shared-storage
resources:
requests:
storage: 1Gi
---
# Source: self-host/templates/volumes.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: default
name: release-name-self-host-attachments
labels:
app.kubernetes.io/component: attachments
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
accessModes:
- ReadWriteMany
storageClassName: shared-storage
resources:
requests:
storage: 1Gi
#################
# MSSQL Volumes #
#################
---
# Source: self-host/templates/volumes.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: default
name: release-name-self-host-mssqllog
labels:
app.kubernetes.io/component: mssql-log
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
accessModes:
- ReadWriteMany
storageClassName: shared-storage
resources:
requests:
storage: 10Gi
---
# Source: self-host/templates/volumes.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: default
name: release-name-self-host-mssqlbackups
labels:
app.kubernetes.io/component: mssql-backups
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
accessModes:
- ReadWriteMany
storageClassName: shared-storage
resources:
requests:
storage: 1Gi
---
# Source: self-host/templates/volumes.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
namespace: default
name: release-name-self-host-mssqldata
labels:
app.kubernetes.io/component: mssql-data
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
accessModes:
- ReadWriteMany
storageClassName: shared-storage
resources:
requests:
storage: 10Gi
---
# Source: self-host/templates/admin.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-admin
namespace: default
labels:
app.kubernetes.io/component: admin
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-admin
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/api.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-api
namespace: default
labels:
app.kubernetes.io/component: api
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-api
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/attachments.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-attachments
namespace: default
labels:
app.kubernetes.io/component: attachments
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-attachments
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/events.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-events
namespace: default
labels:
app.kubernetes.io/component: events
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-events
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/icons.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-icons
namespace: default
labels:
app.kubernetes.io/component: icons
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-icons
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/identity.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-identity
namespace: default
labels:
app.kubernetes.io/component: identity
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-identity
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/mssql.yaml
kind: Service
apiVersion: v1
metadata:
name: release-name-self-host-mssql
labels:
app.kubernetes.io/component: mssql
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
type: ClusterIP
ports:
- name: http-port
port: 1433
targetPort: 1433
selector:
app: release-name-self-host-mssql
---
# Source: self-host/templates/notifications.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-notifications
namespace: default
labels:
app.kubernetes.io/component: notifications
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-notifications
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/sso.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-sso
namespace: default
labels:
app.kubernetes.io/component: sso
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-sso
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/web.yaml
apiVersion: v1
kind: Service
metadata:
name: release-name-self-host-web
namespace: default
labels:
app.kubernetes.io/component: web
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
selector:
app: release-name-self-host-web
ports:
- port: 5000
targetPort: 5000
---
# Source: self-host/templates/admin.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-admin
namespace: default
labels:
app.kubernetes.io/component: admin
app: release-name-self-host-admin
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-admin
template:
metadata:
labels:
app.kubernetes.io/component: admin
app: release-name-self-host-admin
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-admin
image: "bitwarden/admin:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
- name: dataprotection
mountPath: /etc/bitwarden/core/aspnet-dataprotection
- name: licenses
mountPath: /etc/bitwarden/core/licenses
securityContext:
null
volumes:
- name: dataprotection
persistentVolumeClaim:
claimName: release-name-self-host-dataprotection
- name: licenses
persistentVolumeClaim:
claimName: release-name-self-host-licenses
---
# Source: self-host/templates/api.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-api
namespace: default
labels:
app: release-name-self-host-api
app.kubernetes.io/component: api
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-api
template:
metadata:
labels:
app: release-name-self-host-api
app.kubernetes.io/component: api
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-api
image: "bitwarden/api:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 128Mi
volumeMounts:
- name: attachments
mountPath: /etc/bitwarden/core/attachments
- name: dataprotection
mountPath: /etc/bitwarden/core/aspnet-dataprotection
- name: licenses
mountPath: /etc/bitwarden/core/licenses
securityContext:
null
volumes:
- name: dataprotection
persistentVolumeClaim:
claimName: release-name-self-host-dataprotection
- name: attachments
persistentVolumeClaim:
claimName: release-name-self-host-attachments
- name: licenses
persistentVolumeClaim:
claimName: release-name-self-host-licenses
---
# Source: self-host/templates/attachments.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-attachments
namespace: default
labels:
app: release-name-self-host-attachments
app.kubernetes.io/component: attachments
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-attachments
template:
metadata:
labels:
app: release-name-self-host-attachments
app.kubernetes.io/component: attachments
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-attachments
image: "bitwarden/attachments:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
- name: attachments
mountPath: /etc/bitwarden/core/attachments
securityContext:
null
volumes:
- name: attachments
persistentVolumeClaim:
claimName: release-name-self-host-attachments
---
# Source: self-host/templates/events.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-events
namespace: default
labels:
app: release-name-self-host-events
app.kubernetes.io/component: events
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-events
template:
metadata:
labels:
app: release-name-self-host-events
app.kubernetes.io/component: events
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-events
image: "bitwarden/events:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
securityContext:
null
volumes:
---
# Source: self-host/templates/icons.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-icons
namespace: default
labels:
app: release-name-self-host-icons
app.kubernetes.io/component: icons
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-icons
template:
metadata:
labels:
app: release-name-self-host-icons
app.kubernetes.io/component: icons
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-icons
image: "bitwarden/icons:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
volumeMounts:
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
securityContext:
null
volumes:
---
# Source: self-host/templates/identity.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-identity
namespace: default
labels:
app: release-name-self-host-identity
app.kubernetes.io/component: identity
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-identity
template:
metadata:
labels:
app: release-name-self-host-identity
app.kubernetes.io/component: identity
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-identity
image: "bitwarden/identity:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
- secretRef:
name: release-name-identity-cert-password
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 128Mi
volumeMounts:
- name: identity
mountPath: /etc/bitwarden/identity
- name: dataprotection
mountPath: /etc/bitwarden/core/aspnet-dataprotection
- name: licenses
mountPath: /etc/bitwarden/core/licenses
securityContext:
null
volumes:
- name: identity
secret:
secretName: release-name-identity-cert
- name: dataprotection
persistentVolumeClaim:
claimName: release-name-self-host-dataprotection
- name: licenses
persistentVolumeClaim:
claimName: release-name-self-host-licenses
---
# Source: self-host/templates/notifications.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-notifications
namespace: default
labels:
app: release-name-self-host-notifications
app.kubernetes.io/component: notifications
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-notifications
template:
metadata:
labels:
app: release-name-self-host-notifications
app.kubernetes.io/component: notifications
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-notifications
image: "bitwarden/notifications:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
securityContext:
null
volumes:
---
# Source: self-host/templates/sso.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-sso
namespace: default
labels:
app: release-name-self-host-sso
app.kubernetes.io/component: sso
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-sso
template:
metadata:
labels:
app: release-name-self-host-sso
app.kubernetes.io/component: sso
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-sso
image: "bitwarden/sso:2024.2.3"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-identity-cert-password
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /alive
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
- name: identity
mountPath: /etc/bitwarden/identity
- name: dataprotection
mountPath: /etc/bitwarden/core/aspnet-dataprotection
- name: licenses
mountPath: /etc/bitwarden/core/licenses
securityContext:
null
volumes:
- name: identity
secret:
secretName: release-name-identity-cert
- name: dataprotection
persistentVolumeClaim:
claimName: release-name-self-host-dataprotection
- name: licenses
persistentVolumeClaim:
claimName: release-name-self-host-licenses
---
# Source: self-host/templates/web.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: release-name-self-host-web
namespace: default
labels:
app: release-name-self-host-web
app.kubernetes.io/component: web
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
replicas: 1
strategy:
type: "RollingUpdate"
selector:
matchLabels:
app: release-name-self-host-web
template:
metadata:
labels:
app: release-name-self-host-web
app.kubernetes.io/component: web
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-web
image: "bitwarden/web:2024.2.5"
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-self-host-secretkeys
- secretRef:
name: release-name-sql-connection-string
env:
- name: ASPNETCORE_URLS
value: http://+:5000
livenessProbe:
httpGet:
path: /
port: 5000
initialDelaySeconds: 180
ports:
- containerPort: 5000
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
- name: web
mountPath: /etc/bitwarden/web
securityContext:
null
volumes:
- name: web
configMap:
name: release-name-config-map-web
---
# Source: self-host/templates/mssql.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: release-name-self-host-mssql
namespace: default
labels:
app: release-name-self-host-mssql
app.kubernetes.io/component: mssql
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
serviceName: release-name-self-host-mssql
replicas: 1
updateStrategy:
type: "OnDelete"
selector:
matchLabels:
app: release-name-self-host-mssql
template:
metadata:
labels:
app: release-name-self-host-mssql
app.kubernetes.io/component: mssql
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
containers:
- name: release-name-self-host-mssql
image: "mcr.microsoft.com/mssql/server:2022-CU11-ubuntu-22.04"
imagePullPolicy: Always
resources:
limits:
cpu: 500m
memory: 2G
requests:
cpu: 100m
memory: 2G
envFrom:
- configMapRef:
name: release-name-config-map
- secretRef:
name: "custom-secret"
- secretRef:
name: release-name-sql-connection-string
ports:
- name: mssql
containerPort: 1433
volumeMounts:
- name: mssql-data
mountPath: /var/opt/mssql/data
- name: mssql-log
mountPath: /var/opt/mssql/log
- name: mssql-backups
mountPath: /var/opt/mssql/backups
livenessProbe:
tcpSocket:
port: mssql
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
readinessProbe:
tcpSocket:
port: mssql
initialDelaySeconds: 5
periodSeconds: 2
timeoutSeconds: 1
startupProbe:
exec:
command:
- '/bin/sh'
- '-c'
- '/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SA_PASSWORD} -Q "SELECT 1" || exit 1'
initialDelaySeconds: 120
periodSeconds: 10
timeoutSeconds: 3
enableServiceLinks: false
volumes:
- name: mssql-data
persistentVolumeClaim:
claimName: release-name-self-host-mssqldata
- name: mssql-log
persistentVolumeClaim:
claimName: release-name-self-host-mssqllog
- name: mssql-backups
persistentVolumeClaim:
claimName: release-name-self-host-mssqlbackups
---
# Source: self-host/templates/ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: release-name-self-host-ingress
namespace: default
annotations:
labels:
app.kubernetes.io/component: ingress
app.kubernetes.io/name: self-host
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/instance: release-name
helm.sh/chart: self-host-2024.2.3
spec:
ingressClassName: nginx
rules:
- host: REPLACE
http:
paths:
- path: /(.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-web
port:
number: 5000
- path: /attachments/(.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-attachments
port:
number: 5000
- path: /api/(.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-api
port:
number: 5000
- path: /icons/(.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-icons
port:
number: 5000
- path: /notifications/(.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-notifications
port:
number: 5000
- path: /events/(.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-events
port:
number: 5000
- path: /(sso/.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-sso
port:
number: 5000
- path: /(identity/.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-identity
port:
number: 5000
- path: /(admin/?.*)
pathType: ImplementationSpecific
backend:
service:
name: release-name-self-host-admin
port:
number: 5000
tls:
- hosts:
- REPLACE
---
# Source: self-host/templates/pre-install-service-acc.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: service-account
namespace: default
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "0"
---
# Source: self-host/templates/pre-install-hook-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: release-name-config-map
namespace: default
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "1"
data:
ACCEPT_EULA: "Y"
MSSQL_PID: "Express"
ASPNETCORE_ENVIRONMENT: "Production"
globalSettings__selfHosted: "true"
globalSettings__baseServiceUri__vault: "https://REPLACE"
globalSettings__baseServiceUri__api: "https://REPLACE/api"
globalSettings__baseServiceUri__identity: "https://REPLACE/identity"
globalSettings__baseServiceUri__admin: "https://REPLACE/admin"
globalSettings__baseServiceUri__notifications: "https://REPLACE/notifications"
globalSettings__baseServiceUri__sso: "https://REPLACE/sso"
globalSettings__baseServiceUri__internalNotifications: "http://release-name-self-host-notifications:5000"
globalSettings__baseServiceUri__internalAdmin: "http://release-name-self-host-admin:5000"
globalSettings__baseServiceUri__internalIdentity: "http://release-name-self-host-identity:5000"
globalSettings__baseServiceUri__internalApi: "http://release-name-self-host-api:5000"
globalSettings__baseServiceUri__internalVault: "http://release-name-self-host-web:5000"
globalSettings__baseServiceUri__internalSso: "http://release-name-self-host-sso:5000"
globalSettings__baseServiceUri__internalScim: "http://release-name-self-host-scim:5000"
globalSettings__attachment__baseDirectory: "/etc/bitwarden/core/attachments"
globalSettings__attachment__baseUrl: "https://REPLACE/attachments"
globalSettings__send__baseDirectory: "/etc/bitwarden/core/attachments/sendfiles"
globalSettings__send__baseUrl: "https://REPLACE/attachments/sendfiles"
globalSettings__mail__replyToEmail: "no-reply@bitwarden.localhost"
globalSettings__mail__smtp__host: "smtp.gmail.com"
globalSettings__mail__smtp__port: "587"
globalSettings__mail__smtp__ssl: "false"
globalSettings__logDirectory: "/dev/null"
globalSettings__logRollBySizeLimit: ""
globalSettings__syslog__destination: ""
globalSettings__dataProtection__directory: "/etc/bitwarden/core/aspnet-dataprotection"
globalSettings__licenseDirectory: "/etc/bitwarden/core/licenses"
globalSettings__disableUserRegistration: "false"
globalSettings__enableCloudCommunication: "false"
globalSettings__baseServiceUri__cloudRegion: US
globalSettings__pushRelayBaseUri: "https://push.bitwarden.com"
adminSettings__admins: "false"
LOCAL_UID: "1000"
LOCAL_GID: "1000"
---
# Source: self-host/templates/pre-install-hook-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: release-name-config-map-web
namespace: default
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "1"
data:
app-id.json: |-
{
"trustedFacets": [
{
"version": {
"major": 1,
"minor": 0
},
"ids": [
"https://REPLACE",
"ios:bundle-id:com.8bit.bitwarden",
"android:apk-key-hash:dUGFzUzf3lmHSLBDBIv+WaFyZMI"
]
}
]
}
---
# Source: self-host/templates/pre-install-service-acc.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: role:service-acc
namespace: default
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "0"
rules: # Authorization rules for this role
- apiGroups: [""]
resources: ["secrets"]
verbs: ["create","update","patch","delete"]
---
# Source: self-host/templates/pre-install-service-acc.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: role:service-acc-pods
namespace: default
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "0"
rules: # Authorization rules for this role
- apiGroups: [""]
resources: ["pods"]
verbs: ["get","list","watch"]
---
# Source: self-host/templates/pre-install-service-acc.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: rolebinding:service-acc
namespace: default
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "0"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role:service-acc
subjects:
- kind: ServiceAccount
name: service-account
namespace: default
---
# Source: self-host/templates/pre-install-service-acc.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: rolebinding:service-acc-pods
namespace: default
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "0"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role:service-acc-pods
subjects:
- kind: ServiceAccount
name: service-account
namespace: default
---
# Source: self-host/templates/post-delete-hook.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: "release-name-cleanup"
labels:
app.kubernetes.io/component: post-delete-hook
annotations:
"helm.sh/hook": post-delete
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation
spec:
template:
metadata:
name: "release-name-cleanup"
labels:
app.kubernetes.io/component: post-delete-hook
spec:
serviceAccountName: "service-account"
containers:
- name: delete-resources
command: [
"/bin/sh", "-c"
]
args: ['
kubectl delete configmap release-name-config-map -n default;
kubectl delete configmap release-name-config-map-web -n default;
kubectl delete secret "release-name-sql-connection-string" -n default;
kubectl delete secret release-name-identity-cert -n default;
kubectl delete secret release-name-identity-cert-password -n default;
kubectl delete job release-name-setup;
kubectl delete job release-name-migrator;
echo "Done"
']
image: "bitnami/kubectl:1.21"
restartPolicy: Never
---
# Source: self-host/templates/post-install-db-migrator-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: "release-name-migrator"
labels:
app.kubernetes.io/component: post-install-db-migrator-job
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation
spec:
template:
metadata:
name: "release-name-migrator"
labels:
app.kubernetes.io/component: post-install-db-migrator-job
spec:
serviceAccountName: "service-account"
initContainers:
- name: wait-for-db
command:
- "/bin/bash"
- "-c"
args: ['
while [[ $(kubectl get pods -n default -l app=release-name-self-host-mssql -o jsonpath="{.items[*].status.containerStatuses[*].ready}") != "true" ]]; do sleep 1; done
echo "SQL Ready!"
while [[ $(kubectl get pods -n default -l app=release-name-self-host-admin -o jsonpath="{.items[*].status.containerStatuses[*].ready}") != "true" ]]; do sleep 1; done
echo "Admin Ready!"
while [ ! -f /db/vault.mdf ]; do sleep 1; done
echo "DB Ready!"
']
image: "bitnami/kubectl:1.21"
volumeMounts:
- name: mssql-data
mountPath: /db
containers:
- name: migrate-db
env:
- name: MSSQL_CONN_STRING
valueFrom:
secretKeyRef:
name: release-name-sql-connection-string
key: globalSettings__sqlServer__connectionString
image: "bitwarden/mssqlmigratorutility:2024.2.3"
volumeMounts:
restartPolicy: Never
volumes:
- name: mssql-data
persistentVolumeClaim:
claimName: release-name-self-host-mssqldata
---
# Source: self-host/templates/pre-install-db-migrator-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: "release-name-db-pre-upgrade"
labels:
app.kubernetes.io/component: pre-install-db-migrator-job
annotations:
"helm.sh/hook": pre-upgrade
"helm.sh/hook-weight": "4"
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation
spec:
template:
metadata:
name: "release-name-db-pre-upgrade"
labels:
app.kubernetes.io/component: pre-install-db-migrator-job
spec:
serviceAccountName: "service-account"
containers:
- name: migrate-db
env:
- name: MSSQL_CONN_STRING
valueFrom:
secretKeyRef:
name: release-name-sql-connection-string
key: globalSettings__sqlServer__connectionString
image: "bitwarden/mssqlmigratorutility:2024.2.3"
volumeMounts:
restartPolicy: Never
volumes:
---
# Source: self-host/templates/pre-install-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: "release-name-setup"
labels:
app.kubernetes.io/component: pre-install-hook
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "2"
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation
spec:
template:
metadata:
name: "release-name-setup"
labels:
app.kubernetes.io/component: pre-install-hook
spec:
serviceAccountName: "service-account"
initContainers:
- name: generate-identity-cert
command:
- "/bin/sh"
- "-c"
args: ['
openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout /bitwarden/identity.key -out /bitwarden/identity.crt -subj "/CN=Bitwarden IdentityServer" -days 36500;
openssl pkcs12 -export -out /bitwarden/identity.pfx -inkey /bitwarden/identity.key -in /bitwarden/identity.crt -passout pass:map[];
chmod 777 /bitwarden/identity.pfx;
echo Done;
']
image: "docker.io/nginx:1.25.3"
volumeMounts:
- name: temp
mountPath: "/bitwarden"
containers:
- name: create-resources
command:
- "/bin/sh"
- "-c"
args: ['
ls -atlh /bitwarden;
kubectl create secret generic release-name-identity-cert --from-file=/bitwarden/identity.pfx -n default ;
kubectl create secret generic release-name-identity-cert-password -n default
--from-literal=globalSettings__identityServer__certificatePassword="map[]";
echo "Done"
']
image: "bitnami/kubectl:1.21"
volumeMounts:
- name: temp
mountPath: "/bitwarden"
restartPolicy: Never
volumes:
- name: temp
emptyDir:
medium: Memory
---
# Source: self-host/templates/pre-install-secret-sql.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: "release-name-secret-sql"
labels:
app.kubernetes.io/component: pre-install-hook
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "3"
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation
spec:
template:
metadata:
name: "release-name-secret-sql"
labels:
app.kubernetes.io/component: pre-install-hook
spec:
serviceAccountName: "service-account"
containers:
- name: create-resources
command:
- "/bin/sh"
- "-c"
args: ['
kubectl create secret generic release-name-sql-connection-string -n default
--from-literal=globalSettings__sqlServer__connectionString="Data Source=tcp:release-name-self-host-mssql,1433;Initial Catalog=vault;Persist Security Info=False;User ID=sa;Password=$SA_PASSWORD;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=True"
echo "Done"
']
image: "bitnami/kubectl:1.21"
envFrom:
- secretRef:
name: "custom-secret"
volumeMounts:
- name: temp
mountPath: "/bitwarden"
restartPolicy: Never
volumes:
- name: temp
emptyDir:
medium: Memory