我使用静态yaml文件来安装gitlab。因此我输入
helm template gitlab gitlab/gitlab -f "config.yaml" > gitlab.yaml
但是在生成的yaml文件中,我总是需要修改这三个值:
apiVersion: v1
kind: Service
metadata:
name: gitlab-gitlab-shell
namespace: gitlab # <--- change
labels:
app: gitlab-shell
chart: gitlab-shell-4.4.2
release: gitlab
heritage: Helm
annotations:
environment: prod
spec:
type: NodePort # <--- change
ports:
- port: 30022
targetPort: 2222
protocol: TCP
nodePort: 30022 # <-- add
name: ssh
selector:
app: gitlab-shell
release: gitlab
有可能"自动化"这个吗?也许直接在配置文件中?
这是我的配置。Yaml看起来像:
global:
edition: ce
hosts:
domain: domain.com
shell:
port: 30022
pod:
labels:
environment: prod
deployment:
annotations:
environment: prod
service:
annotations:
environment: prod
ingress:
class: nginx
configureCertmanager: false
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
acme.cert-manager.io/http01-edit-in-place: 'true'
certmanager:
install: false
nginx-ingress:
enabled: false
gitlab:
webservice:
ingress:
tls:
secretName: gitlab-webservice-tls
gitaly:
persistence:
size: 2Gi
gitlab-runner:
runners:
privileged: true
registry:
ingress:
tls:
secretName: gitlab-registry-tls
postgresql:
persistence:
size: 2Gi
minio:
ingress:
tls:
secretName: gitlab-minio-tls
persistence:
size: 2Gi
redis:
persistence:
size: 2Gi
prometheus:
alertmanager:
enabled: false
persistentVolume:
enabled: false
size: 2Gi
pushgateway:
enabled: false
persistentVolume:
enabled: false
size: 2Gi
server:
persistentVolume:
enabled: true
size: 2Gi
一般来说,很难修改Helm图表的输出。你可以使用Helm模板语法配置图表作者特别允许的东西,但不能随意更改。
通常情况下,我希望图表不包括明确的namespace:
,并尊重helm install --namespace
选项(helm template
有类似的选项)。配置服务是非常常见的,我希望图表中有相应的设置。
如果你使用的是官方的GitLab云原生Helm Chart,那么它有很多设置,包括专门针对GitLab Shell的图表。在values.yaml
文件中,您应该能够指定
gitlab-shell:
service:
type: NodePort
nodePort: 30022
(这些是特定于此图表的特定配置选项,因为图表作者已使它们可配置,而不是编辑生成对象的通用方法。)
一般来说,大规模部署中的所有相关对象都需要位于相同的命名空间中。我没有看到手动配置GitLab shell子图命名空间的选项,确实有点不寻常;例如,如果它需要访问全局GitLab ConfigMap,则必须在相同的命名空间中。在您的特定示例中,服务和绑定到它的pod需要位于相同的名称空间中。我希望您可以使用helm install -n
选项将所有内容移动到不同的名称空间,但不是基于每个组件。