kubernetes - 解析 templates/deployment.yaml 时出错 : json: line 1: invalid character '{' looking for beginning of object key string

标签 kubernetes kubernetes-helm kubernetes-ingress nexus3

当我尝试使用 Kubernetes 部署 Nexus 时,出现以下错误。

命令: kubectl appy -f templates/deployment.yaml

error parsing templates/deployment.yaml: json: line 1: invalid character '{' looking for beginning of object key string

请找到我正在尝试的以下代码:

  {{- if .Values.localSetup.enabled }}
  apiVersion: apps/v1
  kind: Deployment
    {{- else }}
  apiVersion: apps/v1
  kind: StatefulSet
    {{- end }}
  metadata:
    labels:
      app: nexus
    name: nexus
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: nexus
    template:
      metadata:
        labels:
          app: nexus
      spec:
    {{- if .Values.localSetup.enabled }}
  volumes:
    - name: nexus-data
      persistentVolumeClaim:
        claimName: nexus-pv-claim
    - name: nexus-data-backup
      persistentVolumeClaim:
        claimName: nexus-backup-pv-claim
    {{- end }}
  containers:
    - name: nexus
      image: "quay.io/travelaudience/docker-nexus:3.15.2"
      imagePullPolicy: Always
      env:
        - name: INSTALL4J_ADD_VM_PARAMS
          value: "-Xms1200M -Xmx1200M -XX:MaxDirectMemorySize=2G -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
      resources:
        requests:
          cpu: 250m
          memory: 4800Mi
      ports:
        - containerPort: {{ .Values.nexus.dockerPort }}
          name: nexus-docker-g
        - containerPort: {{ .Values.nexus.nexusPort }}
          name: nexus-http
      volumeMounts:
        - mountPath: "/nexus-data"
          name: nexus-data
        - mountPath: "/nexus-data/backup"
          name: nexus-data-backup
    {{- if .Values.useProbes.enabled }}
  livenessProbe:
    httpGet:
      path: {{ .Values.nexus.livenessProbe.path }}
      port: {{ .Values.nexus.nexusPort }}
    initialDelaySeconds: {{ .Values.nexus.livenessProbe.initialDelaySeconds }}
    periodSeconds: {{ .Values.nexus.livenessProbe.periodSeconds }}
    failureThreshold: {{ .Values.nexus.livenessProbe.failureThreshold }}
    {{- if .Values.nexus.livenessProbe.timeoutSeconds }}
  timeoutSeconds: {{ .Values.nexus.livenessProbe.timeoutSeconds }}
    {{- end }}
  readinessProbe:
    httpGet:
      path: {{ .Values.nexus.readinessProbe.path }}
      port: {{ .Values.nexus.nexusPort }}
    initialDelaySeconds: {{ .Values.nexus.readinessProbe.initialDelaySeconds }}
    periodSeconds: {{ .Values.nexus.readinessProbe.periodSeconds }}
    failureThreshold: {{ .Values.nexus.readinessProbe.failureThreshold }}
    {{- if .Values.nexus.readinessProbe.timeoutSeconds }}
  timeoutSeconds: {{ .Values.nexus.readinessProbe.timeoutSeconds }}
    {{- end }}
    {{- end }}

    {{- if .Values.nexusProxy.enabled }}
                    - name: nexus-proxy
                      image: "quay.io/travelaudience/docker-nexus-proxy:2.4.0_8u191"
                      imagePullPolicy: Always
                      env:
                        - name: ALLOWED_USER_AGENTS_ON_ROOT_REGEX
                          value: "GoogleHC"
                        - name: CLOUD_IAM_AUTH_ENABLED
                          value: "false"
                        - name: BIND_PORT
                          value: {{ .Values.nexusProxy.targetPort | quote }}
                        - name: ENFORCE_HTTPS
                          value: "false"
                      {{- if .Values.localSetup.enabled }}
                    - name: NEXUS_DOCKER_HOST
                      value: {{ .Values.nexusProxy.nexusLocalDockerhost }}
                    - name: NEXUS_HTTP_HOST
                      value: {{ .Values.nexusProxy.nexusLocalHttphost }}
                      {{- else }}
                    - name: NEXUS_DOCKER_HOST
                      value: {{ .Values.nexusProxy.nexusDockerHost}}
                    - name: NEXUS_HTTP_HOST
                      value: {{ .Values.nexusProxy.nexusHttpHost }}
                      {{- end }}
                    - name: UPSTREAM_DOCKER_PORT
                      value: {{ .Values.nexus.dockerPort | quote }}
                    - name: UPSTREAM_HTTP_PORT
                      value: {{ .Values.nexus.nexusPort | quote }}
                    - name: UPSTREAM_HOST
                      value: "localhost"
  ports:
    - containerPort: {{ .Values.nexusProxy.targetPort }}
      name: proxy-port
    {{- end }}
    {{- if .Values.nexusBackup.enabled }}
    - name: nexus-backup
      image: "quay.io/travelaudience/docker-nexus-backup:1.4.0"
      imagePullPolicy: Always
      env:
        - name: NEXUS_AUTHORIZATION
          value: false
        - name: NEXUS_BACKUP_DIRECTORY
          value: /nexus-data/backup
        - name: NEXUS_DATA_DIRECTORY
          value: /nexus-data
        - name: NEXUS_LOCAL_HOST_PORT
          value: "localhost:8081"
        - name: OFFLINE_REPOS
          value: "maven-central maven-public maven-releases maven-snapshots"
        - name: TARGET_BUCKET
          value: "gs://nexus-backup"
        - name: GRACE_PERIOD
          value: "60"
        - name: TRIGGER_FILE
          value: .backup
      volumeMounts:
        - mountPath: /nexus-data
          name: nexus-data
        - mountPath: /nexus-data/backup
          name: nexus-data-backup
  terminationGracePeriodSeconds: 10

    {{- end }}

    {{- if .Values.persistence.enabled }}
  volumeClaimTemplates:
    - metadata:
        name: nexus-data
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 32Gi
        storageClassName: {{ .Values.persistence.storageClass }}
    - metadata:
        name: nexus-data-backup
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 32Gi
        storageClassName: {{ .Values.persistence.storageClass }}
    {{- end }}

最佳答案

您此处提供的模板是 Helm Chart 的一部分,可以使用 helm-cli 进行部署,而不是使用 kubectl apply

有关使用 Helm 的更多信息是 here .

您还可以在 this 中获取使用 Helm 安装 Nexus 的说明。官方稳定的 Helm Chart。

关于kubernetes - 解析 templates/deployment.yaml 时出错 : json: line 1: invalid character '{' looking for beginning of object key string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57804592/

相关文章:

amazon-web-services - 弹性Kubernetes服务AWS部署过程可避免停机

kubernetes - 如何通过 id 从 grafana.com 导入仪表板?没有 json 文件和 configMap

azure - AKS 的 key 保管库问题

spring-boot - 在Kubernetes Pod中访问Spring Boot Controller端点

kubernetes - 在 kubernetes/openshift 中请求与限制 CPU

kubernetes - Powerlevel9k 中自定义提示元素的动态背景颜色

azure - 如何在 AKS 中安装 ELK Stack 以及如何通过 SSH 连接到两者(AKS 和 GKE)中的节点

区域间的 Kubernetes ingress controller 代理请求

kubernetes - 如何使用 helm 从目录创建 ConfigMap

kubernetes - 在本地安装上启用对 kubernetes pod 的远程访问