Code marketplace
部署
当前最新的构建:https://github.com/coder/code-marketplace/pkgs/container/code-marketplace
<img title="" src="../../.assets/2022-12-05-18-32-20-image.png)
支持多架构
<img title="" src="../../.assets/2022-12-05-18-32-39-image.png)
仓库地址:
同步到内部仓库地址:
ghcr.io/coder/code-marketplace:v1.2.1
# 同步至
docker-registry.local.liaosirui.com:5000/third/ghcr.io/coder/code-marketplace:v1.2.1
Helm
提供的 helm chart 部署:https://github.com/coder/code-marketplace/tree/main/helm
使用如下的 value:
replicaCount: 1
image:
repository: "docker-registry.local.liaosirui.com:5000/third/ghcr.io/coder/code-marketplace"
pullPolicy: IfNotPresent
tag: "v1.2.1"
imagePullSecrets:
- system-image-pull-secrets
serviceAccount:
create: true
podSecurityContext:
fsGroup: 1000
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: ""
annotations:
cert-manager.io/cluster-issuer: letsencrypt
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 1024m
nginx.ingress.kubernetes.io/proxy-buffer-size: 256k
hosts:
- host: code-marketplace.local.liaosirui.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: code-marketplace-tls
hosts:
- code-marketplace.local.liaosirui.com
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
autoscaling:
enabled: false
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
- key: no-pod
operator: Equal
value: 'true'
effect: NoSchedule
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoExecute
tolerationSeconds: 300
- key: node.kubernetes.io/unreachable
operator: Exists
effect: NoExecute
tolerationSeconds: 300
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/name: code-marketplace
namespaces:
- code-marketplace
topologyKey: kubernetes.io/hostname
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- devmaster1
- devmaster2
- devmaster3
persistence:
artifactory:
enabled: false
size: 100Gi
渲染并调整后的部署如下:
ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: code-marketplace
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: code-marketplace-data
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
selector:
matchLabels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
resources:
requests:
storage: "100Gi"
PersistentVolume
apiVersion: v1
kind: PersistentVolume
metadata:
name: code-marketplace-data
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
spec:
storageClassName: manual
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/bfs/code-server/code-marketplace"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- monitoring-node01
Service
apiVersion: v1
kind: Service
metadata:
name: code-marketplace
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
spec:
type: ClusterIP
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: code-marketplace
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
template:
metadata:
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
spec:
imagePullSecrets:
- name: aipaas-image-pull-secrets
serviceAccountName: code-marketplace
volumes:
- name: extensions
persistentVolumeClaim:
claimName: code-marketplace-data
securityContext:
fsGroup: 1000
containers:
- name: code-marketplace
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
image: "docker-registry.local.liaosirui.com:5000/third/ghcr.io/coder/code-marketplace:v1.2.1"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 10080
protocol: TCP
args:
- --address
- 0.0.0.0:10080
- --extensions-dir
- /extensions
volumeMounts:
- name: extensions
mountPath: /extensions
livenessProbe:
httpGet:
path: /healthz
port: http
readinessProbe:
httpGet:
path: /healthz
port: http
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
nodeSelector:
kubernetes.io/os: linux
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
namespaces:
- codeserver-system
topologyKey: kubernetes.io/hostname
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- monitoring-node01
tolerations:
- effect: NoSchedule
key: no-pod
operator: Equal
value: "true"
- effect: NoSchedule
key: aipaas-monitor
operator: Exists
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
Secret
apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
name: code-marketplace-tls
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
stringData:
tls.crt: |
-----BEGIN CERTIFICATE-----
MIIFNTCCBB2gAwIBAgISAwq4tz0n9uy24c9Cjxq1e0twMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMjEyMDUwNzIyMzFaFw0yMzAzMDUwNzIyMzBaMCMxITAfBgNVBAMT
GG1hcmtldHBsYWNlLmJpZ3F1YW50LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAKzEKNN0GtdNzlJrzd9fSwEDrY2K/vrkh5jTIx2eqwcaAiEibIiX
N8qeaLBoOrP9TsbdbLZmnGRPAHjDpwWmgc6Za6Ou0OV/QF199mWr+nQLn+mnTZW9
6dZo2CYhtcxZkLo6SSXBavlWjK2j7NIXOWAJs1VoekRAn4fmIc0UO0G9uFqtdZff
ZIUGuo6RvYqeG2OQWAHIz7Pirn17+mGRD3Cv/5XpJYAXeChm5Jj7qLYt1C0DbQuW
dw82V9uI/XMaz123M1xxFYXSyuXk5mkGlngJP15dUd4xpR8tXyb+/JD6qTS2Ng6S
px1w9DZKOn/F52fLSfmXofV5C68Dy8lDqWsCAwEAAaOCAlIwggJOMA4GA1UdDwEB
/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/
BAIwADAdBgNVHQ4EFgQUoudrgdCxjQB3kBQMrPViDdegdMYwHwYDVR0jBBgwFoAU
FC6zF7dYVsuuUAlA5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzAB
hhVodHRwOi8vcjMuby5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5p
LmxlbmNyLm9yZy8wIwYDVR0RBBwwGoIYbWFya2V0cGxhY2UuYmlncXVhbnQuY29t
MEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcGCysGAQQBgt8TAQEBMCgwJgYIKwYBBQUH
AgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIIBAwYKKwYBBAHWeQIEAgSB
9ASB8QDvAHYAejKMVNi3LbYg6jjgUh7phBZwMhOFTTvSK8E6V6NS61IAAAGE4WEo
IAAABAMARzBFAiEA7kxVJ1ogXw1yWmjzoYpTLHStkd0AZ/GNKvifwtIjD0ECIDf2
vPn2xufmZcAi95SX/jK6p8y8wRKWHnmSo8kjPoQpAHUA6D7Q2j71BjUy51covIlr
yQPTy9ERa+zraeF3fW0GvW4AAAGE4WEoDQAABAMARjBEAiAblgHfdMsdUVP/eugZ
pEh1fn/sUN8z1KMuhQpYm3UiUgIgTNINGU4x20d6PKfEHiF4d9Z3W1cqibHuGQuq
Q66sTXswDQYJKoZIhvcNAQELBQADggEBALLLl4pLp3kUdhbFt6vjyD9ign4aPySH
g7Tepdamhv8Au1xtzPbq2DQ0fAkjszfPPgQ0uDmUYflfJDmQNqXelX/mR15v8Otc
8gFayEDfblSMyDjCXygV1bDskJscfehXVa70Mc5MQvjree+UWh3k1FhTpm1cCcQl
I+4w3naDKzxq7lvjtBO+vvWS06lHm6Mi15MP0tMz52IXL8oulaMsmvpqFmPqfrrv
tzK3dJTm4BmyY/fnypNq+BrqHQbOubs6CA50j2pJJJZh9I1hcauXW9zTgLS/19Eq
t/AAaJOfFcfdHo7dk78p/KBq157BMd/JDafVvNIMkxJ/svGyMW2sDHw=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----END CERTIFICATE-----
tls.key: |
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEArMQo03Qa103OUmvN319LAQOtjYr++uSHmNMjHZ6rBxoCISJs
iJc3yp5osGg6s/1Oxt1stmacZE8AeMOnBaaBzplro67Q5X9AXX32Zav6dAuf6adN
lb3p1mjYJiG1zFmQujpJJcFq+VaMraPs0hc5YAmzVWh6RECfh+YhzRQ7Qb24Wq11
l99khQa6jpG9ip4bY5BYAcjPs+KufXv6YZEPcK//leklgBd4KGbkmPuoti3ULQNt
C5Z3DzZX24j9cxrPXbczXHEVhdLK5eTmaQaWeAk/Xl1R3jGlHy1fJv78kPqpNLY2
DpKnHXD0Nko6f8XnZ8tJ+Zeh9XkLrwPLyUOpawIDAQABAoIBADhuAd+/Rp0YftGR
ALd7CqaUKvXWdp5AUsHqBMhB8R7qsdNcyRJ8Qe7eetdT1AjCLh7qZ/3T2jUxULgh
P8aqsi9nES9vhC/RtpZS9E4VNEL/IQZSbRcB5wTvTdp2nEjY4FrTetzoJia2zFBT
AKFGkKj7wiWdcIImkXT0CApSF2DLKyxfKTCZzPSAx7aMdJSSRnFQEJntJImtH1hE
TuERvjnz3y1EBSLfB7YKTKQMEaugXFSZ+sjBUhN2+YPg44DTdAWyYoKcu/tg7OZr
drVu9xGkAq5ykCKDG0YBy0goYjjll9eXpX1tcaAlaWs3JaEPCwAXZqP1WZXdL2j1
wfv+KxECgYEA5Un3tQXao5sJZCjDb+bN2GnhX2v/5X/NrD1ciH6v410iE6dExTaG
7GRq/snyFXhdyOw+D+2lvC7rFmBGdigjDinYa1v8QY6qIENyKQtNLMlAN+j/jQmQ
Im+yer7quQFEfGiQecWWLKZYr5yv636Gsy+GpPs89w9faD2DgqxKyM8CgYEAwOSH
SKVPGQCYhLAkhB0wl+QaV6MuqKIKIzevCbp/ZtLs43mwqlo1vogjwwDNqaIBy4XF
rpk9NiSRnMSvV10QC7gQJYkEKiR/XizDwx6nruVOfZxKb4xVklzaSa2dQ8LmRCzz
qTutJuYWmU/a7SbWuiZlbZT+QHiFKTGsKjCDBKUCgYEA15zi7rt+inL0NdePUN89
mtCWOmEY1fuEsP9S0JgxViDyNoEIzlskLY+Qfd/xYfc6WgKtqdTUEU4di4ElQV8k
9+CpvutVH2DE4moKJEaYYBEv7mOQTFQ90eQvdfWqTCbA/CxoD9qaCYqzwxAY7d6h
VEbQ2rvW7IzsLt4JmQvjl0kCgYAa3DfSb+KR0rlqULTlCMOJgyP/7CNFLDtJKCnh
quyuvtRp4LovHpy5SW/haa053+tsEdazN3eEoJb+Q40/FyBy4VCuSWQhEjACRy2D
cDNdcWT6rNbYrawE05U6CUkK9IroF3JesIauEgA3nR0ZRP1Fsq8REVxOUfoJAHe+
8D5uWQKBgQC9LFP2eG2U/XBDk+vRMMqivIklf00CB7i8lzsZ9q4PnjK6hENUdovQ
zRAAjMTQ9mflmTeoPTgyCx92sQJoZSRhnLng1ElzWpo/rkSpTJx5mz9xhfeoQ6JG
ieBgVwg0aayF+vJHBuDQn1k5LaWQRWidSfR+1jZLV2dFhNnO1+mEZw==
-----END RSA PRIVATE KEY-----
Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: code-marketplace
namespace: codeserver-system
labels:
app.kubernetes.io/name: code-marketplace
app.kubernetes.io/instance: code-marketplace
app.kubernetes.io/version: "v1.2.1"
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 1024m
nginx.ingress.kubernetes.io/proxy-buffer-size: 256k
spec:
tls:
- hosts:
- "code-marketplace.local.liaosirui.com"
secretName: code-marketplace-tls
rules:
- host: "code-marketplace.local.liaosirui.com"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: code-marketplace
port:
name: http
使用
同步一个构建至仓库中:
./code-marketplace add extension.vsix [flags]
./code-marketplace add extension-vsixs/ [flags]
./code-marketplace add https://domain.tld/extension.vsix [flags]
./code-marketplace add https://open-vsx.org/api/ms-python/python/2022.14.0/file/ms-python.python-2022.14.0.vsix [flags]
./code-marketplace add https://github.com/VSCodeVim/Vim/releases/download/v1.24.1/vim-1.24.1.vsix [flags]
移除一个构建:
./code-marketplace remove ms-python.python-2022.14.0
./code-marketplace remove ms-python.python --all
code-server 中如何使用:
export EXTENSIONS_GALLERY='{"serviceUrl":"https://<domain>/api", "itemUrl":"https://<domain>/item", "resourceUrlTemplate": "https://<domain>/files/{publisher}/{name}/{version}/{path}"}'
code-server
本次部署中的实例使用方式
ENV \
EXTENSIONS_GALLERY='{"serviceUrl":"https://marketplace.code-marketplace.com/api", "itemUrl":"https://marketplace.code-marketplace.com/item", "resourceUrlTemplate": "https://marketplace.code-marketplace.com/files/{publisher}/{name}/{version}/{path}"}'
env:
- name: EXTENSIONS_GALLERY
value: '{"serviceUrl":"https://marketplace.code-marketplace.com/api", "itemUrl":"https://marketplace.code-marketplace.com/item", "resourceUrlTemplate": "https://marketplace.code-marketplace.com/files/{publisher}/{name}/{version}/{path}"}'