cloudymax/linux_notes
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
apiVersion: v1
kind: Namespace
metadata:
name: vgpu
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: vgpu-db-pvc
namespace: vgpu
annotations:
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: license-server
namespace: vgpu
spec:
selector:
matchLabels:
app: license-server
replicas: 1
template:
metadata:
labels:
app: license-server
spec:
containers:
- name: license-server
image: collinwebdesigns/fastapi-dls
ports:
- name: https
containerPort: 443
command: ["uvicorn",
"main:app",
"--host", "0.0.0.0",
"--port", "443",
"--app-dir", "/app",
"--proxy-headers",
"--ssl-keyfile", "/app/cert/webserver.key",
"--ssl-certfile", "/app/cert/webserver.crt"
]
env:
- name: TZ
value: "Europe/Amsterdam"
- name: DLS_URL
value: "license-server-service.vgpu.svc.cluster.local"
- name: DLS_PORT
value: "443"
- name: LEASE_EXPIRE_DAYS
value: "90"
- name: DATABASE
value: "sqlite:////app/database/db.sqlite"
- name: DEBUG
value: "true"
volumeMounts:
- name: dls-db
mountPath: /app/database
- name: privkey
mountPath: /app/cert/instance.private.pem
subPath: instance.private.pem
- name: pubkey
mountPath: /app/cert/instance.public.pem
subPath: instance.public.pem
- name: webcrt
mountPath: /app/cert/webserver.crt
subPath: webserver.crt
- name: webkey
mountPath: /app/cert/webserver.key
subPath: webserver.key
volumes:
- name: dls-db
persistentVolumeClaim:
claimName: vgpu-db-pvc
- name: privkey
configMap:
name: privkey
items:
- key: instance.private.pem
path: instance.private.pem
- name: pubkey
configMap:
name: pubkey
items:
- key: instance.public.pem
path: instance.public.pem
- name: webkey
configMap:
name: webkey
items:
- key: webserver.key
path: webserver.key
- name: webcrt
configMap:
name: webcrt
items:
- key: webserver.crt
path: webserver.crt
---
apiVersion: v1
kind: Service
metadata:
name: license-server-service
namespace: vgpu
spec:
selector:
app: license-server
ports:
- protocol: TCP
port: 443
targetPort: 443
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: license-server-ingress
namespace: vgpu
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
ingressClassName: nginx
tls:
- hosts:
- vgpu.buildstars.online
secretName: "vgpu-tls"
rules:
- host: vgpu.buildstars.online
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: license-server-service
port:
number: 443
---
apiVersion: v1
data:
instance.public.pem: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4JJN0TX7ixoyP9TfDbz2
iwnSGu2NieNkXoHUMvRNFO8oe4elOMDVqtdG33ROPhBAGeufZat2NzrnT2z4zqli
GxU5mHLScDftr038S8+AoA6IFdOPRa52aNUU7ZLbhyEgKlwLvFq2XNeIfCF6kzUK
3AHvsKmDFIi4RfvC81Fh5CIA1XAQpUzXQ8GrRqs/IsePOZH3rUeC/OXvZQWQjT3t
tW1KRycCbbtAxOdAmAPemb4SI1M+NNj6fu33eg5rZKJazolgbIu1Wq2TjMYmsAry
jyYi+mJbd6YYDHsFKAj/6jrT0gmPVNLRupu8/zo8qWkt+2SE27lgl3Cry9+2PJJS
pQIDAQAB
-----END PUBLIC KEY-----
kind: ConfigMap
metadata:
name: pubkey
namespace: vgpu
---
apiVersion: v1
data:
instance.private.pem: |
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDgkk3RNfuLGjI/
1N8NvPaLCdIa7Y2J42RegdQy9E0U7yh7h6U4wNWq10bfdE4+EEAZ659lq3Y3OudP
bPjOqWIbFTmYctJwN+2vTfxLz4CgDogV049FrnZo1RTtktuHISAqXAu8WrZc14h8
IXqTNQrcAe+wqYMUiLhF+8LzUWHkIgDVcBClTNdDwatGqz8ix485kfetR4L85e9l
BZCNPe21bUpHJwJtu0DE50CYA96ZvhIjUz402Pp+7fd6DmtkolrOiWBsi7VarZOM
xiawCvKPJiL6Ylt3phgMewUoCP/qOtPSCY9U0tG6m7z/OjypaS37ZITbuWCXcKvL
37Y8klKlAgMBAAECggEAAUjiUD9UZPoSzgSC0dJiKwRKHanSEgxz40ovriqcHfHK
o+ma03LfoLZ9EGOwW+YIu9fk0EvVZWD9TZoZvUhA8wHhfmKvxgESkhq/21OApfRs
qQqjX+/CJnzg6Fqwo1AC81hrSm9Ov5ljDZS9HbD4vYP2/KYnmrs31KdT+O40Vr4B
T6obizeHjM0xHxQffC/aXSTDdfU4JwUGYSudu27rz1fyhGGEqrIFq0lpqyYtQvWE
UG0cu9bh/k6foEJ/DGYidV/8IkLQzYmCP70x5OKMCfv30wathoFpaW4E4Cc++eGy
srj8SlV0sV19uB/f39dStDeBE/addOR5XWb/fGt4GQKBgQD4MtJSsYZgpypsqRlD
UdQANEQMzgXfRadVsS++1bmmgeyKNPkwI1TLHTviWJtGuCHanKo//yAkea4QPiuw
zOSa53kT8pyWcSUIhNJYZSDk2J13k/tOZyi+9B9XKP/ic3ScS5sHGulRx8hmnRq7
PQAxVBNtkLyAds6bsTyL3pQnnQKBgQDnoVznGRwIHEiLpW0uiA6qgak65So8DHnK
OE4P0dB5UkgdVgnTvO2Fxlcgo1HHpIkVBpFwupB+QzFEsGS1iwp+SeIlRiGbDuAl
k72okb1wEw0KFpF2487Un27CwuvkpV8dHr7eRVoW+T5eU9Vrp1bN95OUCxHBkPJ1
s2XYUHscqQKBgQDHmRdLKTjHwad8ewC2Arha8a1IHubaB0nqv/OFpJsILLPs8Wz0
KXWnYnsmK9uzo6CWDidcD+/pZXF13omERUIS0NOuFw2Wbqc5kpcWPz2UzB7Wa0tO
YeeCqRALKA2gLvk4OBUUQbAg9GlVHELDEOt2wAZftmXhaan9yyrF0NmUgQKBgEbj
aoRLefm9djJOwXhhKWPjZMBijCduhgNuce2Df/LxTKK1xzIm+uZbCiUx9oBMCawG
o5JFdp09wSFNfrTUxbRatjxEF1rWFaFKctvZJonbOr1gpMom9BC8bnBqqTkDp3VJ
CI8L2IN5ai4CKCnXP8ivQVoofRmpW5rL+ZpXHyZpAoGAK6+Ocf29i2l5W92WQ9EC
cTGnLWZ6/hqdwPv2xvrKQdwjl1FXWgRNUmVIft8Kn4YhsIBC+glu2kkQ9IKVs1qe
6y4sbW9Ku1rGElhpxeYFZa8/mwaMPNfoRmEgwLXXQfv4Z/bqzxcSiLZZygVXj2zy
6xVvHhZhQipePqTRsWyFO/M=
-----END PRIVATE KEY-----
kind: ConfigMap
metadata:
name: privkey
namespace: vgpu
---
apiVersion: v1
data:
webserver.key: |
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDgVnWHcYI2QgkG
RU9BZHNSNhpDbrVZOHNSxL+sEoJ7z4Kfu9VjizvyrNzLiLeij30t0RXPYYzLcrXz
T4tVL8IXsDxm6xlB6xZkwY19zZZ+1K3XfnMhEQSSb3DHxSINcVeKs1PIlt8dQqg+
5JshSG4EfbNWK+SLiS0MZAOiaZlCD5zgyHN5o+KpKaOuZwrBX8Q1VwLx4AKhKmBu
jmV2PR6GOufZE+UtKcnXiqkfsHwyu7/xcsh6UBjtQ4XWDj60QDuxHloqqaSWkkln
3R6Lu1wdMZC87dH73Ju8RV0hbCGBFQp+7Y19xCSQwR3lLv493X6p3UwDPsbNJDAN
D75xFTKXAgMBAAECggEAR5xRuAKLxjYeG1pUilM+XKfYil30lZ5ncaxMYuklrc/3
qnWTEEuJv1VexbnGpKWZF97+T0ycXPUpD5n8qByuoFEpdtDlJx2b8F24hMfzmljZ
hUhgB9Ye13+rSJms3Q2pHCVSQV2nqvd0LV9cBavRMq3NaVxpgAEx2Bq07ks3GNa5
/96HPKj3aQERxIgEVmIIX9E3YpESM4a8LqEFJPwz1x/sg3Ur8Xw6mvESpMMi/kRl
zlWs6WQjreo0FR7N5X/FT5ZC3YRgow/hmOqJvRQXAO31cRRQ5VM4ThB+l7qnyB/8
tFwzIOBn9qAW0UL0Fi21yOyH//jW3rDsehkWLP4ygQKBgQDz5aSSornYjI6Kmz11
sjGpJrWq1Kl10da7F79CafuAhWRsOff3z6m0qTM5VdG8OCvOhXz3eUMovwQQDLNP
1iHUiAzek4GfDf6d1WDj5v4XvQuNEZLYWGbdz38sce0hpFKlJsCBzvYLYpmKRRLD
oYMZ2gRuG70yDioLZI/Bnwjf6QKBgQDreFf4ZMOdOfgQ4YHGz3ghfuX6xbAUVzIr
MjrgA1TLfAs0aMF6Wl2Ssd6pYNqkKK3ZgGDHIMGX81cHXgZpSKiyWl1Sn5WwRbT+
+HFtjfS5fx78VsBGLHcLJlPjPxho3xyY+xCpbiZkFUnGH6Xne4kj0z7EGjTYGs6K
VgC37LhufwKBgDMJcQDGUIGCGCnlBl1kpoOw9/8BdVyURozsETfCmcBxKWyETOFs
cSS+61sqHDN4xaH3yQi4NVeHcUAyiCtCsd2Zgqfo0g0IjqlUh2vpYG5zPsGMVeAz
z4LG8uPIC0ko66pni40eU9paDasjfSO23opAVwD7iQG6eQ3dQz/PGbpRAoGAH9y0
6qOX5JqHeqFJEkHYm4+0Ru6hGN+DplyxosZQnwg16+2Q4KGBr+vpmTnF3Bi1DY1V
ixxfldQTnqeWboCqcxfPMPLvKl8EUswDbTOcPc15v+NtORGjOhsBlupevzIRiJHQ
e1ywTTKkPO7jYCNTN0nKYHa7V9KoyAdDKaAahLkCgYEA6bUIzAjazmpLi2d0HWVx
joxcwok3gkUYkPTJ8PwInc8OlhyHy2Z2mscSx7tGpY5ZZKyvrZtvQ08kDfIzAEJt
IkxSb/ApX5bb1yC4cZVtamT5oWpGPll97H3WsVCVu7MS8dJQfjVM+Ek1N7l5XOU+
uVBKbwSnDOab9cZQSVzQP90=
-----END PRIVATE KEY-----
kind: ConfigMap
metadata:
name: webkey
namespace: vgpu
---
apiVersion: v1
data:
webserver.crt: |
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIUMim9JpEe3y7uFRw5MCjpMupODGAwDQYJKoZIhvcNAQEL
BQAwSzELMAkGA1UEBhMCTkwxCzAJBgNVBAgMAk5IMQwwCgYDVQQHDANBTVMxITAf
BgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDA2MDcxOTQ1NDRa
Fw0zNDA2MDUxOTQ1NDRaMEsxCzAJBgNVBAYTAk5MMQswCQYDVQQIDAJOSDEMMAoG
A1UEBwwDQU1TMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgVnWHcYI2QgkGRU9BZHNSNhpD
brVZOHNSxL+sEoJ7z4Kfu9VjizvyrNzLiLeij30t0RXPYYzLcrXzT4tVL8IXsDxm
6xlB6xZkwY19zZZ+1K3XfnMhEQSSb3DHxSINcVeKs1PIlt8dQqg+5JshSG4EfbNW
K+SLiS0MZAOiaZlCD5zgyHN5o+KpKaOuZwrBX8Q1VwLx4AKhKmBujmV2PR6GOufZ
E+UtKcnXiqkfsHwyu7/xcsh6UBjtQ4XWDj60QDuxHloqqaSWkkln3R6Lu1wdMZC8
7dH73Ju8RV0hbCGBFQp+7Y19xCSQwR3lLv493X6p3UwDPsbNJDAND75xFTKXAgMB
AAGjUzBRMB0GA1UdDgQWBBR80P8ntS4KMWLO06nQgRFUZ3TzyzAfBgNVHSMEGDAW
gBR80P8ntS4KMWLO06nQgRFUZ3TzyzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
DQEBCwUAA4IBAQCdmNN1foe9OLlhyObUQw6DSrSat9MIgQUtlttxz1+3Et5w+fFL
80xGQNRfQW9U+pcS8iAIGSQOQ1zGAwcTbZme8hUzCFbW2OhlFxJtjJLvJ8xVC//f
pCOtWv//iYvRgOD8nu+0pOdGMwpN23uRdjon2UXxnvX8qkbaPej1Jr2yYidcXtS5
PIFVcYWsyGDQCN+1OB5nJ84tB/C0qS+3ZRl8lE5k9lio8wGPMkfhSqcece2SPKYg
fsk3j5zFmVVwgGHzqES0nRHvIs/6tD83n1NMqBMrGVIqcnO144H03UZy1NmAewDg
oLI7x6rztS32xvqP/eRvV/RZONIe/2iXW/BC
-----END CERTIFICATE-----
kind: ConfigMap
metadata:
name: webcrt
namespace: vgpu